2016-07-23 15 views
0

Ich habe versucht, die Lösung online zu finden, aber jede Lösung ist anders. niemand arbeitet. Ich habe gerade unseren Webserver von Apache auf Nginx migriert und bekomme 404 Fehler. Hier ist die PHP-Info: http://likeopedia.net/info.php. Wenn Sie die Hauptdomain besuchen, wird der Fehler angezeigt.Nginx, Codeigniter 404 Fehler. Ich kann nicht auf die Datei index.php zugreifen

Ich habe einige ernste Probleme für dieses Setup. Unsere Seite arbeitet auf dem Apache-Server, aber nicht auf Nginx.

Hier ist Nginx.conf-Datei, die ich ein wenig geändert habe.

user nginx; 
worker_processes auto; 
error_log /var/log/nginx/error.log; 
pid /var/run/nginx.pid; 

events { 
    worker_connections 1024; 
} 

http { 
    log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
         '$status $body_bytes_sent "$http_referer" ' 
         '"$http_user_agent" "$http_x_forwarded_for"'; 

    access_log /var/log/nginx/access.log main; 

    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; 

    include /etc/nginx/conf.d/*.conf; 
    autoindex on; 
    index index.php; 

    server { 
     listen  80 default_server; 
     listen  [::]:80 default_server; 
     server_name localhost; 
     root  /var/www/html; 

     include /etc/nginx/default.d/*.conf; 
     index index.php index.html index.htm; 
     rewrite_log on; 
     location/{ 
     try_files $uri $uri/ /index.php; 

     location = /index.php { 

         fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; 
         fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name; 
         include  fastcgi_params; 
        } 
     } 

     location ~ \.php$ { 
      return 444; 
     } 

und hier die codeigniter confiq.php Datei:

$config['base_url'] = 'http://likeopedia.net'; 

$config['abs_path'] = $_SERVER['DOCUMENT_ROOT'].'/'; 

$config['logout_url'] = 'http://likeopedia.net'; 

$config['index_page'] = ''; 

$config['uri_protocol'] = 'AUTO'; 

$config['url_suffix'] = ''; 

Es ist jetzt im Entwicklungsmodus.

Antwort

1

Sie haben die location = /index.php innerhalb der location / beigefügt. Versuchen Sie, die location / so zu ändern, dass sie location = /index.php nicht einschließt. Es sollte wie folgt aussehen:

location/{ 
     try_files $uri $uri/ /index.php; 
     } 
location = /index.php { 
      fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; 
      fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name; 
      include  fastcgi_params; 
     } 
location ~ \.php$ { 
    return 444; 
    } 

Probieren Sie es aus und lassen Sie uns wissen, ob das hilft. Dank für das Feedback - hier ist das, was ich denke, Sie auch versuchen können: die location = /index.php entfernen und stattdessen versuchen, die folgende Konfiguration für die location ~\.php$ deklarativen:

location ~ \.php$ { 
        try_files $uri =404; 
        fastcgi_pass unix:/var/run/php5-fpm.sock; 
        fastcgi_index index.php; 
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
        include fastcgi_params; 

      } 
+0

Dank für Ihre Antwort. Ich habe meinen Code aktualisiert, aber ich kann immer noch 404 Fehler sehen. Sie können hier http://likeopedia.net/ nachsehen. irgendetwas anderes sollte ich tun? hier die mein Beispiel nginx.conf Datei: http://likeopedia.net/nginx.conf –

+0

Ich habe die Antwort aktualisiert - sehen, ob die vorgeschlagenen Änderungen helfen. – ishmaelMakitla

+0

Ok Ich habe den Code erneut aktualisiert. aber der gleiche Fehler. Ist mein Fastcgi richtig installiert? Update-Code sieht wie folgt aus location/{ try_files $ uri $ uri//index.php; } \t \t Speicherort ~ \ .php $ { try_files $ uri = 404; fastcgi_pass unix: /var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $ Dokumentstammverzeichnis fastcgi_script_name; gehören fastcgi_params; } –