この記事は
WSL2のubuntuにapacheとphpをインストールしてバージョン管理
【2025年度版】WSL2のubuntuにapacheとphpをインストールしてバージョン管理
の2026年度版となります。
更新履歴
2026/06/01
- 書いた
はじめに
windowsならLaragon使え…でもない
ライセンス周りがめんどくさくなってきた。
phpをインストール
ppa:ondrej/phpがまだubuntu26.04に対応していないので、24.04、22.04でのみ使える。
また、LTS以外は未対応の模様。
phpは現状8.2~8.5くらいを入れよう。お好みで7.4も。
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update
sudo apt install -y php8.2 php8.2-fpm php8.2-mbstring php8.2-zip php8.2-mysql php8.2-xml php8.2-sqlite3
sudo apt install -y php8.3 php8.3-fpm php8.3-mbstring php8.3-zip php8.3-mysql php8.3-xml php8.3-sqlite3
sudo apt install -y php8.4 php8.4-fpm php8.4-mbstring php8.4-zip php8.4-mysql php8.4-xml php8.4-sqlite3
sudo apt install -y php8.5 php8.5-fpm php8.5-mbstring php8.5-zip php8.5-mysql php8.5-xml php8.5-sqlite3
apacheインストール
sudo apt install -y apache2
sudo apt install -y libapache2-mod-php libapache2-mod-php8.2 libapache2-mod-php8.3 libapache2-mod-php8.4 libapache2-mod-php8.5
apacheのphpのバージョンを入れ替える場合
モジュールを無効化/有効化し、apacheを再起動。
例(php8.4から8.2にしている)
sudo a2dismod php8.4
sudo a2enmod php8.2
sudo systemctl restart apache2
ドキュメントルート変更はしない2026
どうもうまく動かなくなることが多い。ので、処理ディレクトリのパーミッション変更のみ行う。
apacheがphpを動かすユーザーアカウントは標準でwww-dataとなっている。
cd /var/www/html
sudo chown -R www-data:www-data /var/www/html
これで、phpがファイルやディレクトリを操作できる。
また、ディレクトリの書き込み権限も必要かもしれない。
sudo chmod -R 775 /var/www/html
ssl設定
sslモジュールのインストールと有効化
sudo apt-get install -y mod_ssl #インストール
sudo a2enmod ssl #有効化
mkcertを使う
mkcertをインストールし、ルート証明書を発行。
sudo apt install mkcert
mkcert -install
サーバー証明書をホームディレクトリに生成。
mkcert localhost
localhost.pem ・・・SSLサーバー証明書
localhost-key.pem ・・・秘密鍵
default-ssl.conf 編集
/etc/apache2/sites-available/default-ssl.conf をviなりnanoなりで編集。
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
を
SSLCertificateFile /home/(ユーザー名)/localhost.pem
SSLCertificateKeyFile /home/(ユーザー名)/localhost-key.pem
に変更。
設定の反映とapache再起動
sudo a2dissite default-ssl.conf
sudo a2ensite default-ssl.conf
のあと
sudo service apache2 restart
OKだ。
