Я новичок в 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/;'
Пожалуйста, предложите мне что-нибудь. как я могу это исправить?
Вот ошибка:
location /ci {
Из-за этого только URL-пути, начинающиеся с /ci
будут обрабатываться прилагающимися try_files
. Это не то, что вам нужно.
Вместо этого вы должны обработать все URL-адреса с
location / {
Я рекомендую не редактировать 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