1. Konfigurationsumgebung
(1)Ubuntu14.04 x86_64 [Kernel-Version: 3.16.0-30-generic]
(2)Nginx1.4.6
(3)MySQL5.5
(4)PHP5.5.9
2. Installationsmethode
Nicht aus dem Quellcode kompilieren und installieren, Verwenden Sie zur Installation die Methode apt -get install. Um zukünftige benutzerdefinierte Anforderungen zu erfüllen, ist es am besten, ein Deb-Installationspaket zu erstellen.
3. Spezifischer Installationsprozess
(1)MySQL
# apt-get install mysql-server php5-mysql ## Während des Installationsvorgangs werden Sie aufgefordert, das Root-Benutzerkennwort von MySQL festzulegen
(2)Nginx
(3)PHP # apt-get install php5-fpm php5-cli (4) Yii Gehen Sie zur offiziellen Website von Yii, um den Quellcode des Yii-Frameworks herunterzuladen, entpacken Sie ihn im Verzeichnis /var/www/ und ändern Sie den Dateinamen in yii. Ich verwende Version yii1.1.16. 4. Konfiguration Der Hauptzweck der Konfiguration besteht darin, die index.php in der Yii-Framework-URL für Nginx auszublenden und PHP-Konfiguration gibt es viele Informationen online.
server { listen 80 default_server; #listen [::]:80 default_server ipv6 ## listen for ipv6 root /var/www/; index index.html index.htm index.php; # Make site accessible from http://localhost/ server_name localhost; set $yii_bootstrap "index.php"; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. #try_files $uri $uri/ =404; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules try_files $uri $uri/ /$yii_bootstrap?$args; } #avoid processing of calls to unexisting static files by yii location ~ ^/(protected|framework|themes/\w+/views) { deny all; } location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { try_files $uri =404; } # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests #location /RequestDenied { # proxy_pass http://127.0.0.1:8080; #} error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/html; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini #let yii catch the calls to unexising PHP files set $fsn /$yii_bootstrap; if (-f $document_root$fastcgi_script_name){ set $fsn $fastcgi_script_name; } # With php5-cgi alone: #fastcgi_pass 127.0.0.1:9000; # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; #fastcgi_index index.php; include fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fsn; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fsn; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} location ~ /\. { deny all; access_log off; log_not_found off; } }
Nginx kann normal starten
# vim /etc/php5/fpm/php.ini
Suchen Sie die Option cgi.fix_pathinfo, kommentieren Sie sie aus und ändern Sie sie<span style="white-space:pre"> <?php   </span> <span style="white-space:pre">phpinfo(); ?></span>
(1) Ob die Website funktionieren kann
Die Website hat kein Problem mit der Homepage-Anzeige, aber alle Menüs haben 404-Fehler, nachdem sie darauf geklickt haben
Das Folgende ist die Konfiguration der Yii-Projekt-URL (protected/config/main.php)
Das Folgende ist die Pfadkonfiguration des Menüleiste
(2) Index.php in Yii-URL ausblenden
Die vorherige Nginx-Konfiguration wurde gemäß dem offiziellen Dokument von yii konfiguriert, war jedoch nutzlos. Google hat viele Informationen durchsucht, lediglich die Konfiguration in „Standort /“ geändert.
1) Lösung 1
Standort /{
try_files $uri $uri/ /index.php?$request_uri;
}
TippDer Inhalt der Variable $yii_bootstrap ist inde. php
Aber immer noch 404-Fehler
2) Lösung 2
ist auch zufällig und eilos
5. Fazit: Ich muss auf Apache umsteigen
Das passt gut, der zuvor angegebene offizielle Link kann das Problem lösen
Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne die Erlaubnis des Bloggers reproduziert werden.
Das Obige stellt die LNMP-Konfigurationsumgebung einschließlich einiger Aspekte des Inhalts vor. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.