這不是重複的贴子!
系统信息:在 Ubuntu 18.04 上安装 LAMP
我在 Digital Ocean droplet 上有两个 WordPress 网站,假设为 domain1 和 domain2。我设置了 2 个虚拟主机。我的 domain2 位于/var/www/domain2
运行正常,但
domain1 重定向到/var/www/html
而不是/var/www/domain1
。除此之外,当我将 domain1 的所有文件复制到/var/www/html
进行测试并访问 domain1 时,出现了死机白屏。
此外:当我放入一个基本的 index.html 文件时,它会正确显示。但它仍然显示 index.html 文件/var/www/html
让我们为两个域都安装加密。
以下是相关文件的内容:
/etc/apache2/sites-available/domain1.conf:
UseCanonicalName On
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName domain1.com
ServerAlias www.domain1.com
DocumentRoot /var/www/domain1
<Directory /var/www/domain1/>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =domain1.com [OR]
RewriteCond %{SERVER_NAME} =www.domain1.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
/etc/apache2/sites-available/domain2.conf:
UseCanonicalName On
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName domain2.com
ServerAlias www.domain2.com
DocumentRoot /var/www/domain2
<Directory /var/www/domain2/>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =domain2.com [OR]
RewriteCond %{SERVER_NAME} =www.domain2.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
有一个-le-ssl.conf
用于域 2 的文件(来自 let's encrypt)。奇怪的是,域 1 没有这种文件。我复制并重命名了域 1 并对其进行了配置,但仍然没有成功。
/etc/apache2/sites-available/domain2-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName domain2.com
ServerAlias www.domain2.com
DocumentRoot /var/www/domain2
<Directory /var/www/domain2/>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/domain2/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain2/privkey.pem
</VirtualHost>
</IfModule>
最后,.htaccess
两个网站的文件相同:
.htaccess
# BEGIN WordPress
# The directives (lines) between `BEGIN WordPress` and `END WordPress` are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
如果你问我,我做了这些:
- 配置完成后重启apache
- 使用 a2ensite 启用 .conf 文件
- 使用 a2dissite 禁用 000-default.conf 文件
编辑:另外,当我谷歌http://my.ip.地址它会重定向到https://domain1.com白屏。
更新
这里的apache2 error
日志可能相关:
[mpm_prefork:notice] [pid 31941] AH00171: Graceful restart requested, doing restart AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 10.18.0.5. Set the 'ServerName' directive globally to suppress this message
[php7:warn] [pid 12694] [client ] PHP Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0 [php7:error] [pid 12694] [client] PHP Fatal error: Unknown: Failed opening required '/var/www/html/index.php' (include_path='.:/usr/share/php') in Unknown on line 0
请注意:我将文件权限更改为 755,但仍然是一样的。
可能是ServerName
问题吗?:https://askubuntu.com/questions/256013/apache-error-could-not-reliably-determine-the-servers-fully-qualified-domain-n
这里是 vhosts 文件:
127.0.1.1 myhostname myhostname
127.0.0.1 localhost
奇怪的是我的主机名和主机名 fqdn 相同。这样可以吗?
期待您的答复!
答案1
错误表明 PHP 无法读取,/var/www/html/index.php
因为文件权限不允许。
您需要确保文件所有权和权限允许 PHP 读取该文件。