我有一台运行fastcgi / PHP的NGINX服务器。我需要添加用户名,但我无法让PHP执行文件 - 它只是问我是否要下载它。它在没有userdir的情况下工作(例如,它适用于physibots.info/hugs.php,但不适用于physibots.info/~kisses/hugs.php)。
配置:
server {
listen 80;
server_name physibots.info;
access_log /home/virtual/physibots.info/logs/access.log;
root /home/virtual/physibots.info/public_html;
location ~ ^/~(.+?)(/.*)?\.php$ {
fastcgi_param SCRIPT_FILENAME /home/$1/public_html$fastcgi_script_name;
fastcgi_pass unix:/tmp/php.socket;
}
location ~ ^/~(.+?)(/.*)?$ {
alias /home/$1/public_html$2;
autoindex on;
}
location ~ \.php$ {
try_files $uri /error.html/$uri?null;
fastcgi_pass unix:/tmp/php.socket;
}
}
答案 0 :(得分:1)
我之前在另一台服务器上遇到过类似的问题。我的问题是脚本容器<?
。把所有这些放在它后面(就像这个<?php
)在脚本中出现的任何地方执行文件而不是下载它们。
希望有所帮助。
答案 1 :(得分:0)
尝试将此行添加到php位置块:
fastcgi_param REDIRECT_STATUS 200;
顺便说一下 - 你确定php.socket
确实存在吗?
答案 2 :(得分:0)
事实证明它链接到/ home / foo / public_html / ~foo。所以,从/ home / foo / public_html / ~foo回到/ home / foo / public_html的循环符号链接就像一个魅力。谢谢你的帮助!