Apache-2.2

Apache2 不啟動

  • September 10, 2019

我最近在讓 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 站點,它完美載入!

我想感謝這個網站提供了很多幫助!

引用自:https://serverfault.com/questions/918206