WSLの設定に続いてWSL+AMPの設定方法についても更新します。 細かい変更については、この後ちょくちょくこの記事を更新していこうと思います。
新プロジェクトは PHP 8.4+MySQL 8.0 ですが、 旧プロジェクト(PHP 7.4+MySQL 5.7)のテスト環境も残したいので、以下の方針としました。
Apacheはメジャーバージョンは変わっていないので、WSLで最新の2.4.58を使用することにします。
WSLのインストール/設定
WSLについては前記事(WSL設定まとめ (2025年6月版) - 47歳でやむなくセミリタイア)の通りです。
apache2のインストール
本体をインストールしてrewirteモジュールを有効にします。
$ sudo apt install apache2 $ sudo a2enmod rewrite
AcceptFilter を無効化
WindowsではAcceptFilterが使用できませんので無効化しておきます。 /etc/apache2/apache2.confに以下を追加します。
AcceptFilter http none AcceptFilter https none
サイトの設定
/etc/apache2/sites-available/xxx.conf を作成して、sites-enabledにシンボリックリンクを作ります。 以下は一例です。
<VirtualHost *:80>
DocumentRoot "/var/www/yii2/backend/web/"
ServerName yii2.jp
ErrorLog ${APACHE_LOG_DIR}/yii2-error_log
CustomLog ${APACHE_LOG_DIR}/yii2-access_log common
<Directory "/var/www/yii2/backend/web/">
AllowOverride All
Options +ExecCGI +SymLinksIfOwnerMatch
Require all granted
DirectoryIndex index.php
</Directory>
</VirtualHost>
Windowsのhostsファイルにapaheのサーバ名を登録
hostsファイルにサーバ名を登録しておくと、http://yii.jp/などとしてapache2にアクセスできるので便利です。 C:\Windows\System32\drivers\etc\hosts に以下のように記載します。 ::1がIPv6用の記載で、今はこちらが使用されているみたいです。
127.0.0.1 yii.jp ::1 yii.jp
mysqlのインストール
mysqlのサーバとクライアントパッケージをインストールして、mysqlのホームディレクトリを設定します。
$ sudo apt install mysql-server mysql-client $ sudo usermod -d /var/lib/mysql mysql
データベースの文字コードにutf8mb4を使うので、/etc/mysql/mysql.conf.d/my.cnfを作成し、以下を記載します。 ちなみにmysql 8.0のデフォルトのcollation(utf8mb4_0900_as_ci)だと、「びょういん」(病院)と「びよういん」(美容院)が同一と判定されます。
また、認証をmysql_native_passwordにしておかないとphpからアクセスができなかったため、そちらも変更します。 デフォルトのcaching_sha2_passwordもPHP 7.4.4以降でサポートしているので、php側に何か設定すればいいかもですが、面倒なので放っています。
[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_bin default_authentication_plugin = mysql_native_password [mysql] default-character-set=utf8mb4
(備考) 以前は一般ユーザからmysql -u rootでパスワード無しでアクセスすることも可能でしたが、それはできなくなったようです。 私は、sudo mysql -u root としてrootからアクセスするようにしています。
PHPのインストール
PHP 7.4/8.4を両方インストールして切り替えて使います。
aptのレポジトリに公式PHP(ppa:ondrej/php)を追加
$ sudo add-apt-repository ppa:ondrej/php
PHP 7.4/8.0をインストール
$ sudo apt install php7.4 php7.4-gd php7.4-mbstring php7.4-mysql php7.4-zip php7.4-curl php7.4-xml $ sudo apt install php8.4 php8.4-gd php8.4-mbstring php8.4-mysql php8.4-zip php8.4-curl php8.4-xml
PHPの切り替え方法
CLIとapache2モジュールの両方を切り替える必要があります。
まず、現バージョンの確認方法は以下で、
CLI: $ php -v apache2: $ ls /etc/apache2/mods-enabled | grep php
例としてPHP 7.4から8.4への切り替え方法は以下になります。
CLI: $ sudo update-alternatives --set php /usr/bin/php8.4 apache2: $ sudo a2dismod php7.4 $ sudo a2enmod php8.4 $ sudo service apache2 restart
apache2/mysqlの自動起動を設定 (Windows側)
スタートアップに以下の内容でUbuntu.batを作成する。
@echo off wsl -d Ubuntu-18.04 -u root -- service apache2 start wsl -d Ubuntu-18.04 -u root -- service mysql start
追加設定
AMPとは直接関係ありませんが、使用しているパッケージなどの設定を記載しておきます。
git-delta
diffを見やすく表示するコマンドdeltaを使用するようにします。 こちらのほうが変更部分の検出がdiff-highlightよりも賢いです。
$ sudo apt install git-delta $ sudo ln -s /usr/share/doc/git/contrib/diff-highlight/diff-highlight /usr/local/bin/diff-highlight
~/.gitconfigにdeltaを指定します。
[core]
pager = delta --diff-highlight
editor = vim
[interactive]
diffFilter = delta --diff-highlight
[color]
ui = true
開発用パッケージ
バージョン管理やパッケージ管理用のツールです。
$ sudo apt install subversion $ curl -sS https://getcomposer.org/installer | php $ sudo mv composer.phar /usr/local/bin/composer $ sudo chown root:root /usr/local/bin/composer $ curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash - $ sudo apt install nodejs
libreoffice
Office互換ソフトです。エクセルファイルをPDFに変換するのに使用しています。
$ sudo apt install libreoffice libreoffice-l10n-ja
libreofficeで使用するM PLUS 1フォントをインストールします。 M PLUS 1フォントは、本家(M+ FONTS)から、「google fonts」「M PLUS 1」と選んで、「Download Family」でダウンロードできるttfファイルを使用します。
$ sudo cp -r ~/mplus /usr/local/share/fonts/ $ sudo sudo fc-cache /usr/local/share/fonts/mplus
propper-utils
PDFを変換するツールです。PDFから画像(PNG)への変換などに使用しています。
$ sudo apt install poppler-utils