我花了6个多小时解决这个问题。
我有 nginx/1.2.7 服务器和 127.0.0.1:9000 上的 php-fpm。我有基本的 nginx 配置:
server
{
listen 80;
server_name example.org www.example.org;
index index.php index.html;
access_log /srv/www/example.org/logs/access.log;
error_log /srv/www/example.org/logs/error.log;
location /
{
root /var/www/html/example.org/public_html;
try_files $uri $uri/ /index.php;
location ~ \.php$
{
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
它工作正常!所有 php 文件都可以正常工作。
但我有一些单独的 yii 项目,需要在主根文件夹以外的地方执行。我在底部添加了这个配置:
其中/srv/www/example.org/yiitest — 它是 yiitest 项目的根目录(其中包含“受保护”文件夹和其他文件夹)。
location /yiitest
{
root /srv/www/example.org/yiitest;
try_files $uri $uri/ /index.php?$args;
location ~ \.php$
{
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
但它不起作用。我有“找不到文件”。我能得到的最大的东西是:example.org/yiitest/ 主页工作正常。如果我去 example.org/yiitest/site/contact/ 我会找不到文件。:(
我不明白,如何在服务器的单独子目录中正确设置 yii-project。