ngonx多个虚拟站点配置php,centos中nginx多站点独立虚拟主机配置

在一台服务器上配置多个php站点的时候,我们希望每个站点都可以单独的停止/启动并且各站之间php运行权限相互隔离,不能跨目录浏览.本文以CentOS6.5编译安装Nginx1.70 +PHP5.59+MySQL5.6.16为前提。 假设存在如下两个站点: 1.blog.1000seo.com? 目录:/webda

在一台服务器上配置多个php站点的时候,我们希望每个站点都可以单独的停止/启动并且各站之间php运行权限相互隔离,不能跨目录浏览.本文以“CentOS6.5编译安装Nginx1.70 +PHP5.59+MySQL5.6.16″为前提。

假设存在如下两个站点:

1.blog.1000seo.com? 目录:/webdata/blog.1000seo.com

2.crm.1000seo.com?? 目录:/webdata/crm.1000seo.com

操作方法

1.为每个站点创建php-fpm.pid文件,为了能清楚方便的识别,我们使用域名作为文件名的一部分

>cd /usr/local/php5/var/run

>touch php-fpm-blog.1000seo.com.pid

>touch php-fpm-crm.1000seo.com.pid

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

>cd /usr/local/php5/etc/

>cp php-fpm.conf? php-fpm-blog.1000seo.com.conf

>cp php-fpm.conf? php-fpm-crm.1000seo.com.conf

3.为每个站点创建php-cgi.sock文件.

>touch /tmp/php-cgi-blog.1000seo.com.sock

>chown webuser.webuser /tmp/php-cgi-blog.1000seo.com.sock

>touch /tmp/php-cgi-crm.1000seo.com.sock

>chown webuser.webuser /tmp/php-cgi-crm.1000seo.com.sock

4.编辑相关文件

>vi? /usr/local/php5/etc/php-fpm-blog.1000seo.com.conf

找到这一行pid = run/php-fpm.pid 改为:pid = run/php-fpm-blog.1000seo.com.pid

找到这一行listen = 127.0.0.1:9000;改为:listen =/tmp/php-cgi-blog.1000seo.com.sock

:wq #保存退出

>vi? /usr/local/php5/etc/php-fpm-crm.1000seo.com.conf

找到这一行pid = run/php-fpm.pid 改为:pid = run/php-fpm-crm.1000seo.com.pid

找到这一行listen = 127.0.0.1:9000;改为:listen =/tmp/php-cgi-crm.1000seo.com.sock

:wq #保存退出

>vi /etc/rc.d/init.d/php-fpm #请参照下面的内容修改

#! /bin/sh

### BEGIN INIT INFO

# Provides:????????? php-fpm

# Required-Start:??? $remote_fs $network

# Required-Stop:???? $remote_fs $network

# Default-Start:???? 2 3 4 5

# Default-Stop:????? 0 1 6

# Short-Description: starts php-fpm

# Description:?????? starts the PHP FastCGI Process Manager daemon

### END INIT INFO

vhost=$2

prefix=/usr/local/php5

exec_prefix=${prefix}

php_fpm_BIN=${exec_prefix}/sbin/php-fpm

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

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

php_opts=”-d open_basedir=/webdata/$vhost/:/tmp/ –fpm-config $php_fpm_CONF –pid $php_fpm_PID”

wait_for_pid () {

try=0

while test $try -lt 35 ; do

case “$1″ in

‘created’)

if [ -f “$2″ ] ; then

try=”

break

fi

;;

‘removed’)

if [ ! -f “$2″ ] ; then

try=”

break

fi

;;

esac

echo -n .

try=`expr $try + 1`

sleep 1

done

}

case “$1″ in

start)

echo -n “Starting php-fpm ”

$php_fpm_BIN –daemonize $php_opts

if [ “$?” != 0 ] ; then

echo ” failed”

exit 1

fi

wait_for_pid created $php_fpm_PID

if [ -n “$try” ] ; then

echo ” failed”

exit 1

else

echo ” done”

fi

;;

stop)

echo -n “Gracefully shutting down php-fpm ”

if [ ! -r $php_fpm_PID ] ; then

echo “warning, no pid file found – php-fpm is not running ?”

exit 1

fi

kill -QUIT `cat $php_fpm_PID`

wait_for_pid removed $php_fpm_PID

if [ -n “$try” ] ; then

echo ” failed. Use force-quit”

exit 1

else

echo ” done”

fi

;;

status)

if [ ! -r $php_fpm_PID ] ; then

echo “php-fpm is stopped”

exit 0

fi

PID=`cat $php_fpm_PID`

if ps -p $PID | grep -q $PID; then

echo “php-fpm (pid $PID) is running…”

else

echo “php-fpm dead but pid file exists”

fi

;;

force-quit)

echo -n “Terminating php-fpm ”

if [ ! -r $php_fpm_PID ] ; then

echo “warning, no pid file found – php-fpm is not running ?”

exit 1

fi

kill -TERM `cat $php_fpm_PID`

wait_for_pid removed $php_fpm_PID

if [ -n “$try” ] ; then

echo ” failed”

exit 1

else

echo ” done”

fi

;;

restart)

$0 stop

$0 start

;;

reload)

echo -n “Reload service php-fpm ”

if [ ! -r $php_fpm_PID ] ; then

echo “warning, no pid file found – php-fpm is not running ?”

exit 1

fi

kill -USR2 `cat $php_fpm_PID`

echo ” done”

;;

*)

echo “Usage: $0 {start|stop|force-quit|restart|reload|status}”

exit 1

;;

esac

:wq #保存退出

>vi /usr/local/nginx/conf/vhost/blog.1000seo.com.conf

