好久不写日志了,哪怕是网上摘抄的都很少在此记录了,自己怎么这么懒了啊。 之前都是用apache服务器来配置php环境,今天有兴趣了解一些nginx来配置php环境。是在linux下配置。 利用Linux Nginx架设高性能的Web环境 Linux Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Linux Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。 Linux Nginx 超越 Apache 的高性能和稳定性,使得国内使用Linux Nginx作为 Web 服务器的网站也越来越多,其中包括新浪博客、新浪播客、网易新闻等门户网站频道,六间房、56.com等视频分享网站,Discuz!官方论坛、水木社区 等知名论坛,豆瓣、YUPOO相册、海内SNS、迅雷在线等新兴Web 2.0网站。
实验环境ubuntu 1、安装Linux Nginx
# tar -zxvf nginx-0.8.5.tar.gz
# cd nginx-0.8.5 # ./configure --prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module –with-http_gzip_static_module –with-http_ssl_module(安装路径及所需依赖包)--prefix(安装路径) # make && make install
或者用 /usr/local/nginx/sbin/nginx 启动 nginx /usr/local/nginx/sbin/nginx -s quit 退出nginx /usr/local/nginx/sbin/nginx -s reload 重新载入 还需要安装 apt-get install spawn-fcgi 每次运行的时候执行:告诉php需要相应的端口号 跟之前做的java一样 spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php-cgi(必须滴) 2、spawn-fcgi,用来启动PHP的FastCGI模式 (linux下载包用 wget方式 或者可以直接安装用apt-get install spawn-fcgi方式) 3、安装mysql
# tar -zxvf mysql-5.0.67.tar.gz
# cd mysql-5.0.67 # groupadd mysql # useradd -g mysql -s /sbin/nologin -M mysql # ./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charset=all --enable-hread-safe-client --enable-local-infile --with-low-memory # make && make install # cp support-files/my-medium.cnf /etc/my.cnf # chown -R mysql.mysql /usr/local/mysql/ # /usr/local/mysql/bin/mysql_install_db --user=mysql # chown -R root.root /usr/local/mysql/ # chown -R mysql.mysql /usr/local/mysql/var/ 启动数据库服务,并添加到自启动
# /usr/local/mysql/bin/mysqld_safe --user=mysql &
#cp support-files/mysql.server /etc/rc.d/init.d/mysqld #chmod 755 /etc/rc.d/init.d/mysqld 加入自动启动服务队列: #chkconfig --add mysqld 配置库文件搜索路径 # echo "/usr/local/mysql/lib/mysql">>/etc/ld.so.conf 4、安装PHP
这里产生的是可执行文件,和apache的不一样,和apache结合的时候产生的是动态库 # tar -jxvf php-5.2.6.tar.bz2 启动php-fpm# /usr/local/php/sbin/php-fpm start添加到自启动# echo "/usr/local/php/sbin/php-fpm start">>/etc/rc.local
5、修改Linux Nginx的配置文件,支持PHP
# vim /usr/local/nginx/conf/nginx.conf
(allen_young_yang)user nobody; worker_processes 8; pid /usr/local/nginx/logs/nginx.pid; worker_rlimit_nofile 1024; events {use epoll; worker_connections 1024;} http{ include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 8m; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; server { listen 80; server_name www.bbb.com; root /www/uuweb; index index.html index.htm index.php; location ~ .*\.(php|php5)?$ { 或者 location / { 不知道怎么回事我用前一个css不起作用,只能用后面一个。 root /www/uuweb; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /www/uuweb$fastcgi_script_name; include fastcgi_params;} #location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ #{expires 30d;} #location ~ .*\.(js|css)?$ #{expires 1h;} log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for'; access_log /var/logs/access.log access;}} 注:server部分为PHP虚拟主机127.0.0.1:9000为fastcgi的PC,我这里用的本机/www/uuweb$fastcgi_script_name; 为PHP网页保存的目录测试配置文件: # /usr/local/nginx/sbin/nginx -t |