当前位置:首页 > linux教程 > 列表

lnmp环境配置之安装配置Nginx与PHP教程

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-22 23:54:38 浏览: 评论:0 

lnmp环境中nginx与php是一个重头戏了,很多朋友在配置这一步时都要折腾很多,在此小编也同样是折腾了,下面我整理了一篇lnmp环境中安装配置Nginx与PHP教程,希望例子可以帮助到大家.

安装Nginx的方式有很多种,这里我们还是编译源码进行安装,使用下列命令:

  1. $ wget http://nginx.org/download/nginx-1.6.2.tar.gz 
  2. $ tar -zxvf nginx-1.6.2.tar.gz 
  3. $ cd nginx-1.6.2 
  4. $ ./configure --prefix=/usr/local/nginx 
  5. $ make 
  6. $ sudo make install 

如果安装过程中出现如下错误:

  1. ./configure: error: the HTTP rewrite module requires the PCRE library. 
  2. You can either disable the module by using --without-http_rewrite_module 
  3. option, or install the PCRE library into the system, or build the PCRE library 
  4. statically from the source with nginx by using --with-pcre=<path> option. 

则需要先安装pcre:

$ sudo yum install pcre-devel

安装完成之后,我们的Nginx安装目录在/usr/local/nginx,接下来修改nginx的配置文件(/usr/local/nginx/conf/nginx.conf),使其能够处理php脚本.

  1. worker_processes  1; 
  2. events { 
  3.   worker_connections  1024; 
  4. http { 
  5.   include       mime.types; 
  6.   default_type  application/octet-stream; 
  7.   sendfile        on; 
  8.   keepalive_timeout  65; 
  9.   server { 
  10.     listen       80; 
  11.     server_name  _; 
  12.     root /vagrant; 
  13.     location / { 
  14.       index  index.html index.htm index.php; 
  15.     } 
  16.     location /demo { 
  17.       index index.php; 
  18.       if (!-e $request_filename) { 
  19.           rewrite ^/demo/(.*)$ /demo/index.php?$1 last; 
  20.           break; 
  21.       } 
  22.     } 
  23.     error_page   500 502 503 504  /50x.html; 
  24.     location = /50x.html { 
  25.       root   html; 
  26.     } 
  27.     location ~ \.php$ { 
  28.       fastcgi_pass   127.0.0.1:9000; 
  29.       fastcgi_index  index.php; 
  30.       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
  31.       include        fastcgi_params; 
  32.     } 
  33.   } 

最后,启动Nginx时,需要先启动PHP-FPM.

  1. $ sudo /usr/local/php/sbin/php-fpm 
  2. $ sudo /usr/local/nginx/sbin/nginx 

对于Nginx的重启以及关闭操作,可以使用以下命令.

$ sudo /usr/local/nginx/sbin/nginx -s [reload|restart|stop]

而PHP-FPM,则麻烦一点,需要先使用ps -ef|grep php-fpm获取master process的进程ID,再使用kill -USR2:

  1. $ ps -ef|grep php-fpm 
  2. root      6221     1  0 02:17 ?        00:00:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf) 
  3. nobody    6222  6221  0 02:17 ?        00:00:00 php-fpm: pool www 
  4. nobody    6223  6221  0 02:17 ?        00:00:00 php-fpm: pool www 
  5. vagrant   6233  1623  0 02:18 pts/0    00:00:00 grep php-fpm 
  6. $ sudo kill -USR2 6221 

注意:-USR2参数为重启,-INT参数为关闭.

创建虚拟主机:

  1. [root@os11728 httpd-2.2.22]# vi /usr/local/nginx/conf/vhosts/www_finet230_cn.conf 

内容如下:

  1. server { 
  2.       listen       8080; 
  3.       server_name  ng.fine230.cn finet85.cn; 
  4.  
  5.        root  /var/www/root/ng_finet230_cn; 
  6.  
  7.   #激活/关闭自动索引 
  8.      autoindex on; 
  9.  
  10.       #设定索引时文件大小的单位(B,KB, MB 或 GB) 
  11.      #默认为on,显示出文件的确切大小,单位是bytes。 
  12.      #改为off后,显示出文件的大概大小,单位是kB或者MB或者GB 
  13.      autoindex_exact_size off; 
  14.  
  15.       #开启以本地时间来显示文件时间的功能。默认为关(GMT时间) 
  16.      #默认为off,显示的文件时间为GMT时间。 
  17.      #改为on后,显示的文件时间为文件的服务器时间 
  18.      autoindex_localtime on; 
  19.  
  20.       #charset koi8-r; 
  21.  
  22.       location / { 
  23.           index  index.html index.htm index.php; 
  24.       } 
  25.  
  26.       #error_page  404              /404.html; 
  27.  
  28.       # redirect server error pages to the static page /50x.html 
  29.       # 
  30.       error_page   500 502 503 504  /50x.html; 
  31.       location = /50x.html { 
  32.           root  /var/www/root/ng_finet230_cn; 
  33.       } 
  34.  
  35.       # proxy the PHP scripts to Apache listening on 127.0.0.1:80 
  36.       # 
  37.       #location ~ \.php$ { 
  38.       #    proxy_pass   http://127.0.0.1; 
  39.       #} 
  40.  
  41.       # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
  42.       # 
  43.       #location ~ \.php$ { 
  44.       #    root           html; 
  45.       #    fastcgi_pass   127.0.0.1:9000; 
  46.       #    fastcgi_index  index.php; 
  47.       #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name
  48.       #    include        fastcgi_params; 
  49.       #} 
  50.  
  51.       # deny access to .htaccess files, if Apache’s document root 
  52.       # concurs with nginx’s one 
  53.       # 
  54.       #location ~ /\.ht { 
  55.       #    deny  all; 
  56.       #} 
  57.  
  58.       #将客户端的请求转交给fastcgi 
  59.       location ~ .*\.(php|php5|shtml)?$ { 
  60.           #root           html; 
  61.           fastcgi_pass   127.0.0.1:9000;#这里指定了fastcgi进程侦听的端口,nginx就是通过这里与php交互的 
  62.           fastcgi_index  index.php; 
  63.           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name
  64.           include        fastcgi_params; 
  65.       } 
  66.  
  67.      #网站的图片较多,更改较少,将它们在浏览器本地缓存30天 
  68.      location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ 
  69.      { 
  70.        expires      30d; 
  71.      } 
  72.  
  73.      #网站会加载很多JS、CSS,将它们在浏览器本地缓存1小时 
  74.      location ~ .*\.(js|css)?$ 
  75.      { 
  76.        expires      1h; 
  77.      } 
  78.  
  79.   } 
  80.  
  81.  
  82.   # another virtual host using mix of IP-, name-, and port-based configuration 
  83.   # 
  84.   #server { 
  85.   #    listen       8000; 
  86.   #    listen       somename:8080; 
  87.   #    server_name  somename  alias  another.alias; 
  88.  
  89.   #    location / { 
  90.   #        root   html; 
  91.   #        index  index.html index.htm; 
  92.   #    } 
  93.   #} 
  94.  
  95.  
  96.   # HTTPS server 
  97.   # 
  98.   #server { 
  99.   #    listen       443; 
  100.   #    server_name  localhost; 
  101.  
  102.   #    ssl                  on; 
  103.   #    ssl_certificate      cert.pem; 
  104.   #    ssl_certificate_key  cert.key; 
  105.  
  106.   #    ssl_session_timeout  5m; 
  107.  
  108.   #    ssl_protocols  SSLv2 SSLv3 TLSv1; 
  109.   #    ssl_ciphers  HIGH:!aNULL:!MD5; 
  110.   #    ssl_prefer_server_ciphers   on; 
  111.  
  112.   #    location / { 
  113.   #        root   html; 
  114.   #        index  index.html index.htm; 
  115.   #    }  //phpfensi.com 
  116.   #} 
  117.  
  118.   server 
  119.   { 
  120.     listen  8080; 
  121.     server_name  status.ng.finet230.cn; 
  122.  
  123.     location / { 
  124.       stub_status on; 
  125.       access_log   off; 
  126.     } 
  127.   } 

将/var/www/root/ng_finet230_cn目录下的所有档案与子目录的拥有者皆设为www群体的使用者www:

[root@os11728 ~]# chown -R www:www /var/www/root/ng_finet230_cn

1.5.Nginx的启动与关闭

启动Nginx:

  1. [root@os11728 ~]# ulimit -SHn 65535 
  2. root@os11728 ~]# /usr/local/nginx/sbin/nginx 

停止Nginx:

  1.  [root@os11728 ~]# /usr/local/nginx/sbin/nginx -s stop 
  2. //或 
  3. [root@os11728 ~]# /usr/local/nginx/sbin/nginx -s quit 

重启Nginx:

  1. [root@os11728 ~]# /usr/local/nginx/sbin/nginx -s reload 
  2. //或 
  3. [root@os11728 ~]# kill -HUP `cat /usr/local/nginx/logs/nginx.pid` 

配置开机自动启动Nginx + PHP,代码如下:

[root@os11728 ~]# vi /etc/rc.local

在末尾增加以下内容:

  1. ulimit -SHn 65535 
  2. /usr/local/php/sbin/php-fpm 
  3. /usr/local/nginx/sbin/nginx

Tags: lnmp环境配置 Nginx

分享到: