導航:首頁 > 編程語言 > php控制nginx

php控制nginx

發布時間:2024-10-21 07:32:31

❶ 如何限制Nginx+php的目錄許可權

最近Nginx的使用者是越來越多,多數網站也從原本使用很多的Apache平台或其他平台遷移到了Nginx。對於剛剛接觸Nginx的朋友來說,如何限制Nginx+PHP的目錄許可權成了實際問題,
大家都知道,在Apache中可以很容易的對虛擬目錄進行許可權控制,如:
程序代碼如下:

<VirtualHost IPn>
ServerAdmin [email protected]
DocumentRoot /usr/www/xpb/
ServerName IP:80
ServerAliasIP
ErrorLog logs/default-error_log
php_admin_value open_basedir "/tmp/:/usr/www/xpb/"
</VirtualHost>

關鍵是後面的這句php_admin_value,這樣就限制了php的操作目錄僅限於/tmp/和/usr/www/xpb/這兩個目錄了。對於Apache虛擬主機來說,這個設置十分有用,結合在php.ini中禁用一些php函數,幾乎可以杜絕PHP木馬對其他站點及系統的危害。我雖沒專業做過Linux下的虛擬主機,但相信各大虛擬主機商也是這么做的。

看來對於Apache最好的辦法還是使用「在php.ini中禁用一些危險的php函數和在Apache虛擬主機中配置php_admin_value」的方式來做虛擬主機的安全。

關於Nginx的配置文件,參考了很多資料,好像是不支持php_admin_value open_basedir,也就是Nginx暫時還沒有Apache的 php_myadmin_value這類的設置。如果用Nginx做虛擬主機,各用戶之間的目錄安全控制如何來做呢?網上很多人說,限制上傳文件類型,做好程序安全不就行了么?對,對於自己的站點來說這樣完全可以。但如果虛擬主機是給別人用的,又給予了FTP許可權,總不能不讓人上傳php文件吧。
轉載,僅供參考。

❷ 如何在Apache和Nginx禁止上傳目錄里PHP的執行許可權

網站程序的上傳目錄通常是不需要PHP執行解釋許可權,通過限制目錄的PHP執行許可權可以提網站的安全性,減少被攻擊的機率。

下面和大家一起分享下如何在Apache和Nginx禁止上傳目錄里PHP的執行許可權。

在虛擬主機配置文件中增加php_flag engine off指令即可,配置如下

"/website/uploads">,denyAllowfromallphp_flagengineoff

Nginx更簡單,直接通過location條件匹配定位後進行許可權禁止。

在server配置段中增加如下的配置

如果是單個目錄

location~*^/uploads/.*.(php|php5)${denyall; }

如果是多個目錄

location~*^/(attachments|uploads)/.*.(php|php5)${denyall;}

注意:這段配置文件一定要放在下面配置的前面才可以生效。

location~.php${ fastcgi_pass127.0.0.1:9000; fastcgi_indexindex.php; fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name; includefastcgi_params; }

最後給一個完整的配置示例

location~/mm/(data|uploads|templets)/*.(php)${ denyall; } location~.php${ try_files$uri/404.html; fastcgi_pass127.0.0.1:9000; fastcgi_indexindex.php; fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name; includefastcgi_params; }

配置完後記得重啟Nginx生效。

❸ 如何使用php腳本停止nginx服務

是什麼伺服器,Linux伺服器想要停止nginx得要root許可權,可以用
nginx -s stop
php的話可以用system('nginx -s stop'),但前提是你php得用root執行並且沒有禁用system函數。

❹ 如何 利用 php 重啟 nginx-Linux新手園地

已解決 下面是解決方法

1、設置 sudo 配置文件 可寫許可權
chmod u+w /etc/sudoers

2、增加 www 用戶的 nginx 腳本管理許可權
www ALL=(root) NOPASSWD: /etc/init.d/nginx

3、關閉 【強制控制台登錄】執行
【非常重要】,注釋該行 我的問題就出在這里,開啟了這個選項之後。在PHP中怎麼調用,都沒有執行結果
#Defaults requiretty

4、還原 sudo 配置許可權 440
【非常重要】,如果不還原許可權。在PHP中怎麼調用,都沒有執行結果。
chmod u-w /etc/sudoers

5、調用php
$result2 = exec("/usr/bin/sudo /etc/init.d/nginx stop",$result);
var_mp($result);
var_mp($result2);

閱讀全文

與php控制nginx相關的資料

熱點內容
電影資源網站源碼 瀏覽:553
垃圾壓縮車配件庫 瀏覽:943
csgo如何錄制demo到指定文件夾 瀏覽:156
微信里的反編譯 瀏覽:442
php身份證號正則 瀏覽:296
編程python體驗課 瀏覽:185
程序員人才認證 瀏覽:258
php數組重復次數 瀏覽:705
android程序logcat 瀏覽:975
程序員上班卻很少寫代碼 瀏覽:722
哪個狼人殺app可以玩夢魘守衛 瀏覽:969
php讀取網頁源碼 瀏覽:806
怎麼在終端輸入命令 瀏覽:787
qq瀏覽器pdf文件 瀏覽:791
在線pdf轉txt 瀏覽:51
買專業課書去哪個app 瀏覽:49
極路由雲伺服器已關閉怎麼刷 瀏覽:633
榮耀play圖片加密 瀏覽:334
使用命令方塊製作小屋 瀏覽:154
python窗口編程 瀏覽:72