根 (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 的移交。我有一个很好的关于此的教程,但实际上您只需谷歌一下“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;
}
}
}