ngonx多个虚拟站点配置php,centos中nginx多站点独立虚拟主机配置
发布日期:2021-06-24 11:44:35 浏览次数:2 分类:技术文章

本文共 8445 字,大约阅读时间需要 28 分钟。

在一台服务器上配置多个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

转载地址:https://blog.csdn.net/weixin_32569115/article/details/115885054 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:matlab蒙特卡洛法求概率,基于某MATLAB的蒙特卡洛方法对可靠度的计算.doc
下一篇:matlab安装segymat,segymat-1.03 matlab编写的地震数据格式转换 - 下载 - 搜珍网

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年03月31日 15时18分33秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

上海大厂Android面试经历:Android多线程实现方式及并发与同步,年薪超过80万! 2019-04-28
从入门到精通!已成功拿下字节、腾讯、脉脉offer,看看这篇文章吧! 2019-04-28
金九银十Android热点知识!如何快速的开发一个完整的直播app,内含福利 2019-04-28
金九银十Android热点知识!字节跳动移动架构师学习笔记,面试真题解析 2019-04-28
阿里P7亲自教你!34岁安卓开发大叔感慨,Android面试题及解析 2019-04-28
阿里P7大佬手把手教你!系统盘点Android开发者必须掌握的知识点,系列篇 2019-04-28
阿里P7大牛手把手教你!十多家大厂Android面试真题锦集干货整理,聪明人已经收藏了! 2019-04-28
阿里P7大牛整理!腾讯+字节+阿里面经真题汇总,书籍+视频+学习笔记+技能提升资源库 2019-04-28
阿里P7手把手教你!2021最新Android大厂面试真题大全,架构师必备技能 2019-04-28
快点来白嫖!深度解析跳槽从开始到结束完整流程,醍醐灌顶! 2019-04-28
android面试准备中高级简书!致Android高级工程师的一封信,内含福利 2019-04-29
Android面试回忆录:2个月面试腾讯、B站、网易等11家公司的面经总结!3面直接拿到offer 2019-04-29
Android面试回忆录:在字节跳动我是如何当面试官的,面试心得体会 2019-04-29
Android面试总结,GitHub标星9K的Google官方MVP+Rxjava项目详解,算法太TM重要了 2019-04-29
android面试题!看懂这份Android面经大厂真不是问题!不吃透都对不起自己 2019-04-29
Android高级工程师面试实战,GitHub上标星13k的《Android面试突击版》,面试真题解析 2019-04-29
apk开发学习!Android开发者面试如何系统复习?已拿offer入职 2019-04-29
Android技术篇!只需一篇文章吃透Android多线程技术,成功定级腾讯T3-2 2019-04-29
android模拟器!记一次字节跳动Android社招面试,成功拿下大厂offer 2019-04-29
Android程序员必备!互联网大厂100道Android面试题助你冲关金三银四!吐血整理 2019-04-29