Nginx – 使用多个codeigniter安装

我有一个Nginx服务器(1.6),在我的本地服务器上有PHP-FPM。 我有我的“/ var / www /”文件夹中的多个webapps,如site01,site02 …

我的应用程序使用CodeIgniter。

我想在/ var / www / site01调用默认位置,并调用/ var / www / site02当我去:

http://server/site02. 

这里是我的nginx的default.conf:

服务器{听80; server_name localhost; access_logclosures; client_body_buffer_size 1M; proxy_max_temp_file_size 0; disable_symlinks off;

 # Site 01 location / { root /var/www/site01; index index.html index.php index.htm; try_files $uri $uri/ /index.php; location = /index.php { fastcgi_pass 127.0.0.1:9000; fastcgi_read_timeout 10000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_buffer_size 16K; fastcgi_buffers 256 16k; include fastcgi_params; } } # Site 2 location /site02 { root /var/www/; index index.htm; try_files $uri $uri/ /index.php; location ~ ^/site02/index.php { try_files $uri =404; root /var/www/; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_read_timeout 10000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_buffer_size 16K; fastcgi_buffers 256 16k; include /etc/nginx/fastcgi_params; } } 

我有多个错误,首先,当我没有把“index.php”放在我的site02 URL中时,我有一个403错误。 然后,我不能去任何控制器,它将我redirect到/ site01。

什么是处理多个PHP应用程序文件夹的最佳方式? 为什么我有这些redirect? 谢谢。

首先我看你的第二个网站configuration:

 location /site02 { root /var/www/; index index.htm; 

改成 :

 location /site02 { root /var/www/; index index.php index.htm; 

需要index.php

当我在一个Nginx服务器上开发2个CodeIgniter应用程序时,我也遇到了同样的问题。 下面的代码为我工作

 server { listen 80; listen [::]:80; root /var/www/html/; server_name example.com; # Site 01 location /site1 { alias /var/www/html/site1/; index index.htm index.php; try_files $uri $uri/ /site1/index.php; } # Site 2 location /site2 { alias /var/www/html/site2/; index index.htm index.php; try_files $uri $uri/ /site2/index.php; } error_page 404 /error/404.php; fastcgi_intercept_errors on; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } } 

好的,很难解决! 但是这对我有用:

 location /site02 { root /var/www/; index index.php index.htm; try_files $uri $uri/ /site02/index.php; location ~ ^/site02/(.+\.php)$ { root /var/www; try_files $uri $uri/ /site02/index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_read_timeout 10000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_buffer_size 16K; fastcgi_buffers 256 16k; include fastcgi_params; } } 

编辑 :对不起,试试这个:ROOT / var / www如果nginxconfiguration了这个path

 server{ ...... ...... root /var/www/; index index.html index.php index.htm; location / { try_files $uri $uri/ /index.php; } # Site 1 location /site01 { .....your parameters here... } # Site 2 location /site02 { .....your parameters here... } location ~ \.php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_read_timeout 10000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_buffer_size 16K; fastcgi_buffers 256 16k; include fastcgi_params; } } 

nginx wiki上有更多configuration( http://wiki.nginx.org/ServerBlockExample ),请看一下