我正在尝试做一个网站,后端使用codeigniter,前端使用angularjs。后端我使用nginx作为服务器。目前我在正确配置nginx时遇到了问题。我想实现的是将codeigniter和angularjs应用程序放在不同的文件夹中。我想访问的是如下所示
- 来自我的网站的代码点火器
- 来自my_website.com的Angular
至于文件夹,我想把它们放在:
- 密码触发器:文件
- Angular :/var/www/html/angular
到目前为止,我已经设法让它在同一个文件夹中工作。所以现在我在/var/www/html中有codeigniter,而angular文件夹在同一个目录中。这样我就可以从my_website.com/访问codeigniter,而从my_website.com/app访问angular,这不是我想要的。
我尝试了多个不同的nginx /etc/nginx/sites-available/default文件的设置,但每次都遇到一些问题。最严重的是我把它们放在单独的文件夹中,但codeigniter只对default_controller有效,我无法访问任何其他文件。这是当前的工作配置。
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
root /var/www/html;
server_name localhost;
index index.php index.htm index.html;
location /app/ {
root /var/www/html/angular;
try_files $uri/ $uri index.html =404;
}
location / {
try_files $uri $uri/ /index.php;
#index index.html;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
include fastcgi_params;
}
}
这是一个简单的配置,我尝试从演示子文件夹运行codeigniter,
server {
listen 80;
server_name localhost;
root /var/www/html;
autoindex on;
index index.php;
location / {
#try_files $uri $uri/ /index.php;
try_files $uri $uri/ /index.php$request_uri;
location = /demo/index.php {
try_files $uri $uri/ /index.php$request_uri;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME /var/www/html/demo$fastcgi_script_name;
include fastcgi_params;
}
}
location ~ \.php$ {
return 444;
}
}
在这里,my_website.com/demo/index.php工作正常,但my_website.com/demo/index.php/欢迎显示 *500内部服务器错误 *
我希望我说得很清楚。我试过网上找到的很多不同的配置,但是我总是遇到一些麻烦。你们中的任何一个能提出一些简单的解决这个问题的方法吗?
谢谢马特乌斯
2条答案
按热度按时间eqfvzcg81#
我终于设法让它工作的方式我想要的。我已经使用这个解决方案link,使它与codeigniter在子目录,这是主要的问题。这里是我的配置:
感谢@FrédéricHenri建议使用
/var/log/nginx/*.log
下的日志文件,这有助于跟踪nginx重定向请求的方式。另外,我遇到的是网页浏览器缓存网站(我认为这是正在发生的事情),所以当我对配置文件做一些修改时,给了我错误的结果。rdlzhqv92#
如果你已经安装了~ .php和其他东西。那么只需要添加
在您的服务器{Nginx配置}对象中