根 (http://www.example.com/) 將指向 /var/www/wordpress
我怎麼能讓每一個都可以在瀏覽器中查看?
working -- http://www.example.com
error -- http://www.example.com/wordpress2
error -- http://www.example.com/htmlsite
結構如下:
first wordpress: /var/www/wordpress
second wordpress: /var/www/wordpress2
static html page: /var/www/htmlsite
server {
root /var/www/wordpress;
index index.php;
...
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location /wordpress2 {
root /var/www/wordpress2;
try_files $uri $uri/ /index.php$is_args$args;
}
location /htmlsite {
root /var/www/htmlsite;
try_files $uri $uri/ =404;
}
}
如果我這樣做root /var/www;
,那麼 /wordpress2 和 /wordpress3 可以工作:
server {
root /var/www;
index index.php;
...
location / {
try_files $uri $uri/ =404;
}
location /wordpress2 {
try_files $uri $uri/ /wordpress2/index.php$is_args$args;
}
location /wordpress3 {
try_files $uri $uri/ /wordpress3/index.php$is_args$args;
}
location /htmlsite {
root /var/www/htmlsite;
try_files $uri $uri/ =404;
}
}
答案1
這應該按照你想要的方式工作。
由於 URI 附加到root
指令中指定的目錄中,因此我們只需指定一次。只需為每個位置單獨指定“try_files”。
server {
root /var/www/wordpress;
index index.php;
...
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location /wordpress2 {
root /var/www;
try_files $uri $uri/ /wordpress2/index.php$is_args$args;
}
location /htmlsite {
root /var/www;
try_files $uri $uri/ =404;
}
}
答案2
我假設您在三個網域上有三個 WordPress 實例。在這種情況下,您需要為每個網站和 WordPress 安裝定義伺服器。
如果您希望在一個網域上安裝多個 WordPress,那麼您的方法通常是正確的,但您需要定義到 PHP 的移交。我有一個好教學,但實際上你可以透過 google 搜尋「Nginx Wordpress 教學」並找到 100 個教學。
建議您先讓其中一項工作,然後再新增其他項目。
答案3
這就是您所需要的。
server {
listen 80;
root /var/www/wordpress;
server_name example.com www.example.com;
index index.php;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~* \.(css|gif|ico|jpeg|jpg|js|png|woff|woff2|ttf|ttc|otf|eot)$ {
expires max;
log_not_found off;
}
location / {
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php$is_args$args;
}
location /wordpress2 {
root /var/www/wordpress/wordpress2;
index index.php;
try_files $uri $uri/ =404;
location ~ /wordpress2 /(.+\.php)$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
location /htmlsite {
root /var/www/wordpress/htmlsite;
index index.php;
try_files $uri $uri/ =404;
location ~ /htmlsite /(.+\.php)$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
}