我在 Ubunu 18.04 上有一个 Apache 服务器,上面有一个 Drupal 8 站点,我想将其迁移到 Nginx 和 PHP7.3-FPM。
这是服务器上唯一的网站。我根本不了解 Nginx。该网站适用于 Apache,但不能适用于 Nginx。
我使用以下命令删除了 Apache:
sudo apt autoremove --purge apache2*
这是我在 Apache 上的配置:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName domaine.com
ServerAlias www.domaine.com
Protocols h2 http/1.1
DocumentRoot /var/www/www-domaine-com/web/
<Directory /var/www/www-domaine-com/web>
Options +Includes -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php/php7.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
以下是我安装 Nginx 的方法:
sudo apt install nginx
sudo ufw allow in "Nginx HTTP"
我正在测试我的服务器的IP地址,并且显示了Nginx页面。
sudo unlink /etc/nginx/sites-enabled/default
这是我的 Nginx 配置:
sudo nano /etc/nginx/sites-available/www-domaine-com
server {
listen 80;
listen [::]:80;
server_name domaine.com www.domaine.com;
root /var/www/www-domaine-com/web;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
我创建了我的新配置的符号链接:
sudo ln -s /etc/nginx/sites-available/www.domaine.com /etc/nginx/sites-enabled/
我测试我的配置:
sudo nginx -t
显示以下消息:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
答案1
您的 Drupal 8 安装正在将主页流量重定向到/fr
,然后返回 nginx 404。
查看标题:
$ curl -I http://s1biose.com/
HTTP/1.1 301 Moved Permanently
Server: nginx/1.14.0 (Ubuntu)
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Date: Wed, 27 Feb 2019 06:11:22 GMT
Location: http://s1biose.com/fr
X-Drupal-Route-Normalizer: 1
X-UA-Compatible: IE=edge
Content-language: fr
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Generator: Drupal 8 (https://www.drupal.org)
X-Drupal-Cache: HIT
您应该按顺序执行以下操作:
- 检查服务器的时钟。它似乎错了几个小时。
- 清除 Drupal 的缓存。
- 检查您的 Drupal 主页返回的内容。