時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
我們先來看下nginx.conf
server
{
listen 80;
server_name? m.ygkjgt7.cn;
index index.html index.htm index.php;
root? /data/htdocs/m.ygkjgt7.cn/;
#limit_conn?? crawler? 20;?
location ~ .*\.(php|php5)?
{????
#fastcgi_pass? unix:/tmp/php-cgi.sock;
fastcgi_pass? 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
}
server
{
listen 80;
server_name? www.downcc.com;
index index.html index.htm index.php;
root? /data/htdocs/www.downcc.com/;
#limit_conn?? crawler? 20;?
location ~ .*\.(php|php5)?
{????
#fastcgi_pass? unix:/tmp/php-cgi.sock;
fastcgi_pass? 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
}
nginx在80端口接受到訪問請求后,會把請求轉(zhuǎn)發(fā)給9000端口的php-cgi進(jìn)行處理
而如果修改php.ini中open_basedir= ../../../../../ ,針對兩個不同的網(wǎng)站,m.ygkjgt7.cn , www.downcc.com都會把請求發(fā)送給9000處理,而如果先訪問m.ygkjgt7.cn那么../../../../../就會變成A網(wǎng)站的根目錄地址,然后這時候如果你訪問www.downcc.com,那么open_basedir仍然是A網(wǎng)站的根目錄,但是對于B來說,又是不允許訪問的,所以就造成了,第二個站點打開以后會出現(xiàn)no input files,那么有什么解決辦法呢?
我們可以把不同的虛擬主機發(fā)送到不同的php-cgi端口進(jìn)行處理,當(dāng)然響應(yīng)的php-fpm配置文件中的open_basedir也不同。。我們來看看怎么配置。。
首先,nginx.conf配置如下
server
{
listen 80;
server_name? m.ygkjgt7.cn;
index index.html index.htm index.php;
root? /data/htdocs/m.ygkjgt7.cn/;
#limit_conn?? crawler? 20;?
location ~ .*\.(php|php5)?
{????
#fastcgi_pass? unix:/tmp/php-cgi.sock;
fastcgi_pass? 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
}
server
{
listen 80;
server_name? www.downcc.com;
index index.html index.htm index.php;
root? /data/htdocs/www.downcc.com/;
#limit_conn?? crawler? 20;?
location ~ .*\.(php|php5)?
{????
#fastcgi_pass? unix:/tmp/php-cgi.sock;
fastcgi_pass? 127.0.0.1:9001;
fastcgi_index index.php;
include fcgi.conf;
}
}
注意:m.ygkjgt7.cn 的請求發(fā)送到9000端口 , www.downcc.com的請求發(fā)送到9001端口,依次類推
nginx配置修改了,相對的,php-fpm.conf也要修改
每個站點建一個conf
A站點
#cp /usr/local/webserver/php/etc/php-fpm.conf /usr/local/webserver/php/etc/m.ygkjgt7.cn.conf
#vi /usr/local/webserver/php/etc/m.ygkjgt7.cn.conf
找到php_defines,添加
?
B站點
#cp /usr/local/webserver/php/etc/php-fpm.conf /usr/local/webserver/php/etc/www.downcc.com.conf
#vi /usr/local/webserver/php/etc/www.downcc.com.conf
找到php_defines,添加
?
找到listen_address,修改為
?
最后要修改php-fpm啟動腳本
#vi /usr/local/webserver/php/sbin/php-fpm
?
注釋掉原來的 #php_fpm_BIN --fpm php_opts,田間
php_fpm_BIN --fpm --fpm-config /usr/local/webserver/php/etc/m.ygkjgt7.cn.conf
php_fpm_BIN --fpm --fpm-config /usr/local/webserver/php/etc/www.downcc.com.conf
啟動服務(wù)
#/usr/local/webserver/php/sbin/php-fpm restart
查看端口
#netstat -tln
?
開了9000 9001分別處理兩個站點請求
兩個php-cgi主進(jìn)程加載不同的conf文件,這樣就完美解決了虛擬主機webshell能跨目錄的問題
當(dāng)然,啟動之前記得conf里面的max_children,開啟php-cgi子進(jìn)程數(shù),相應(yīng)要減少一些,以免造成內(nèi)存不足
關(guān)鍵詞標(biāo)簽:Nginx,虛擬主機
相關(guān)閱讀
熱門文章 ISAPI Rewrite實現(xiàn)IIS圖片防盜鏈 IIS6.0下配置MySQL+PHP5+Zend+phpMyAdmin 在Windows服務(wù)器上快速架設(shè)視頻編解碼器全攻略 win2000server IIS和tomcat5多站點配置
人氣排行 XAMPP配置出現(xiàn)403錯誤“Access forbidden!”的解決辦法 WIN2003 IIS6.0+PHP+ASP+MYSQL優(yōu)化配置 訪問網(wǎng)站403錯誤 Forbidden解決方法 如何從最大用戶并發(fā)數(shù)推算出系統(tǒng)最大用戶數(shù) Server Application Unavailable的解決辦法 報錯“HTTP/1.1 400 Bad Request”的處理方法 Windows Server 2003的Web接口 http 500內(nèi)部服務(wù)器錯誤的解決辦法(windows xp + IIS5.0)