Nginx多站点虚拟主机实现单独启动停止php-fpm、单独控制权限设置

源: http://www.osyunwei.com/archives/3743.html


nginx用于部署web应用,当可以打开站点中的测试index.html,说明nginx设置ok;

php-fpm用于解析php文件展示,当可以打开站点中的测试index.php,说明php-fpm设置ok;

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~转载开始~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Nginx多站点虚拟主机实现单独启动停止php-fpm、单独控制权限设置
2012年05月01日  ⁄ LNMP  ⁄ 评论数 5 ⁄ 被围观 16,397次+

说明:

站点1:bbs.osyunwei.com  程序所在目录/data/osyunwei/bbs

站点2:sns.osyunwei.com  程序所在目录/data/osyunwei/sns

系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接

相关配置文件目录:

nginx主配置文件:/usr/local/nginx/conf/nginx.conf

php安装目录:/usr/local/php5/

站点1虚拟主机配置配置文件:/usr/local/nginx/conf/vhost/bbs.conf

站点2虚拟主机配置配置文件:/usr/local/nginx/conf/vhost/sns.conf

实现目的:

1、可以对站点1和站点2单独启动、停止php-fpm

2、站点1和站点2的php运行权限相互隔离,不能跨目录浏览,即站点1内的php木马不能访问站点2中的内容,

     同理,站2内的php木马不能访问站点1中的内容。

实现方法:

一、为每个站点创建php-fpm.pid文件

cd /usr/local/php5/var/run

touch php-fpm-bbs.pid

touch php-fpm-sns.pid

二、为每个站点创建php-fpm.conf文件

cd /usr/local/php5/etc/

cp php-fpm.conf  php-fpm-bbs.conf

cp php-fpm.conf  php-fpm-sns.conf

三、为每个站点建立php-cgi.sock文件

touch /tmp/php-cgi-bbs.sock  #建立php-cgi.sock文件

chown www.www /tmp/php-cgi-bbs.sock  #设置文件所有者为www(必须与nginx的用户一致)

touch /tmp/php-cgi-sns.sock

chown www.www /tmp/php-cgi-sns.sock

四、编辑相关文件

vi  /usr/local/php5/etc/php-fpm-bbs.conf

pid = run/php-fpm-bbs.pid

listen =/tmp/php-cgi-bbs.sock;

vi /usr/local/php5/etc/php-fpm-sns.conf

pid = run/php-fpm-sns.pid

listen =/tmp/php-cgi-sns.sock;

vi /etc/rc.d/init.d/php-fpm

vhost=$2

php_fpm_CONF=${prefix}/etc/php-fpm-$vhost.conf

php_fpm_PID=${prefix}/var/run/php-fpm-$vhost.pid

php_opts="-d open_basedir=/data/osyunwei/$vhost/:/tmp/ --fpm-config $php_fpm_CONF"

vi /usr/local/nginx/conf/vhost/bbs.conf

fastcgi_pass  unix:/tmp/php-cgi-bbs.sock;

vi /usr/local/nginx/conf/vhost/sns.conf

fastcgi_pass  unix:/tmp/php-cgi-sns.sock;

cd /home

vi start.sh  #编辑开机启动脚本

#!/bin/bash

auto=$1

/bin/bash  /etc/rc.d/init.d/php-fpm $auto bbs

/bin/bash  /etc/rc.d/init.d/php-fpm $auto sns

chmod +x start.sh #添加脚本执行权限

vi /etc/rc.local  #编辑开机启动文件

sh /home/start.sh start  #加入开机启动

service nginx start

/etc/rc.d/init.d/php-fpm start bbs  #单独启动站点bbs.osyunwei.com

/etc/rc.d/init.d/php-fpm start sns

系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接

/etc/rc.d/init.d/php-fpm stop bbs  #单独停止站点sns.osyunwei.com

/etc/rc.d/init.d/php-fpm stop sns

五、相关配置文件内容

/usr/local/nginx/conf/nginx.conf

