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

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Untuk membenarkan pelayan Tomcat mengakses rangkaian luaran, anda perlu: mengubah suai fail konfigurasi Tomcat untuk membenarkan sambungan luaran. Tambahkan peraturan tembok api untuk membenarkan akses kepada port pelayan Tomcat. Buat rekod DNS yang menunjukkan nama domain ke IP awam pelayan Tomcat. Pilihan: Gunakan proksi terbalik untuk meningkatkan keselamatan dan prestasi. Pilihan: Sediakan HTTPS untuk meningkatkan keselamatan.

Bagaimana untuk menambah tapak yang dipercayai dalam Google Chrome? Sesetengah pengguna tidak boleh menyemak imbas web seperti biasa kerana halaman menggesa bahawa ia tidak selamat semasa melayari Internet Pada masa ini, mereka boleh menambah tapak web sebagai tapak yang dipercayai, dan kami boleh mengaksesnya secara normal dan melayari Internet dengan lancar. Editor di bawah akan membawakan kepada anda langkah-langkah untuk menambah tapak yang dipercayai dalam Google Chrome. Cara menambah tapak yang dipercayai dalam Google Chrome: 1. Buka Google Chrome dan klik tiga titik di penjuru kanan sebelah atas. Klik [Tetapan]. Pilih tetapan privasi dan keselamatan. (Seperti yang ditunjukkan dalam gambar) 2. Klik Tetapan Laman Web di bahagian bawah halaman. (Seperti yang ditunjukkan dalam gambar) 3. Klik pada kandungan yang tidak selamat di bahagian bawah halaman. (Seperti yang ditunjukkan dalam gambar) 4. Klik butang Tambah di sebelah kanan pilihan Benarkan. (Seperti yang ditunjukkan dalam gambar) 5. Kalah

Seseorang boleh menggunakan arahan scp untuk menyalin fail antara hos rangkaian dengan selamat. Ia menggunakan ssh untuk pemindahan data dan pengesahan. Sintaks biasa ialah: scpfile1user@host:/path/to/dest/scp -r/path/to/source/user@host:/path/to/dest/scp exclude files Saya rasa anda tidak boleh apabila menggunakan arahan scp Tapis atau kecualikan fail. Walau bagaimanapun, terdapat penyelesaian yang baik untuk mengecualikan fail dan menyalinnya dengan selamat menggunakan ssh. Halaman ini menerangkan cara menapis atau mengecualikan fail apabila menyalin direktori secara rekursif menggunakan scp. Cara menggunakan arahan rsync untuk mengecualikan fail Sintaksnya ialah: rsyncav-essh-

Langkah-langkah penggunaan pelayan untuk projek Node.js: Sediakan persekitaran penggunaan: dapatkan akses pelayan, pasang Node.js, sediakan repositori Git. Bina aplikasi: Gunakan npm run build untuk menjana kod dan kebergantungan yang boleh digunakan. Muat naik kod ke pelayan: melalui Git atau Protokol Pemindahan Fail. Pasang kebergantungan: SSH ke dalam pelayan dan gunakan pemasangan npm untuk memasang kebergantungan aplikasi. Mulakan aplikasi: Gunakan arahan seperti node index.js untuk memulakan aplikasi, atau gunakan pengurus proses seperti pm2. Konfigurasikan proksi terbalik (pilihan): Gunakan proksi terbalik seperti Nginx atau Apache untuk menghalakan trafik ke aplikasi anda

Untuk menyelesaikan ralat "Selamat datang ke nginx!", anda perlu menyemak konfigurasi hos maya, dayakan hos maya, muat semula Nginx, jika fail konfigurasi hos maya tidak dapat ditemui, buat halaman lalai dan muat semula Nginx, kemudian mesej ralat akan hilang dan laman web akan menjadi paparan biasa.

Menukar fail HTML kepada URL memerlukan pelayan web, yang melibatkan langkah berikut: Dapatkan pelayan web. Sediakan pelayan web. Muat naik fail HTML. Buat nama domain. Halakan permintaan.

Sistem Linux boleh dibahagikan kepada 6 kategori mengikut kegunaan dan cirinya: pengedaran desktop (Ubuntu), pengedaran pelayan (RHEL), sistem terbenam (Yocto Project), sistem pengendalian mudah alih (Android), platform pengkomputeran awan dan pengedaran tujuan khas ( Kali Linux, Puppy Linux).

Versi sistem pelayan biasanya termasuk Linux (RHEL, CentOS, Pelayan Ubuntu, Debian), Pelayan Windows (Standard, Pusat Data, Hyper-V), UNIX (Solaris, AIX, HP-UX) dan Pelayan macOS. Faktor seperti keserasian aplikasi, sokongan perkakasan, keselamatan dan kestabilan, kos dan sokongan harus dipertimbangkan semasa memilih versi sistem.
