主要静态网站(镜像)位于:/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;但这会导致错误日志显示:
FastCGI在stderr中发送:“无法打开主脚本:/home/镜像/镜像/phpweb/phpweb/index.php
与工作配置最接近的是设置路径的错误方式:
fastcgi_param SCRIPT_FILENAME /home/mirrors/mirror$fastcgi_script_name;我在看什么?这是整个配置。基本上,除了图片/css/js没有指向phpweb/目录之外,它可以工作。我的配置似乎缺少了一些行,允许根/home/镜像/镜像/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;
}
}更新:这里的更新配置:
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;
}
}其结果是:
警告: include(/home/mirrors/mirror/include/site.inc):未能打开流:在第78行的/home/mirrors/mirror/phpweb/include/prepend.inc中没有这样的文件或目录 警告: include():打开‘/home/镜像/镜像/include/site.inc’失败,以便将(include_path='.:/usr/share/php:/usr/share/pear')包含在第78行的/home/mirrors/mirror/phpweb/include/prepend.inc中 警告: include(/home/mirrors/mirror/include/langchooser.inc):未能打开流:在第81行的/home/mirrors/mirror/phpweb/include/prepend.inc中没有这样的文件或目录 警告: include():在第81行的'/home/mirrors/mirror/include/langchooser.inc‘中打开包含(include_path='.:/usr/share/php:/usr/share/pear')的/home/mirrors/mirror/phpweb/include/prepend.inc失败 警告: include(/home/mirrors/mirror/include/ip-to-country.inc):未能打开流:在第84行的/home/mirrors/mirror/phpweb/include/prepend.inc中没有这样的文件或目录 警告: include():在第84行的'/home/mirrors/mirror/include/ip-to-country.inc‘中打开包含(include_path='.:/usr/share/php:/usr/share/pear')的/home/mirrors/mirror/phpweb/include/prepend.inc失败 警告: include(/home/mirrors/mirror/include/layout.inc):未能打开流:在第87行的/home/mirrors/mirror/phpweb/include/prepend.inc中没有这样的文件或目录 警告: include():打开‘/home/镜像/镜像/include/layout.inc’失败,以便将(include_path='.:/usr/share/php:/usr/share/pear')包含在第87行的/home/mirrors/mirror/phpweb/include/prepend.inc中 警告: include(/home/mirrors/mirror/include/last_updated.inc):未能打开流:在第92行的/home/mirrors/mirror/phpweb/include/prepend.inc中没有这样的文件或目录 警告: include():在第92行的'/home/mirrors/mirror/include/last_updated.inc‘中打开包含(include_path='.:/usr/share/php:/usr/share/pear')的/home/mirrors/mirror/phpweb/include/prepend.inc失败 警告: include_once(/home/mirrors/mirror/include/releases.inc):未能打开流:在第2行的/home/mirrors/mirror/phpweb/include/branches.inc中没有这样的文件或目录 警告:(include_path='.:/usr/share/php:/usr/share/pear') ():在第2行的/home/mirrors/mirror/phpweb/include/branches.inc中包含include_once():打开/home/镜像/镜像/include_once/Relases.inc‘失败 警告: include_once(/home/mirrors/mirror/include/version.inc):未能打开流:第3行的/home/mirrors/mirror/phpweb/include/branches.inc中没有这样的文件或目录 警告:(include_path='.:/usr/share/php:/usr/share/pear') ():在第3行的/home/mirrors/mirror/phpweb/include/branches.inc中包含include_once():打开/home/镜像/镜像/include_once/version.inc‘失败 致命错误:调用第44行中/home/镜像/镜像/phpweb/index.php中未定义的函数mirror_setcookie()
以前(原始配置粘贴在这篇文章中),我们没有php错误和页面加载。但如上文所述,图像/静力学被打破。
发布于 2016-05-31 08:07:40
root指令指定物理路径中以URI为前缀以查找物理文件的部分。详情请参见本文件。
因此,在您发布的配置中,在我看来,在所有三个位置上,root的值应该是相同的:
root /home/mirrors/mirror;实际上,在root块中指定一次server指令并允许将其继承到每个位置是很常见的。例如:
root /home/mirrors/mirror;
location / { ... }
location /phpweb { ... }
location ~ \.php$ { ... }https://stackoverflow.com/questions/37538082
复制相似问题