【发布时间】:2016-09-29 00:23:46
【问题描述】:
主静态网站(镜像)位于:/home/mirrors/mirror
我正在尝试仅在子目录/home/mirrors/mirror/phpweb/ 中设置 PHP 网站。到目前为止它加载了 PHP,但是所有的图像、css 和 url 链接都指向 /home/mirrors/mirror/filename* 而不是 /home/mirrors/mirror/phpweb/filename*
我试过了:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
但这会导致错误日志显示:
在 stderr 中发送的 FastCGI:“无法打开主脚本: /home/mirrors/mirror/phpweb/phpweb/index.php
最接近工作配置的是设置路径的错误方式:
fastcgi_param SCRIPT_FILENAME /home/mirrors/mirror$fastcgi_script_name;
我忽略了什么?这是整个配置。基本上它可以工作,只是 images/css/js 没有指向 phpweb/ 目录。我的配置似乎缺少一些允许在 root /home/mirrors/mirror/phpweb;指向该文件夹。
server {
listen 80;
listen 443 ssl http2;
server_name mirrors.domain.com;
if ($scheme = http) {
return 301 https://$http_host$request_uri;
}
location / {
root /home/mirrors/mirror;
index index.html index.htm;
include /home/mirrors/Nginx-Fancyindex-Theme/fancyindex.conf;
}
location /phpweb {
root /home/mirrors/mirror/phpweb;
index /phpweb/index.php;
}
location ~ /phpweb/.*\.php$ {
root /home/mirrors/mirror/phpweb;
# try_files $uri =404;
# try_files $uri $uri/ =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/mirrors/mirror$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
Here's where I found a config example.
更新:这里是更新的配置:
server {
listen 80;
listen 443 ssl http2;
server_name mirrors.domain.com;
root /home/mirrors/mirror;
if ($scheme = http) {
return 301 https://$http_host$request_uri;
}
location / {
index index.html index.htm;
include /home/mirrors/Nginx-Fancyindex-Theme/fancyindex.conf;
}
location /phpweb {
index /phpweb/index.php;
}
location ~ /phpweb/.*\.php$ {
try_files $uri =404;
# try_files $uri $uri/ =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# fastcgi_param SCRIPT_FILENAME /home/mirrors/mirror/phpweb$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
结果:
警告:包括(/home/mirrors/mirror/include/site.inc):未能 打开流:中没有这样的文件或目录 /home/mirrors/mirror/phpweb/include/prepend.inc 在第 78 行
警告:include():打开失败 '/home/mirrors/mirror/include/site.inc' 用于包含 (include_path='.:/usr/share/php:/usr/share/pear') 在 /home/mirrors/mirror/phpweb/include/prepend.inc 在第 78 行
警告:包含(/home/mirrors/mirror/include/langchooser.inc):失败 打开流:没有这样的文件或目录 /home/mirrors/mirror/phpweb/include/prepend.inc 在第 81 行
警告:include():打开失败 '/home/mirrors/mirror/include/langchooser.inc' 用于包含 (include_path='.:/usr/share/php:/usr/share/pear') 在 /home/mirrors/mirror/phpweb/include/prepend.inc 在第 81 行
警告:包括(/home/mirrors/mirror/include/ip-to-country.inc): 无法打开流:中没有这样的文件或目录 /home/mirrors/mirror/phpweb/include/prepend.inc 在第 84 行
警告:include():打开失败 '/home/mirrors/mirror/include/ip-to-country.inc' 用于包含 (include_path='.:/usr/share/php:/usr/share/pear') 在 /home/mirrors/mirror/phpweb/include/prepend.inc 在第 84 行
警告:包括(/home/mirrors/mirror/include/layout.inc):未能 打开流:中没有这样的文件或目录 /home/mirrors/mirror/phpweb/include/prepend.inc 在第 87 行
警告:include():打开失败 '/home/mirrors/mirror/include/layout.inc' 用于包含 (include_path='.:/usr/share/php:/usr/share/pear') 在 /home/mirrors/mirror/phpweb/include/prepend.inc 在第 87 行
警告:包括(/home/mirrors/mirror/include/last_updated.inc): 无法打开流:中没有这样的文件或目录 /home/mirrors/mirror/phpweb/include/prepend.inc 在第 92 行
警告:include():打开失败 '/home/mirrors/mirror/include/last_updated.inc' 用于包含 (include_path='.:/usr/share/php:/usr/share/pear') 在 /home/mirrors/mirror/phpweb/include/prepend.inc 在第 92 行
警告:include_once(/home/mirrors/mirror/include/releases.inc): 无法打开流:中没有这样的文件或目录 /home/mirrors/mirror/phpweb/include/branches.inc 在第 2 行
警告:include_once():打开失败 '/home/mirrors/mirror/include/releases.inc' 用于包含 (include_path='.:/usr/share/php:/usr/share/pear') 在 /home/mirrors/mirror/phpweb/include/branches.inc 在第 2 行
警告:include_once(/home/mirrors/mirror/include/version.inc): 无法打开流:中没有这样的文件或目录 /home/mirrors/mirror/phpweb/include/branches.inc 在第 3 行
警告:include_once():打开失败 '/home/mirrors/mirror/include/version.inc' 用于包含 (include_path='.:/usr/share/php:/usr/share/pear') 在 /home/mirrors/mirror/phpweb/include/branches.inc 在第 3 行
致命错误:调用未定义的函数 mirror_setcookie() 在 /home/mirrors/mirror/phpweb/index.php 在第 44 行
以前(在这篇文章中粘贴的原始配置)我们没有 php 错误并且页面加载。但是如上所述,图像/静态数据被破坏了。
【问题讨论】:
标签: php nginx fastcgi subdirectory mirror