2016-03-14 7 views
1

Я установил LEMP на мою систему монетного двора. nginx настроен на работу с сокетами php5-fpm. При запуске codeigniter в моей системе появляется index.php (ссылка: localhost/ci/index.php), но когда я пытаюсь открыть какой-либо контроллер, скажите блог (link localhost/ci/index.php/blog) nginx дает 404 ошибка сообщение.codeigniter не работает в nginx (работает на localhost), linux mint

Ниже моя конфигурация Nginx помещается в файл/и т.д./Nginx/сайты-Имеющийся/по умолчанию

server { 
listen 127.0.0.1:80; 
listen [::]:80 default_server ipv6only=on; 
root /home/scoders/Workspace/public_html; 
index index.html index.htm index.php; 
autoindex on; 

server_name localhost; 

location/{ 
    try_files $uri $uri/ /index.php?$args; 
} 

# Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests 

location ~ \.php$ { 
    fastcgi_split_path_info ^(.+\.php)(.*)$; 
    fastcgi_param REQUEST_URI $request_uri; 
    fastcgi_pass unix:/var/run/php5-fpm.sock; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME /home/scoders/Workspace/public_html/ci/index.php; 
    #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    include fastcgi_params; 
} 

}

Содержание из nginx.conf являются следующие:

user scoders; 
worker_processes 4; 
pid /run/nginx.pid; 

events { 
    worker_connections 768; 
} 
http { 
    sendfile on; 
    tcp_nopush on; 
    tcp_nodelay on; 
    keepalive_timeout 65; 
    types_hash_max_size 2048; 

    include /etc/nginx/mime.types; 
    default_type application/octet-stream; 

    access_log /var/log/nginx/access.log; 
    error_log /var/log/nginx/error.log; 

    gzip on; 
    gzip_disable "msie6"; 

    xml+rss text/javascript; 

    include /etc/nginx/conf.d/*.conf; 
    include /etc/nginx/sites-enabled/*; 
    include /etc/nginx/sites-enabled/*.conf; 
    server_names_hash_bucket_size 64; 
} 

В моем журнале представлена ​​следующая ошибка:

2016/03/14 14:38:38 [error] 23239#0: *1 FastCGI sent in stderr: 
"Primary script unknown" while reading response header from upstream, 
client: 127.0.0.1, server: localhost, request: "GET /ci/index.php/ci 
HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "localhost" 

Я попробовал эти ссылки, но не повез:

Codeigniter | NGINX

CodeIgniter NGINX Rewrite Rules

+0

Является ли имя файла blog.php или blog.php должен быть первым верхним регистром. – user4419336

+0

имя контроллера - это Blog.php –

ответ

0

Либо /home/scoders/Workspace/public_html/ci/index.php недоступные по какой-то причине или SCRIPT_FILENAME в настоящее время преодолены в include fastcgi_params;

Как правило, вы должны include первый и fastcgi_param после.

Например:

location ~ \.php$ { 
    fastcgi_pass unix:/var/run/php5-fpm.sock; 
    include fastcgi_params; 
    fastcgi_param REQUEST_URI $request_uri; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
} 

Кроме того, если по умолчанию URI является /ci/index.php и не /index.php, измените location / на:

location/{ 
    try_files $uri $uri/ /ci/index.php?$args; 
} 
+0

, просто добавив/ci в /index.php?$args, но я сделал оба изменения. Благодаря.. –

Смежные вопросы