簡體   English   中英

Apache2 升級到 Ubuntu 22.04 LTS 后無法啟動 - 無法加載 /usr/lib/apache2/moduleslibphp8.0.so [關閉]

[英]Apache2 won't start after upgrade to Ubuntu 22.04 LTS - Cannot load /usr/lib/apache2/moduleslibphp8.0.so [closed]

我對如何解決這個問題有點困惑。 我對運行 Apache2 的服務器進行了發行版升級。

自升級以來,它一直沒有用。 我運行了一個配置測試,下面是錯誤。 我在之前版本 Ubuntu (21.10) 上的配置沒有問題

$ apache2ctl configtest
apache2: Syntax error on line 146 of /etc/apache2/apache2.conf: Syntax error on line 3 of /etc/apache2/mods-enabled/php8.0.load: Cannot load /usr/lib/apache2/modules/libphp8.0.so into server: /usr/lib/apache2/modules/libphp8.0.so: cannot open shared object file: No such file or directory
Action 'configtest' failed.
The Apache error log may have more information.

任何想法從哪里開始? 當涉及到 Apache 時,我仍然相當缺乏經驗。

謝謝您的幫助。

雖然你已經弄清楚了,但其他人(比如我自己)會來看看你是怎么做到的。

 # perhaps you did the following to see what modules were present > apache2ctl -M # the result of the above command may have returned an error such as: apache2: Syntax error on line 146 of /etc/apache2/apache2.conf: Syntax error on line 2 of /etc/apache2/mods-enabled/php8.0.load: Cannot load /usr/lib/apache2/modules/libphp8.0.so into server: /usr/lib/apache2/modules/libphp8.0.so: cannot open shared object file: No such file or directory Action '-M' failed. # so you removed the problematic module that was no longer installed # by doing the following (as appropriate given the error above) > sudo a2dismod php8.0 # you needed to restart your server after that > sudo systemctl restart apache2 # if you tested the server in a browser html should function... # however you perhaps desired the use of another php module # and added another one (8.1) that is install by default in Ubuntu 22.04 > sudo a2enmod php8.1 # you restarted apache again and it worked? > sudo systemctl restart apache2

也許您正在使用mod_userdir並且還需要更新 apache php 模塊配置文件:

/etc/apache2/mods-enabled/php8.1.conf

通過注釋掉以下幾行:

 <IfModule mod_userdir.c> <Directory /home/*/public_html> php_admin_flag engine Off </Directory> </IfModule>

所以他們看起來像這樣:

 #<IfModule mod_userdir.c> # <Directory /home/*/public_html> # php_admin_flag engine Off # </Directory> #</IfModule>
 # finally you restarted apache2 again: sudo systemctl restart apache2 # and everything was back to normal?

你做過這樣的事情嗎?

無視所有人。 我想到了。

我檢查了/usr/lib/apache2/modules/,發現libphp8.0.so已經更新為libphp8.1.so。

在修改 mods-enabled 以包含此文件而不是有問題的文件后,apache 開始沒有問題。

 sudo gedit /etc/apache2/mods-enabled/php8.0.load

並重命名:

 LoadModule php_module /usr/lib/apache2/modules/libphp8.0.so

至:

 LoadModule php_module /usr/lib/apache2/modules/libphp8.1.so

我刪除(清除)php 和 apache2 並重新安裝。 通過數百條論壇消息和系統錯誤消息,它比命中注定和 go 更容易。

現在可以了。 在 7.4 和 8.1 之間發生了太多變化,以至於我的大部分 web 頁面現在都損壞了,我必須調試它們。

就我而言,我將Ubuntu 20.04 to 22.04 因此向導卸載了php7.4模塊並安裝了php8.1模塊。 之后我嘗試重新啟動 apache2 但它沒有。 我意識到在我的 /etc/apache2/mods-enabled 文件夾中我仍然有php7.4.confphp7.4.load並且php7.4.load仍然指向libphp7.4.so

請記住,啟用 mods 的文件夾是從 mods-available 文件夾生成的,因此您永遠不應更改啟用 mods 的文件夾。 相反,您應該禁用 php7.4 模塊:

sudo a2dismod php7.4

並啟用 php8.1 模塊:

sudo a2enmod php8.1

當然,啟用 php8.1 模塊后,您必須重新啟動 apache2 服務。

sudo systemctl restart apache2

操作系統升級到 Ubuntu 22 將安裝的 php 7.x 更新到 php8.x,但它不能修復 Apache2 配置

須藤a2dismod php7.4

須藤a2enmod php8.1

須藤a2disconf php7.4-fpm

須藤a2enconf php8.1-fpm

sudo systemctl reload apache2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM