我正在使用Drupal 8,并在“ / var / www / html / drupal”目录中进行了多站点设置,而我正在将NGINX用作Web服务器。
我正在使用域名:
其中“ qa.example.com”是服务静态文件(其中包含一些信息的index.html)的主要域。而v1和v2是使用Drupal 8 Multi-site创建的动态站点。
由于qa.example.com只有1个静态文件,因此将其放置在Drupal Core目录中,并将虚拟主机指向“ / var / www / html / drupal”目录。 根据examples.sites.php中可用的文档,我在sites.php中添加了网站条目,如下所示:
<?php
$sites['qa.example.com.v1'] = 'v1.example.com';
$sites['qa.example.com.v2'] = 'v2.example.com';
访问“ qa.example.com”时,它工作正常,因为它只有一个index.html文件,但是访问“ qa.example.com/v1”时,我被重定向到“ qa.example.com” /core/install.php”或接收到“ 404 Not Found” nginx页面。我不明白自己在想什么。
以下是我正在使用的NGINX配置:
server {
server_name qa.example.com;
listen 80;
listen [::]:80;
index index.php index.html;
location / {
root /var/www/html/drupal;
try_files $uri /index.php?$query_string;
}
location /v1 {
root /var/www/html/drupal;
# try_files $uri $uri/ /var/www/html/drupal/index.php?$query_string;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ \..*/.*\.php$ {
return 403;
}
location ~ ^/sites/.*/private/ {
return 403;
}
location ~ (^|/)\. {
return 403;
}
location @rewrite {
rewrite ^/(.*)$ /index.php?q=$1;
}
location ~ '\.php$|^/update.php' {
fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
include fastcgi_params;
include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_intercept_errors on;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ ^/sites/.*/files/styles/ {
try_files $uri @rewrite;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
以下是我拥有的目录结构:
// main directory
/var/www/html/drupal
// my static file for landing domain name
/var/www/html/drupal/index.html
// drupal core files
/var/www/html/drupal/core
// drupal's index.php file
/var/www/html/drupal/index.php
// contrib and custom modules
/var/www/html/drupal/modules
// Site v1 directory as per Drupal's multi-site directory structure.
/var/www/html/drupal/sites/v1
// Site v2 directory as per Drupal's multi-site directory structure.
/var/www/html/drupal/sites/v2
我已经在线研究了很多参考资料,但是没有任何作用。
注意: v1 和 v2 不是实际目录“ / var / www / html / drupal”。
以下是我已提及的链接:
答案 0 :(得分:0)
在进行多站点设置时,我将建议您在站点目录中创建具有域名的目录,然后按以下方式进入sites.php。
$sites[directoy name] = 'domain name';
对于每个站点,您都需要在sites.php中进行输入。 每个域都应具有settings.php。