Apache2 不啟動
我最近在讓 Apache2 與 php7.1 一起工作時遇到了麻煩。我通過使用啟用了php模組
sudo a2enmod php7.1
並且工作正常。我使用以下方法更新了我的伺服器:
sudo apt-get update
進而
sudo apt-get upgrade
在我更新了我的伺服器後,我重新啟動了它。
我的 wordpress 網站不再工作,它只是再次將 .php 頁面顯示為純文字。
我認為這與我之前遇到的問題相同,因此我手動嘗試使用上面提到的相同命令()再次重新啟用 php7.1 模組
sudo a2enmod php7.1
。執行該命令後,我嘗試使用以下命令重新啟動 Apache2:sudo service apache2 restart
只為我提供此錯誤:
Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.
所以我當然會跑去
systemctl status apache2.service
看看是什麼問題。這是我得到的:
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: failed (Result: exit-code) since Mon 2018-06-25 23:54:16 CDT; 7min ago Process: 1163 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE) Jun 25 23:54:16 UndergroundSpecInc systemd[1]: Starting The Apache HTTP Server... Jun 25 23:54:16 UndergroundSpecInc apachectl[1163]: apache2: Syntax error on line 146 of /etc/apache2/apache2.conf: Syntax e Jun 25 23:54:16 UndergroundSpecInc apachectl[1163]: Action 'start' failed. Jun 25 23:54:16 UndergroundSpecInc apachectl[1163]: The Apache error log may have more information. Jun 25 23:54:16 UndergroundSpecInc systemd[1]: apache2.service: Control process exited, code=exited status=1 Jun 25 23:54:16 UndergroundSpecInc systemd[1]: apache2.service: Failed with result 'exit-code'. Jun 25 23:54:16 UndergroundSpecInc systemd[1]: Failed to start The Apache HTTP Server.
因此,為了追踪線索,我調查了第 146 行
/etc/apache2/apache2.conf
以找到以下內容:IncludeOptional mods-enabled/*.load
在這一點上,我被卡住了,因為我看不出那條線有什麼問題。
看來我已經回答了我自己的問題!
為了解決這個問題,我必須首先完全刪除與 php.ini 相關的所有安裝內容。(這是因為我在這次安裝的 Ubuntu 上更新了 php 幾次,所以與以前的版本有衝突。)
sudo apt-get purge php*
接下來我發現這篇文章解釋了在最新版本的 Ubuntu (18.04) 上只需在 apt-get 命令中使用“php”即可自動安裝 php7.2。所以要重新安裝我只是使用:
sudo apt-get update sudo apt-get upgrade
然後,一旦完成從清除 php* 調整軟體包,我就使用以下命令重新安裝了 php:
sudo apt-get install php
一旦完成,我通過執行檢查我的安裝版本:
php -v
這給了我一個輸出,說我正在執行 php 7.2。偉大的!
我仍然需要重新安裝 php7.2 的模組,因為它們在清除後被刪除。這是通過以下方式完成的:
apt-get install php-pear php-fpm php-dev php-zip php-curl php-xmlrpc php-gd php-mysql php-mbstring php-xml libapache2-mod-php
完成此操作後,我通過執行以下命令重新啟用了 Apache2 的 php 模組:
sudo an2enmod php7.2
那是成功的!因此,在確保一切正常執行的最後一步,我重新啟動了 Apache 2:
sudo service apache2 restart
這是一個成功的重啟!我轉到我的瀏覽器並導航到該伺服器上執行的 php 站點,它完美載入!
我想感謝這個網站提供了很多幫助!