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脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

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

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

要让 Tomcat 服务器对外网访问,需要:修改 Tomcat 配置文件,允许外部连接。添加防火墙规则,允许访问 Tomcat 服务器端口。创建 DNS 记录,将域名指向 Tomcat 服务器公有 IP。可选:使用反向代理提升安全性和性能。可选:设置 HTTPS 以提高安全性。

谷歌浏览器如何添加信任站点?有的用户在上网时因页面提示不安全无法正常浏览网页,此时就可以把网站添加为信任站点,我们就能正常访问,顺利上网了。下面小编为大家带来谷歌浏览器添加信任站点方法步骤,步骤简单易操作,小白也能轻松上手,有需要的小伙伴一起来了解吧。谷歌浏览器添加信任站点方法步骤1、打开谷歌浏览器,点击右上角三个点。点击【设置】。选择隐私设置和安全性。(如图所示)2、点击页面下方的网站设置。(如图所示)3、点击页面下方的不安全内容。(如图所示)4、点击允许选项右边的添加按钮。(如图所示)5、输

人们可以使用scp命令在网络主机之间安全地复制文件。它使用ssh进行数据传输和身份验证。典型的语法是:scpfile1user@host:/path/to/dest/scp-r/path/to/source/user@host:/path/to/dest/scp排除文件我不认为你可以在使用scp命令时过滤或排除文件。但是,有一个很好的解决方法来排除文件并使用ssh安全地复制它。本页面说明如何在使用scp递归复制目录时过滤或排除文件。如何使用rsync命令排除文件语法是:rsyncav-essh-

要解决 "Welcome to nginx!" 错误,需要检查虚拟主机配置,启用虚拟主机,重新加载 Nginx,如果无法找到虚拟主机配置文件,则创建默认页面并重新加载 Nginx,这样错误消息将消失,网站将正常显示。

Node.js 项目的服务器部署步骤:准备部署环境:获取服务器访问权限、安装 Node.js、设置 Git 存储库。构建应用程序:使用 npm run build 生成可部署代码和依赖项。上传代码到服务器:通过 Git 或文件传输协议。安装依赖项:SSH 登录服务器并使用 npm install 安装应用程序依赖项。启动应用程序:使用 node index.js 等命令启动应用程序,或使用 pm2 等进程管理器。配置反向代理(可选):使用 Nginx 或 Apache 等反向代理路由流量到应用程

要将 HTML 文件转换为网址,需要使用网络服务器,包括以下步骤:获取网络服务器。设置网络服务器。上传 HTML 文件。创建域名。路由请求。

服务器系统版本通常包括 Linux (RHEL、CentOS、Ubuntu Server、Debian)、Windows Server (Standard、Datacenter、Hyper-V)、UNIX (Solaris、AIX、HP-UX) 和 macOS Server。选择系统版本时应考虑应用程序兼容性、硬件支持、安全性和稳定性、成本和支持等因素。

是的,Node.js 可以外网访问。您可以使用以下方法:使用 Cloud Functions 部署函数并公开访问。使用 Express 框架创建路由并定义端点。使用 Nginx 反向代理请求到 Node.js 应用程序。使用 Docker 容器运行 Node.js 应用程序并通过端口映射公开。
