EDIT
Ternyata saya menggonggong pohon yang salah mencoba mengedit .htaccess, karena nginx tidak menggunakannya. Apa yang tampaknya perlu saya lakukan adalah mengedit file .conf saya. Sebelum saya membaca ini, my_app.conf tampak seperti ini:
upstream backend {
server unix:/u/apps/my_app/tmp/php.sock;
}
server {
listen 80 default;
root /u/apps/my_app/www;
index index.php;
access_log /u/apps/my_app/logs/access.log;
error_log /u/apps/my_app/logs/error.log;
location / {
try_files $uri $uri/ /index.php;
}
# This location block matches anything ending in .php and sends it to
# our PHP-FPM socket, defined in the upstream block above.
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /u/apps/my_app/www$fastcgi_script_name;
include fastcgi_params;
}
# This location block is used to view PHP-FPM stats
location ~ ^/(php_status|php_ping)$ {
fastcgi_pass backend;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
include fastcgi_params;
allow 127.0.0.1;
deny all;
}
# This location block is used to view nginx stats
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
Sekarang terlihat seperti ini, dan itu masih tidak berfungsi:
upstream backend {
server unix:/u/apps/my_app/tmp/php.sock;
}
server {
listen 80 default;
root /u/apps/my_app/www;
index index.php;
access_log /u/apps/my_app/logs/access.log;
error_log /u/apps/my_app/logs/error.log;
location / {
try_files $uri $uri/ /index.php;
}
location /wordpress/ {
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2 |doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
access_log off; log_not_found off; expires max;
}
# Uncomment one of the lines below for the appropriate caching plugin (if used).
#include global/wordpress-wp-super-cache.conf;
#include global/wordpress-w3-total-cache.conf;
# This location block matches anything ending in .php and sends it to
# our PHP-FPM socket, defined in the upstream block above.
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /u/apps/my_app/www$fastcgi_script_name;
include fastcgi_params;
}
# This location block is used to view PHP-FPM stats
location ~ ^/(php_status|php_ping)$ {
fastcgi_pass backend;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
include fastcgi_params;
allow 127.0.0.1;
deny all;
}
# This location block is used to view nginx stats
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
Adakah yang tahu apa yang saya lakukan salah?
AKHIR EDIT
Saya telah mengubah permalink saya dari default menjadi /% postname% /, dan sekarang tautan dalam panel Admin WordPress memberi saya 404 kesalahan - Bukan WordPress 404 halaman, nginx 404 halaman. Mencari tahu mengapa ini mengatakan kepada saya bahwa ini harus mengedit file .htaccess saya atau memberi tahu saya WordPress tidak dapat menulis ulang .htaccess - file .htaccess tidak ada, dan WordPress tidak memberikan kesalahan ketika saya mengubah permalinks.
Saya sudah mencoba membuat file .htaccess kosong di folder wordpress saya, memberikannya 666 izin, mengubah pengguna dan grup menjadi www-data dan kemudian mengubah permalinks- yang tidak berfungsi. Saya kemudian mengubahnya menjadi ini sebelum mengubah permalink:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Ketika itu tidak bekerja, saya berubah RewriteBase
untuk /wordpress/
sebelum mengubah permalinks lagi - masih ada.
Saya juga masuk ke file .conf situs saya dan berubah try_files $uri $uri/ /index.php;
menjadi yang berikut, memulai kembali nginx dan php5-fpm setiap kali;
try_files $uri $uri/ /index.php?$query_string;
try_files $uri $uri/ /index.php?q=$request_uri;
try_files $uri $uri/ /index.php?$args;
Saya menjalankan server rumah dengan nginx. Ada ide tentang apa yang terjadi di sini?
sumber
Saya menggunakan multisite wordpress dengan pengaturan permalink kustom: /% kategori% /% postname% /
/etc/nginx/site-available/domain.conf
Di server {
Jika root wordpress Anda bukan webroot tetapi http://domain.com/wordpress/ :
Jika Anda menggunakan wordpress lama dengan blogs.dir, tambahkan: location ^ ~ /blogs.dir {internal; alias /var/www/wordpress/wp-content/blogs.dir; access_log off; log_not_found off; kedaluwarsa maks; }
Periksa konfigurasi nginx: sudo nginx -t
Reload nginx: sudo service nginx reload
Coba juga ubah pengaturan permalink.
sumber
Harus menambahkan potongan kode ini untuk kedua
/sites-available/your-settings-file
dan/sites-enabled/your-settings-file
:Ini bekerja untuk saya sekarang.
sumber
Saya harus mengatur path root ke direktori terinstal wordpressÅ›: root / var / www / html / wp;
Saya tidak suka karena saya memiliki lebih banyak aplikasi yang diinstal pada mesin ini tetapi membuat lebih banyak virtual host sudah cukup.
sumber