Я новичок в nginx и пытаюсь найти проблему на StackOverflow, но не нашел точного ответа на форумах. После успешной установки nginx, MySQL и php-fpm я тестирую php.info, который работал нормально.
Я переношу проект CodeIgniter на nginx с сервера apache. Я редактирую nginx.conf
файл, в котором есть код
server {
listen 80;
server_name 173.249.40.xxx;
# note that these lines are originally from the "location /" block
root /usr/share/nginx/html/ci;
index index.html index.htm index.php;
location /ci {
try_files $uri $uri/ /index.php;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
он работал нормально для php.info
моего пути, http://173.249.40.xxx/ci/info.php
но не работал для CodeIgniter controller name
, когда http://173.249.40.xxx/ci/index.php/Welcome
вызывался.
Путь приложения CodeIgniter:'/usr/share/nginx/html/ci/;'
Пожалуйста, предложите мне что-нибудь. Как это исправить?
решение1
Вот ошибка:
location /ci {
Из-за этого только URL-пути, начинающиеся с , /ci
будут обработаны вложенным try_files
. Это не то, что вам нужно.
Вместо этого вам следует обработать все URL-адреса,
location / {
решение2
Я рекомендую не редактировать nginx.conf
файл. Только отредактируйте gzip
и новую папку include (например, include /etc/nginx/sites/enabled/*.conf;
), закомментируйте исходную строку include и создайте там свой файл конфигурации с именем com.mywebsite.conf в папке, о которой я упоминал ранее.
Вот как я это делал раньше:
В новый файл конфигурации, о котором я упоминал, скопируйте содержимое официально рекомендуемой конфигурации, которая должна работать, если вы измените переменные в своей системе.
https://www.nginx.com/resources/wiki/start/topics/recipes/codeigniter/
Также храните свои веб-сайты в/var/www/html/mywebsite