nginx解析php
Ⅰ 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;
}
Ⅱ 為什麼nginx不能解析php文件,PHP,fastcgi,php_fpm也安裝了,也都啟動了,配
訪問PHP文件成下載,這是nginx配置問題,原因是你沒有把訪問PHP文件的請求轉發給PHP:9000埠,nginx本身不能解析 .php 文件,所以變成下載。你檢查一下配置 .我給示例,幫得到你希望給分: location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
Ⅲ nginx 使用php解析的基本幾個配置
#運行用戶
user nobody;
#啟動進程,通常設置成和cpu的數量相等
worker_processes 1;
#全局錯誤日誌及PID文件
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
#工作模式及連接數上限
events {
#epoll是多路復用IO(I/O Multiplexing)中的一種方式,
#僅用於linux2.6以上內核,可以大大提高nginx的性能
use epoll;
#單個後台worker process進程的最大並發鏈接數
worker_connections 1024;
# 並發總數是 worker_processes 和 worker_connections 的乘積
# 即 max_clients = worker_processes * worker_connections
# 在設置了反向代理的情況下,max_clients = worker_processes * worker_connections / 4 為什麼
# 為什麼上面反向代理要除以4,應該說是一個經驗值
# 根據以上條件,正常情況下的Nginx Server可以應付的最大連接數為:4 * 8000 = 32000
# worker_connections 值的設置跟物理內存大小有關
# 因為並發受IO約束,max_clients的值須小於系統可以打開的最大文件數
# 而系統可以打開的最大文件數和內存大小成正比,一般1GB內存的機器上可以打開的文件數大約是10萬左右
# 我們來看看360M內存的VPS可以打開的文件句柄數是多少:
# $ cat /proc/sys/fs/file-max
# 輸出 34336
# 32000 < 34336,即並發連接總數小於系統可以打開的文件句柄總數,這樣就在操作系統可以承受的范圍之內
# 所以,worker_connections 的值需根據 worker_processes 進程數目和系統可以打開的最大文件總數進行適當地進行設置
# 使得並發總數小於操作系統可以打開的最大文件數目
# 其實質也就是根據主機的物理CPU和內存進行配置
# 當然,理論上的並發總數可能會和實際有所偏差,因為主機還有其他的工作進程需要消耗系統資源。
# ulimit -SHn 65535
}
http {
#設定mime類型,類型由mime.type文件定義
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;
#sendfile 指令指定 nginx 是否調用 sendfile 函數(zero 方式)來輸出文件,
#對於普通應用,必須設為 on,
#如果用來進行下載等應用磁碟IO重負載應用,可設置為 off,
#以平衡磁碟與網路I/O處理速度,降低系統的uptime.
sendfile on;
#tcp_nopush on;
#連接超時時間
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
#開啟gzip壓縮
gzip on;
gzip_disable "MSIE [1-6].";
#設定請求緩沖
client_header_buffer_size 128k;
large_client_header_buffers 4 128k;
#設定虛擬主機配置
server {
#偵聽80埠
listen 80;
#定義使用 www.nginx.cn訪問
server_name www.nginx.cn;
#定義伺服器的默認網站根目錄位置
root html;
#設定本虛擬主機的訪問日誌
access_log logs/nginx.access.log main;
#默認請求
location / {
#定義首頁索引文件的名稱
index index.php index.html index.htm;
}
# 定義錯誤提示頁面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
#靜態文件,nginx自己處理
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
#過期30天,靜態文件不怎麼更新,過期可以設大一點,
#如果頻繁更新,則可以設置得小一點。
expires 30d;
}
#PHP 腳本請求全部轉發到 FastCGI處理. 使用FastCGI默認配置.
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#禁止訪問 .htxxx 文件
location ~ /.ht {
deny all;
}
}
}
網頁鏈接
Ⅳ centos7 怎麼讓nginx解析php
nginx是不能解析PHP的
需要使用php-fpm來解析PHP,nginx只是負責將用戶請求轉發給php進程,由PHP進程處理後將結果返回給nginx,最後nginx再講請求返回給用戶
nginx在這扮演一個網關伺服器的角色
Ⅳ nginx配置支持php
nginx本身不支持php解析,需要配合php-fpm來配置。
location~.php${
root/var/www;#指定php的根目錄
fastcgi_pass127.0.0.1:9000;#php-fpm的默認埠是9000
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
includefastcgi_params;
}
centos下安裝php-fpm (php及其它組件已經安裝過的情況)
yuminstallphp-fpm
啟動php-fpm 並設置開機啟動 (centos 7)
systemctlstartphp-fpm
systemctlenablephp-fpm
Ⅵ Nginx怎麼禁止對某個文件夾下的php文件解析
location ~ ^/upload/.*\.(php|php5)$
{
deny all;
}
其中upload換為你要設置的目錄名字
這條規則的含義是匹配請求連接中開頭是/upload/,中間匹配任意字元,結尾匹配.php或者.php5的頁面,最後利用deny all禁止訪問
Ⅶ nginx 如何開啟解析 PHP 的功能
就功能上而言
nginx屬於輕量級伺服器軟體
所以不像Apache有許多的模組可用
但是因為PHP的廣泛應用
所以有php-fpm這個PHP的模塊可以使用
它的功能是將php語言進行編程
交由伺服器執行
所以只需要搭配nginx便可解析PHP了
Ⅷ 為什麼lnmp搭建後nginx解析不了php
將你的nginx的php部分貼一下.
另外,看看你的伺服器是否啟用了selinux,暫時禁用下看下
如果我的回答沒能幫助您,請繼續追問。