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