server

{

listen?????? 80;

server_name blog.1000seo.com;

index index.php index.html index.htm default.html default.htm default.php;

root? /webdata/blog.1000seo.com;

location ~ .*\.(php|php5)?$

{

fastcgi_pass? unix:/tmp/php-cgi-blog.1000seo.com.sock;

fastcgi_index index.php;

include fcgi.conf;

}

location /status {

stub_status on;

access_log?? off;

}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

{

expires????? 30d;

}

location ~ .*\.(js|css)?$

{

expires????? 12h;

}

access_log off;

}

:wq #保存退出

>vi /usr/local/nginx/conf/vhost/crm.1000seo.com.conf

server

{

listen?????? 80;

server_name crm.1000seo.com;

index index.php index.html index.htm default.html default.htm default.php;

root? /webdata/crm.1000seo.com;

location ~ .*\.(php|php5)?$

{

fastcgi_pass? unix:/tmp/php-cgi-crm.1000seo.com.sock;

fastcgi_index index.php;

include fcgi.conf;

}

location /status {

stub_status on;

access_log?? off;

}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

{

expires????? 30d;

}

location ~ .*\.(js|css)?$

{

expires????? 12h;

}

access_log off;

}

:wq #保存退出

>vi /usr/local/nginx/conf/nginx.conf #请参照下面的内容修改

user? webuser webuser;

worker_processes? 1;

#error_log? logs/error.log;

#error_log? logs/error.log? notice;

#error_log? logs/error.log? info;

#pid??????? logs/nginx.pid;

events {

use epoll;

worker_connections? 1024;

}

http {

include?????? mime.types;

default_type? application/octet-stream;

#log_format? main? ‘$remote_addr – $remote_user [$time_local] “$request” ‘

#????????????????? ‘$status $body_bytes_sent “$http_referer” ‘

#????????????????? ‘”$http_user_agent” “$http_x_forwarded_for”‘;

#access_log? logs/access.log? main;

server_names_hash_bucket_size 128;

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

client_max_body_size 300m;

sendfile??????? on;

tcp_nopush???? 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;

#keepalive_timeout? 0;

keepalive_timeout? 65;

tcp_nodelay on;

server_tokens off;

gzip? on;

gzip_min_length? 1k;

gzip_buffers???? 4 16k;

gzip_http_version 1.1;

gzip_comp_level 2;

gzip_types?????? text/plain application/x-javascript text/css application/xml;

gzip_vary on;

server {

listen?????? 80 default;

server_name? _;

#charset koi8-r;

#access_log? logs/host.access.log? main;

location / {

root?? html;

return 404;

}

#error_page? 404????????????? /404.html;

# redirect server error pages to the static page /50x.html

#

error_page?? 500 502 503 504? /50x.html;

#location = /50x.html {

#??? root?? html;

#}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80

#

#location ~ \.php$ {

#??? proxy_pass?? http://127.0.0.1;

#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

#

#location ~ \.php$ {

#??? root?????????? html;

#??? fastcgi_pass?? 127.0.0.1:9000;

#??? fastcgi_index? index.php;

#??? fastcgi_param? SCRIPT_FILENAME? $document_root$fastcgi_script_name;

#??? include??????? fastcgi_params;

#}

# deny access to .htaccess files, if Apache’s document root

# concurs with nginx’s one

#

location ~ /\.ht {

deny? all;

}

}

server {

listen?? ?80;

index?? ?index.html index.htm index.php;

location /status {

stub_status?? ?on;

access_log?? ?off;

}

location ~ .*\.(gif|jpg|png|bmp|swf)$ {

expires?? ?30d;

}

location ~.C*\.(js|css)?$ {

expires?? ?12h;

}

access_log?? ?off;

}

include vhost/*.conf;

# another virtual host using mix of IP-, name-, and port-based configuration

#

#server {

#??? listen?????? 8000;

#??? listen?????? somename:8080;

#??? server_name? somename? alias? another.alias;

#??? location / {

#??????? root?? html;

#??????? index? index.html index.htm;

#??? }

#}

# HTTPS server

#

#server {

#??? listen?????? 443 ssl;

#??? server_name? localhost;

#??? ssl_certificate????? cert.pem;

#??? ssl_certificate_key? cert.key;

#??? ssl_session_cache??? shared:SSL:1m;

#??? ssl_session_timeout? 5m;

#??? ssl_ciphers? HIGH:!aNULL:!MD5;

#??? ssl_prefer_server_ciphers? on;

#??? location / {

#??????? root?? html;

#??????? index? index.html index.htm;

#??? }

#}

}

:wq #保存退出

>cd /home

>vi start.sh

#!/bin/bash

actop=$1

/bin/bash /etc/rc.d/init.d/php-fpm $actop blog.1000seo.com

/bin/bash /etc/rc.d/init.d/php-fpm $actop crm.1000seo.com

:wq #保存退出

>chmod +x start.sh

>vi /etc/rc.local

#!/bin/sh

#

# This script will be executed *after* all the other init scripts.

# You can put your own initialization stuff in here if you don’t

# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

sh /home/start.sh start

:wq #保存退出

> /home/start.sh start

>service nginx restart

相关操作命令

启动所有站点

/home/start.sh start

停止所有站点

/home/start.sh stop

启动站点

>/etc/rc.d/init.d/php-fpm start blog.1000seo.com

>/etc/rc.d/init.d/php-fpm start crm.1000seo.com

停止站点

>/etc/rc.d/init.d/php-fpm stop blog.1000seo.com

>/etc/rc.d/init.d/php-fpm stop crm.1000seo.com

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值