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
原文地址:centos中nginx多站点独立虚拟主机配置, 感谢原作者分享。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Docker 容器啟動步驟:拉取容器鏡像:運行 "docker pull [鏡像名稱]"。創建容器:使用 "docker create [選項] [鏡像名稱] [命令和參數]"。啟動容器:執行 "docker start [容器名稱或 ID]"。檢查容器狀態:通過 "docker ps" 驗證容器是否正在運行。

CentOS 關機命令為 shutdown,語法為 shutdown [選項] 時間 [信息]。選項包括:-h 立即停止系統;-P 關機後關電源;-r 重新啟動;-t 等待時間。時間可指定為立即 (now)、分鐘數 ( minutes) 或特定時間 (hh:mm)。可添加信息在系統消息中顯示。

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

CentOS 和 Ubuntu 的關鍵差異在於:起源(CentOS 源自 Red Hat,面向企業;Ubuntu 源自 Debian,面向個人)、包管理(CentOS 使用 yum,注重穩定;Ubuntu 使用 apt,更新頻率高)、支持週期(CentOS 提供 10 年支持,Ubuntu 提供 5 年 LTS 支持)、社區支持(CentOS 側重穩定,Ubuntu 提供廣泛教程和文檔)、用途(CentOS 偏向服務器,Ubuntu 適用於服務器和桌面),其他差異包括安裝精簡度(CentOS 精

提升CentOS上HDFS性能:全方位優化指南優化CentOS上的HDFS(Hadoop分佈式文件系統)需要綜合考慮硬件、系統配置和網絡設置等多個方面。本文提供一系列優化策略,助您提升HDFS性能。一、硬件升級與選型資源擴容:盡可能增加服務器的CPU、內存和存儲容量。高性能硬件:採用高性能網卡和交換機,提升網絡吞吐量。二、系統配置精調內核參數調整:修改/etc/sysctl.conf文件,優化TCP連接數、文件句柄數和內存管理等內核參數。例如,調整TCP連接狀態和緩衝區大小

在 Docker 中創建容器: 1. 拉取鏡像: docker pull [鏡像名] 2. 創建容器: docker run [選項] [鏡像名] [命令] 3. 啟動容器: docker start [容器名]

CentOS 中配置 IP 地址的步驟:查看當前網絡配置:ip addr編輯網絡配置文件:sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0更改 IP 地址:編輯 IPADDR= 行更改子網掩碼和網關(可選):編輯 NETMASK= 和 GATEWAY= 行重啟網絡服務:sudo systemctl restart network驗證 IP 地址:ip addr

CentOS下Hadoop分佈式文件系統(HDFS)配置常見問題及解決方案在CentOS系統上搭建HadoopHDFS集群時,一些常見的錯誤配置可能導致性能下降、數據丟失甚至集群無法啟動。本文總結了這些常見問題及其解決方法,幫助您避免這些陷阱,確保HDFS集群的穩定性和高效運行。機架感知配置錯誤:問題:未正確配置機架感知信息,導致數據塊副本分佈不均,增加網絡負載。解決方案:仔細檢查hdfs-site.xml文件中的機架感知配置,並使用hdfsdfsadmin-printTopo
