Windows11 WSL2 Ubuntu Apache2

PHP 環境構築

やっと、PHP インスト-ルまでにこぎつけました。
まずは Ubuntu を起動します。
PowerShell の起動 の中の Ubuntu の高速起動の所を読んでください。
Windows 画面下のタスクバーに Ubuntu 22.04.2 LTS アイコン が表示されていますので これをクリックすると一気に Ubuntu のターミナルが立ち上がります。
まずは、個別パッケ-ジのインスト-ルをする準備をします。
Ubuntu を最新の状態にします。
yamada@yama:~$ sudo apt update
yamada@yama:~$ sudo apt upgrade
を順に実行し、インストール済みのパッケージ更新をおこない、 Ubuntu を新しいバージョンにアップグレードします。
apt upgrade は「有効なパッケージ一覧」を元に実行されるので、
apt update と組み合わせて使う必要があります。
沢山インストール経過が表示されて完了します。

PHP インスト-ル

PHP をインストールしていきます。
WSL2(Ubuntu)でPHP + Apache環境を構築する② が参考になります。
端末画面から次のコマンドを入力し PHP パッケージをインストールします。
下記コマンドを実行します。
$ sudo apt install php
沢山インストール経過が表示されて完了します。

PHP インストール確認

$ php -v
としてインストールできたか確認しておきましょう。

yasuhiro@ysenba:~$ php -v
PHP 8.1.2-1ubuntu2.13 (cli) (built: Jun 28 2023 14:01:49) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.13, Copyright (c), by Zend Technologies

のように表示され、PHP 8.1.2 がインストールされました。

タイムゾーン設定

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

Apache2 再起動

インストールと設定が完了したら Apache2 を再起動します。
$ sudo service apache2 restart
systemctl、apachectl、apache2ctl、service の各コマンドは同じように見えて、 よく分かりませんね。
どれも使えてしまうような気もします。
Ubuntu の場合は
起動確認 service apache2 status
再起動  service apache2 restart
起動   service apache2 start
停止   service apache2 stop
を使用するようです。
でも、再起動を促すコメントで systemctl restart apache2 と言われることは多々あります。

PHP 動作確認用ファイル作成

PHP 動作がするか確認するためのファイルを作成します。
もともと Apache2 のデフォルトでは Apache の Web ディレクトリ
/var/www/html/
に存在するファイルがブラウザに表示されるのでした。
でも WSL2 Ubuntu では、index.html ですら表示されず ユ-ザ-ごとの公開ディレクトリを用意して、ここに test.html を入れて、ブラウザからこのディレクトリを見るようにしました。
すなわちここに PHP ファイルを設置すればこれをプラウザで確認することができるはずです。
下記内容の「/home/yamada/public_html/info.php」ファイルを作成します。
端末画面から
yamada@yama:~$ nano public_html/info.php
<?php
    phpinfo();
?>
作成が終わったら
^o
Enter
^x
として保存、nano エディタを終了します。

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

次に PHPで Apache2 のユーザーのホームディレクトリ領域を利用できるようにします。
最初に userdir モジュールを有効にします。
yamada@yama:~$ sudo a2enmod userdir
yasuhiro@ysenba:~$ sudo systemctl restart apache2
実はこれは Apache2 にユ-ザ-ごとの公開ディレクトリを用意 のところで実施済みです。
続いて PHP を有効化するため、php8.1.conf を書き換えます。
ec2 Ubuntu 18.04.1 LTS apache2 ユーザー/public_htmlのphp7.2設定
に行くとその方法が書かかれています。
php8.1.conf の設定を変更します。
yamada@yama:~$ sudo nano /etc/apache2/mods-available/php8.1.conf
として PHP の構成ファイルの編集をします。
最後の方で php_admin_flag engine が Offになっているので、これを on にします。

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

修正が終わったら
^o
Enter
^x
として保存、nano エディタを終了します。
保存したらモジュ-ルを有効にします。
$ sudo a2enmod php8.1

      
yamada@yama:~$ sudo a2enmod php8.1
Considering dependency mpm_prefork for php8.1:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php8.1:
Module php8.1 already enabled

次に apache2 サービスを再起動をします。
yamada@yama:~$ sudo service apache2 restart

PHP 動作確認

ユーザーホームディレクトリ領域に置いた PHP ファイルが動作するか確認します。
ブラウザのアドレスバーに
http://172.25.186.150/info.php
または
http://172.25.186.150/~yamada/info.php
と記入し、PHP Version 及び一覧表が表示されれば OK です。
さらにはすでに仮想ホストの設定も完了していますので、 ブラウザのアドレスバーに
http://v-host3.jp/info.php
と記入しても、PHP Version 及び一覧表が表示されるはずです。

これで、PHP インスト-ル の説明は終わりです。
引き続き、WSL2 Ubuntu Apache2 で CGI モジュールが使えるようにしていきます。


  • WSL2 Ubuntu Apache2 CGI に進む
  • 仮想ホスト設定 に戻る
  • Apache2 ユ-ザ公開ディレクトリ に戻る
  • Apache2 環境構築 に戻る
  • 70VPS に戻る