A raiz (http://www.exemplo.com/) apontará para /var/www/wordpress
Como posso permitir que cada um deles fique visível no navegador?
working -- http://www.example.com
error -- http://www.example.com/wordpress2
error -- http://www.example.com/htmlsite
Aqui está a estrutura:
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;
}
}
Se eu fizer isso root /var/www;
, /wordpress2 e /wordpress3 funcionarão:
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;
}
}
Responder1
Isso deve funcionar da maneira que você deseja.
Como o URI é anexado ao diretório especificado na root
diretiva, precisamos especificá-lo apenas uma vez. Apenas `try_files´ deve ser especificado para cada local separadamente.
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;
}
}
Responder2
Presumo que você tenha três instâncias do Wordpress em três domínios. Nesse caso você precisa definir servidores para cada site e instalar o Wordpress.
Se você deseja várias instalações do Wordpress em um domínio, sua abordagem geralmente é correta, mas você precisa definir a transferência para o PHP. eu tenho um bomtutorial sobre isso, mas na verdade você pode simplesmente pesquisar no Google "Tutorial Nginx Wordpress" e encontrar 100 tutoriais.
Sugiro que você comece fazendo um funcionar e depois adicione outros.
Responder3
Isso é tudo que você precisa.
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;
}
}
}