BIÊN TẬP
Hóa ra là tôi đã sủa sai cây khi cố chỉnh sửa .htaccess, vì nginx không sử dụng nó. Những gì tôi rõ ràng cần phải làm là chỉnh sửa tập tin .conf của tôi. Trước khi tôi đọc nó, my_app.conf trông như thế này:
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;
}
}
Bây giờ nó trông như thế này và nó vẫn không hoạt động:
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;
}
}
Có ai biết tôi đang làm gì sai không?
EDIT KẾT THÚC
Tôi đã thay đổi permalinks của mình từ mặc định thành /% postname% /, và bây giờ các liên kết trong bảng Quản trị của WordPress cung cấp cho tôi lỗi 404 - Không phải trang 404 404, trang nginx 404. Tìm kiếm lý do tại sao điều này được nói với tôi rằng điều này nên chỉnh sửa tệp .htaccess của tôi hoặc cho tôi biết WordPress không thể viết lại .htaccess - tệp .htaccess không tồn tại và WordPress không đưa ra bất kỳ lỗi nào khi tôi thay đổi permalinks.
Tôi đã thử tạo một tệp .htaccess trống trong thư mục wordpress của mình, cấp cho nó 666 quyền, thay đổi người dùng và nhóm thành dữ liệu www và sau đó thay đổi permalinks - không hoạt động. Sau đó tôi đã thay đổi nó thành trước khi thay đổi permalinks:
# 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
Khi điều đó không làm việc, tôi đã thay đổi RewriteBase
đến /wordpress/
trước khi thay đổi permalinks một lần nữa - vẫn không có gì.
Tôi cũng đã truy cập vào tệp .conf của trang web của mình và thay đổi try_files $uri $uri/ /index.php;
thành như sau, khởi động lại nginx và php5-fpm mỗi lần;
try_files $uri $uri/ /index.php?$query_string;
try_files $uri $uri/ /index.php?q=$request_uri;
try_files $uri $uri/ /index.php?$args;
Tôi đang chạy một máy chủ gia đình với nginx. Bất cứ ý tưởng về những gì đang xảy ra ở đây?