Windows11 WSL2 Ubuntu アップグレード

Ubuntu 22.04.2 LTS アップグレード Apache2 復活

ここまでで WSL2 の Ubuntu 22.04 LTS を 24.04 LTS にアップグレードできました。
ただ Apache2 が動作しなくなりました。
アップグレード途中質問された時どんどん yes で進んだのがまずかったように思えたのですが違ったようです。
Apache2 で PHP を設定していると必然的に Apache2 がエラーになってしまうようです。
まずは状況を確認します。
PHP のバージョンを確認します。


yamada@yama:~$ php -v
[結果]
PHP 8.3.6 (cli) (built: Mar 19 2025 10:08:38) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.6, Copyright (c) Zend Technologies
  with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies

PHP バージョンは 8.3.6 となっていました。
Apache2 を start させてみます。
上手く start できません。


yamada@yama:~$ sudo service apache2 start
[結果]
Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xeu apache2.service" for details.

systemctl status apache2.service を見ると


yamada@yama:~$ systemctl status apache2.service
× apache2.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/apache2.service; enabled; preset: enabled)
     Active: failed (Result: exit-code) since Sun 2025-06-08 18:37:13 JST; 54s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 2586 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)
        CPU: 10ms

 6月 08 18:37:13 ysenba systemd[1]: Starting apache2.service - The Apache HTTP Server...
 6月 08 18:37:13 ysenba apachectl[2588]: apache2:
   Syntax error on line 146 of /etc/apache2/apache2.conf:
   Syntax error on line 3 of /etc/apache2/mods-enabled/php8.1.load:
   Cannot load /usr/lib/apache2/modules/libphp8.1.so into server:
   /usr/lib/apache2/modules/libphp8.1.so:
   cannot open shared object file: No such file or directory
 6月 08 18:37:13 ysenba systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE
 6月 08 18:37:13 ysenba systemd[1]: apache2.service: Failed with result 'exit-code'.
 6月 08 18:37:13 ysenba systemd[1]: Failed to start apache2.service - The Apache HTTP Server.  

となっていました。
どうも
/etc/apache2/mods-enabled/php8.1.load
が読み込めなかったようです。
確認してみると
/usr/lib/apache2/modules/libphp8.1.so
は実在せず、
/usr/lib/apache2/modules/libphp8.3.so
がありました。
以上の状況から、Aapache2 が動かない原因は、
Aapache2 が旧の PHP 8.1 モジュールの有効化を実行しようとしてエラーになっている のではないかと考えました。
ならば、
PHP8.1 モジュールの無効化 $ sudo a2dismod php8.1
を行い、
PHP8.3 モジュールの有効化 $ sudo a2enmod php8.3
を行えばよいはずです。
なお Apache2 では PHP バージョンごとのモジュールを用意し、 モジュールの有効/無効を切り替えることでバージョン指定するとされています。

Apache2 の復活対処

PHP8.1 モジュールの無効化を実行します。


yamada@yama:~$ sudo a2dismod php8.1
[結果]
Module php8.1 disabled.
To activate the new configuration, you need to run:
  systemctl restart apache2

引き続き、対処を実施後 PHP8.3 モジュールの有効化を実行します。


Apache2 PHP 利用復活

PHP タイムゾーン設定が php8.3 になって消えてしまいました。
復活させます。
タイムゾーンを日本時間にします。
端末画面から
yamada@ubuntu-18:~$ sudo nano /etc/php/8.3/apache2/php.ini
とし、↓ キ-を押していると下方向にスクロ-ルします。
一番下まで行くようなイメ-ジで探します。
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
の下あたり、
[CLI Server]
の次
[Date]
の下
# 989行目:コメント解除しタイムゾーン設定
date.timezone = "Asia/Tokyo"
とします。
作成が終わったら
^o
Enter
^x
として保存、nano エディタを終了します。

ユーザーホームディレクトリでの PHP 利用

ユーザーホームディレクトリでの PHP 利用が可能になるようにします。
php8.3.conf の設定を変更します。
yamada@yama:~$ sudo nano /etc/apache2/mods-available/php8.3.conf
として PHP の構成ファイルの編集をします。
最後の方で php_admin_flag engine が Offになっているので、これを on にします。


yamada@yama:~$ sudo nano /etc/apache2/mods-available/php8.3.conf
[結果]
<IfModule mod_userdir.c>
  <Directory /home/*/public_html>
    php_admin_flag engine on
  </Directory>
</IfModule>

修正が終わったら
^o
Enter
^x
として保存、nano エディタを終了します。

PHP8.3 モジュールの有効化

やっと PHP8.3 に切り代える準備ができました。
$ sudo a2enmod php8.3 を実行します。


yamada@yama:~$ sudo a2enmod php8.3
[結果]
Considering dependency mpm_prefork for php8.3:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php8.3:
Enabling module php8.3.
To activate the new configuration, you need to run:
  systemctl restart apache2
引き続き、  
yamada@yama:~$ sudo systemctl restart apache2 

とします。
これで、ユーザーホームディレクトリでの PHP 利用が復活します。

引き続き Apache2 PHP 利用復活確認をします。


  • Apache2 PHP 利用復活確認 に進む
  • Ubuntu 22.04.2 LTS アップグレード に戻る
  • 70VPS に戻る