nginxphp許可權
Ⅰ 如何在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生效。
Ⅱ 如何正確配置Nginx+PHP
正確配置Nginx+PHP的步驟主要包括安裝並啟動phpfpm服務以及配置Nginx以處理PHP請求。以下是詳細步驟:
一、安裝並啟動phpfpm服務
安裝PHP及phpfpm:
- 在linux系統上,可以使用包管理器來安裝PHP及phpfpm。例如,在Debian/Ubuntu系統上,可以使用命令sudo aptget update && sudo aptget install php phpfpm。
啟動phpfpm服務:
- 安裝完成後,啟動phpfpm服務。在大多數系統上,可以使用命令sudo systemctl start phpfpm來啟動服務。
- 確保phpfpm服務在系統啟動時自動啟動,可以使用命令sudo systemctl enable phpfpm。
二、配置Nginx以處理PHP請求
編輯Nginx配置文件:
- 打開Nginx的配置文件。
添加PHP處理模塊:
- 在server塊中,添加如下配置以處理PHP請求:nginxlocation ~ .php$ { fastcgi_pass 127.0.0.1:9000; # 指定phpfpm監聽的地址和埠 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 設置腳本文件路徑 include fastcgi_params; # 包含fastcgi參數文件} 這段配置的作用是,當Nginx接收到以.php結尾的請求時,將其轉發給監聽在127.0.0.1:9000的phpfpm進程處理。3. 檢查配置文件並重啟Nginx: 在修改Nginx配置文件後,使用命令sudo nginx t來檢查配置文件的語法是否正確。 如果語法正確,使用命令sudo systemctl restart nginx來重啟Nginx服務,使配置生效。三、測試配置1. 創建PHP測試文件: 在Nginx的文檔根目錄中創建一個簡單的PHP測試文件,如info.php,內容如下:php<?phpphpinfo;?>
訪問測試文件:
- 在瀏覽器中訪問http://your_server_ip/info.php,如果配置正確,你應該能看到PHP的信息頁面。
通過以上步驟,你就可以正確配置Nginx+PHP環境了。如果遇到問題,可以檢查Nginx和phpfpm的日誌文件,以獲取更多調試信息。
Ⅲ LNMP一鍵安裝包PHP和Niginx 文件上傳大小限制問題解決方法
要解決LNMP一鍵安裝包中PHP和Nginx文件上傳大小限制問題,你可以按照以下步驟操作:
修改Nginx配置文件:
- 位置:/usr/local/nginx/conf/nginx.conf
- 操作:查找client_max_body_size參數,並將其值設置為你想設置的大小。
- 工具:你可以使用命令行工具或圖形化工具來修改此文件。
修改PHP配置文件:
- 位置:/usr/local/php/etc/php.ini
- 操作:
- 查找post_max_size參數,並將其值設置為你想設置的大小。
- 查找upload_max_filesize參數,同樣將其值設置為你想設置的大小。
- 注意:這兩個參數決定了PHP腳本可以接收的最大POST數據大小和最大上傳文件大小。
重啟LNMP服務:
- 命令:執行/root/lnmp restart命令來重啟LNMP服務,使上述更改生效。
重點總結: Nginx:通過修改nginx.conf文件中的client_max_body_size參數來設置最大上傳文件大小。 PHP:通過修改php.ini文件中的post_max_size和upload_max_filesize參數來設置PHP腳本可以接收的最大POST數據大小和最大上傳文件大小。 重啟服務:修改完配置文件後,需要重啟LNMP服務以使更改生效。
Ⅳ linux下怎麼讓nginx支持php
安裝 PHP-FPM
1. 開始安裝 Nginx 和 PHP-FPM 之前,你可能需要卸載系統中以前安裝的 Apache 和 PHP。
1
yum erase php*
2
or
3
yum remove httpd* php* #這個命令是刪除不幹凈的
4
yum remove php-cli php-common php #刪除
重新安裝 PHP:
1
yum --skip-broken install php53
2. CentOS 6.2/6.1/6/5.8 下安裝Remi源:
1
## Remi Dependency on CentOS 5 and Red Hat (RHEL) 5 ##
2
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
3
4
## CentOS 5 and Red Hat (RHEL) 5 ##
5
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
3. 安裝 PHP-FPM:
1
yum --enablerepo=remi,remi-test install nginx php php-fpm php-common
2
or
3
yum --enablerepo=remi install php53 php-fpm
4. 安裝完畢之後啟動 PHP-FPM:
1
/etc/init.d/php-fpm start
2
## OR ##
3
service php-fpm start
5. 設置Nginx & PHP-FPM開機自啟動:
1
chkconfig --add nginx
2
chkconfig --levels 235 nginx on
3
chkconfig --add php-fpm
Ⅳ nginx中php設置自啟動,部署ngxin+php配置文件
在Centos 7環境中安裝並設置PHP 8.0的開機自啟動,首先確保PHP-FPM的配置。
為了使PHP-FPM在系統啟動時自動運行,需要編輯啟動腳本。打開rc.local配置文件:
root@lx:~# vim /etc/rc.d/rc.local
在rc.local中添加以下行,以啟動PHP-FPM服務:
sudo systemctl enable php-fpm.service
然後,確認php-fpm是否已被添加到開機啟動列表中:
root@lx:~# chkconfig --list
查看結果,確認php-fpm服務的啟動級別是否為2(運行級別為3時啟動,對應多用戶模式)或更高。
接下來,配置Nginx以處理PHP請求。打開Nginx的配置文件,通常是/etc/nginx/nginx.conf 或者你的虛擬主機配置文件(如/etc/nginx/conf.d/yoursite.conf),確保你的location塊中包含如下內容:
location ~ \.php$ {
fastcgi_pass php-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
這將允許Nginx通過PHP-FPM處理.php文件。記得重啟Nginx服務以應用更改:
sudo systemctl restart nginx
至此,Centos 7上已經成功安裝PHP 8.0並配置了開機自啟動,Nginx也已設置解析PHP請求。現在,每當系統啟動時,PHP-FPM和Nginx都將協同工作。
Ⅵ nginx中怎樣指定多個目錄不解析php
多個目錄去掉PHP執行許可權
代碼如下 復制代碼
location ~ /(attachments|upload)/.*.(php|php5)?$ {
deny all;
}
將attachments、upload這二個目錄的PHP執行許可權去掉。
附,完整的虛擬主機配置:
代碼如下 復制代碼
server{
listen 80;
server_name www.51qgj.com;
index index.html index.htm index.php;
root /home/wwwroot/w123;
include discuz.conf;
location ~ /(attachments|upload)/.*.(php|php5)?$ {
deny all;
}
location ~ .*.(php|php5)?$
{
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
}
access_log off;
}