1 user  www www;
2 worker_processes  2;
3 #error_log  logs/error.log;
4 #error_log  logs/error.log  notice;
5 #error_log  logs/error.log  info;
6 #pid        logs/nginx.pid;
7  
8 events {
9     use epoll;
10     worker_connections  65535;
11 }
12  
13 http {
14     include       mime.types;
15     default_type  application/octet-stream;
16  
17     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
18     #                  '$status $body_bytes_sent "$http_referer" '
19     #                  '"$http_user_agent" "$http_x_forwarded_for"';
20  
21     #access_log  logs/access.log  main;
22     server_names_hash_bucket_size 128;
23     client_header_buffer_size 32k;
24     large_client_header_buffers 4 32k;
25     client_max_body_size 300m;
26     sendfile        on;
27     tcp_nopush     on;
28     fastcgi_connect_timeout 300;
29     fastcgi_send_timeout 300;
30     fastcgi_read_timeout 300;
31     fastcgi_buffer_size 64k;
32     fastcgi_buffers 4 64k;
33     fastcgi_busy_buffers_size 128k;
34     fastcgi_temp_file_write_size 128k;
35     #keepalive_timeout  0;
36     keepalive_timeout  60;
37     tcp_nodelay on;
38     server_tokens off;
39     gzip  on;
40     gzip_min_length  1k;
41     gzip_buffers     4 16k;
42     gzip_http_version 1.1;
43     gzip_comp_level 2;
44     gzip_types       text/plain application/x-javascript text/css application/xml;
45     gzip_vary on;
46    server
47        {
48      listen       80 default;
49      server_name  _;
50      location / {
51      root   html;
52      return 404;
53                     }
54      location ~ /.ht {
55      deny  all;
56                       }
57        }
58    server
59         {
60      listen       80;
61      #server_name localhost;
62      index index.php default.php index.html index.htm default.html default.htm ;
63     
64                 location /status {
65                         stub_status on;
66                         access_log   off;
67                 }
68  
69                 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
70                         {
71                                 expires      30d;
72                         }
73                 location ~ .*\.(js|css)?$
74                         {
75                                 expires      12h;
76                         }
77  
78                 access_log off;
79         }
80  
81 include  vhost/*.conf;
82 }

vi /usr/local/nginx/conf/vhost/bbs.conf

1 server
2         {
3                 listen       80;
4                 server_name bbs.osyunwei.com;
5                 index index.php index.html index.htm default.html default.htm default.php;
6                 root  /data/osyunwei/bbs;
7 location ~ .*\.(php|php5)?$
8                         {
9                                 fastcgi_pass  unix:/tmp/php-cgi-bbs.sock;
10                                 fastcgi_index index.php;
11                                 include fcgi.conf;
12                         }
13                 location /status {
14                         stub_status on;
15                         access_log   off;
16                 }
17  
18                 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
19                         {
20                                 expires      30d;
21                         }
22                 location ~ .*\.(js|css)?$
23                         {
24                                 expires      12h;
25                         }
26  
27                 access_log off;
28         }

vi /usr/local/nginx/conf/vhost/sns.conf

1 server
2         {
3                 listen       80;
4                 server_name sns.osyunwei.com;
5                 index index.php index.html index.htm default.html default.htm default.php;
6                 root  /data/osyunwei/sns;
7 location ~ .*\.(php|php5)?$
8                         {
9                                 fastcgi_pass  unix:/tmp/php-cgi-sns.sock;
10                                 fastcgi_index index.php;
11                                 include fcgi.conf;
12                         }
13                 location /status {
14                         stub_status on;
15                         access_log   off;
16                 }
17  
18                 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
19                         {
20                                 expires      30d;
21                         }
22                 location ~ .*\.(js|css)?$
23                         {
24                                 expires      12h;
25                         }
26  
27                 access_log off;
28         }

vi /usr/local/nginx/conf/fcgi.conf

1 fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
2 fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
3  
4 fastcgi_param  QUERY_STRING       $query_string;
5 fastcgi_param  REQUEST_METHOD     $request_method;
6 fastcgi_param  CONTENT_TYPE       $content_type;
7 fastcgi_param  CONTENT_LENGTH     $content_length;
8  
9 fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
10 fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
11 fastcgi_param  REQUEST_URI        $request_uri;
12 fastcgi_param  DOCUMENT_URI       $document_uri;
13 fastcgi_param  DOCUMENT_ROOT      $document_root;
14 fastcgi_param  SERVER_PROTOCOL    $server_protocol;
15  
16 fastcgi_param  REMOTE_ADDR        $remote_addr;
17 fastcgi_param  REMOTE_PORT        $remote_port;
18 fastcgi_param  SERVER_ADDR        $server_addr;
19 fastcgi_param  SERVER_PORT        $server_port;
20 fastcgi_param  SERVER_NAME        $server_name;
21  
22 # PHP only, required if PHP was built with --enable-force-cgi-redirect
23 fastcgi_param  REDIRECT_STATUS    200;


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~转载结束~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
一、很久之前的版本,不同域名使用php-fpm不同配置文件用不同的pid。现版本为同一个pid即ok。

二、tcp socket & unix socket,监听的研究
请参看URL:http://blog.csdn.net/liv2005/article/details/7741732

目前简易采用tcp socket,轮询900X端口
/usr/local/nginx/conf/vhost.conf 文件内容如下:
upstream backend  {
  server   localhost:9000;
  server   localhost:9001;
  server   localhost:9002;
  server   localhost:9003;
  server   localhost:9004;
  server   localhost:9005;
  server   localhost:9006;
  server   localhost:9007;
}


include /usr/local/nginx/conf/vhost/*.conf;

nginx的vhost配置文件如下:
/usr/local/nginx/conf/vhost/sap2w01.com.conf;
server {
listen 80;
server_name www. sap2w01 .com;
access_log /usr/local/nginx/logs/ sap2w01 .com.log yundns_log;
index index.php index.html;
root /home/ sap2w01 .com;
location ~^(.+\.php)(.*)$ {
proxy_pass http://127.0.0.1:8080;
#fastcgi_pass  unix:/tmp/php-cgi- sap2w01 .com.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass backend;
fastcgi_index index.php;
include fastcgi.conf;
}
error_page 403 /403.html;
error_page 404 /404.html;
error_page 500 /500.html;
error_page 503 /503.html;
}

# php_admin_value[open_basedir]的安全设置:
请参看URL:http://www.iamle.com/archives/1854.html



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值