Linux
如何配置 NGINX 位置以在伺服器的子目錄中提供 Codeigniter RESTful API?
我有以下目錄結構:
mysite.com - /api (codeigniter RESTful API Server) - /app (backbonejs app)
我正在嘗試配置 NGINX 以將 mysite.com/api* 的所有請求指向 api 目錄並使用 Codeigniter 的設置。
如果 CI 在根目錄中,我發現的所有內容都可以正常工作。但是,當您嘗試將其放在子目錄中時,它會失敗。
這是我目前擁有的:
server { listen 80; server_name local.mysite.com; root /Users/me/Sites/mysite; autoindex on; index index.html index.php; location /api { try_files $uri $uri/ /api/index.php; location ~ \.php$ { root /Users/me/Sites/mysite/api; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } }
這樣做只會給我一個“找不到文件”錯誤。甚至沒有合適的 nginx 404。如何在伺服器的子目錄中為 CodeIgniter 配置 NGINX?
謝謝!
對於其他試圖解決這個問題但由於還沒有答案而失敗的人,這裡有一個超級簡單的設置:
140 server { 141 listen 80; 142 server_name local.mysite.com; 143 root /Users/me/Sites/mysite; 144 autoindex on; 145 index index.html index.php; 146 147 location /api { 148 try_files $uri $uri/ /api/index.php$args; 149 150 } 151 152 location ~ \.php$ { 153 fastcgi_pass 127.0.0.1:9000; 154 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 155 include fastcgi_params; 156 } 157 158 159 160 }