單個液滴/虛擬主機上的多個 Wordpress 站點/一個站點正在執行,第二個站點出現白屏當機。為什麼?- 數字海洋
這不是重複的文章!
系統資訊:安裝在 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並打到domain1時,它會出現白屏當機。 另外:當我放置一個基本的 index.html 文件時,它會正確顯示。但它仍然顯示 index.html 文件/var/www/html
讓我們加密已經為兩個域安裝。
這裡是相關文件的內容:
/etc/apache2/sites-available/domain1.conf :
UseCanonicalName On <VirtualHost *:80> ServerAdmin domain1@gmail.com 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 domain2@gmail.com 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>
domain2有一個
-le-ssl.conf
文件(來自 let’s encrypt)。奇怪的是 domain1 沒有這種文件。我為 domain1 複製並重命名和配置,但仍然沒有運氣。/etc/apache2/sites-available/domain2-le-ssl.conf
<IfModule mod_ssl.c> <VirtualHost *:443> ServerAdmin domain2@gmail.com 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 文件
編輯:另外,當我用Google搜尋http://my.ip.address時,它會重定向到帶有白屏的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 是一樣的。可以嗎?
期待你的答案!
該錯誤表明PHP無法讀取
/var/www/html/index.php
,因為文件權限不允許。您需要確保文件所有權和權限允許 PHP 讀取文件。