这是我的 nginx 配置文件的一部分:
# 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 /var/www/$fastcgi_script_name;
include fastcgi_params;
}
Run Code Online (Sandbox Code Playgroud)
几乎网站会加载,因为 / 的位置也在此配置文件中设置为 /var/www。
location / {
root /var/www;
index index.php index.html index.htm;
}
Run Code Online (Sandbox Code Playgroud)
当我使用 phpinfo() 并读取 PHP 变量表时,我注意到了这一点:
_SERVER["DOCUMENT_ROOT"] /usr/share/nginx/html
Run Code Online (Sandbox Code Playgroud)
其他变量(大部分在 nginx.conf 中配置)如服务器名称、脚本文件名等,被发送到 php。因此,nginx 不会将此变量发送给 PHP。我必须做什么?
我使用的是 PHP 5.3.8 和 nginx 0.8
$document_root 由 root 指令设置。'根 html;' php 位置中的行将 $document_root 设置为 <nginx prefix>/html。看看https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#root-inside-location-block看看你应该如何在服务器上下文中设置你的根。它应该是这样的:
server {
root /var/www;
index index.php index.html index.htm;
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;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7559 次 |
| 最近记录: |