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

来源:osyunwei.com 作者:qihang01 发表于:2012-08-19 21:26  点击:
说明: 站点1:bbs.osyunwei.com 程序所在目录/data/osyunwei/bbs 站点2:sns.osyunwei.com 程序所在目录/data/osyunwei/sns 系统运维 温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链接 相关配置文件目录: nginx主配置文件:/usr/local/nginx/
 

说明:

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

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

系统运维 温馨提醒: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

系统运维 温馨提醒: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;

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

  1. 第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置

    第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置 软件版本  uwsgi- ...

  2. Nginx(二):虚拟主机配置

    什么是虚拟主机? 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Intemet服务器功 ...

  3. WebLogic使用总结(六)——WebLogic创建虚拟主机和修改启动端口号

    一.在WebLogic中创建一个虚拟主机 找到虚拟主机面板,如下图所示:

  4. linux上nginx上配置虚拟主机的相关配置

    1.配置主配置: nginx/conf/nginx.conf 2.虚拟主机配置:nginx/conf/extra/learn.weixin.com.conf 配置完后,重启服务器!

  5. 通过ngx-lua来统计Nginx上的虚拟主机性能数据

    Web server调研分析 Filed under: Web Server — cmpan @ 2012-10-29 20:38:34 摘要 简单可依赖的架构首先需要有一个简单可依赖的前端WebSe ...

  6. Nginx如何配置虚拟主机?

    注意,该环境是依赖于http://www.php20.com/forum.php?m ... &extra=page%3D1 基础上进行配置.默认不具备这些文件 .下面是增加一个mytest点 ...

  7. 基于Nginx的SSL虚拟主机

    通过私钥,证书对站点www.test.com的所有数据加密,实现通过https访问www.test.com 环境说明: 源码安装Nginx时必须使用--with-http_ssl_module参数,启 ...

  8. Centos7 nginx配置多虚拟主机过程

    一.前提准备 1.已经安装好了的Centos7服务器 2.ip 为192.168.1.209   [本次的配置ip] 3.确定防火墙等已经关闭 二.nignx配置文件参数详解 要配置多台虚拟主机,就需 ...

  9. nginx配置之虚拟主机功能

    虚拟主机功能: 一个nginx下运行多个网址(站点域名) 方式一:nginx.conf中的http{}中的每一个server{}就是一个站点(相同端口): #虚拟主机1 server { listen ...

随机推荐

  1. dropLoad.js移动端分页----Vue数据每次清空累加

    dropLoad.js移动端使用 1.需要引入  dropload   必要的两个文件dropload.css .dropload.min.js 此案例在vue项目中使用过程: var vm = ne ...

  2. cmake 单个目录多个文件的情况

    参考:https://www.hahack.com/codes/cmake/# 源文件一共有三个:main.cpp.MathFunctions.h.MathFunctions.cpp 文件内容分别如下 ...

  3. 原生js登录创建cookie

    原生js创建cookie,功能:点击登录按钮时,将用户名.密码存为cookie:页面再次加载时,自动读取cookie中的用户名.密码. <html><head><titl ...

  4. spring data flow

    spring data flow相当于一个快速发布应用的平台.并可以通过消息队列(kafa,rabbitMQ)把多个应用链接在一起进行链式处理数据.支持的平台是: Cloud Foundry Apac ...

  5. 自定义配置 const

    自定义常量配置文件:settings/const.py # 自定义的常量配置文件,在settings中 from 该文件 import *,将名字全部丢给settings BANNER_COUNT = ...

  6. 【JS 日期】获取当前日期时间

    获取当前日期时间 <!DOCTYPE html> <html> <head></head> <body> <script> wi ...

  7. C语言-(void*)类型指针

    (void*)类型指针:ANSI新增的:即定义了一个指针,但不指定指向任何类型(即指向抽象的数据类型). 1 通过强制类型转换可将其值赋给另一指针变量 2.1用于动态存储函数的返回型指针 void m ...

  8. SqlService 并发测试

    使用Sql QueryStress 可输入需要的线程数量,执行次数,对SQL 语句或存储过程进行测试,可查看执行时间及资源耗用.

  9. Java Web 前端资源文件的路径问题

    WEB-INF是Java Web应用的安全目录,在部署时用于存放class文件.项目用到的库(jar包).Java Web应用的配置文件web.xml. 浏览器不能访问此目录下的资源,比如在WEB-I ...

  10. shell coding about mac ox

    1, mac path---http://blog.csdn.net/playstudy/article/details/50149021 Mac系统的环境变量,加载顺序为:/etc/profile ...