47歳でやむなくセミリタイア

病気のためセミリタイアをすることに。現在は週20時間程度のバイトをしています。その他、雑多なことを記録として書いています。

技術メモ: WSL2+AMP(Apache+Mysql+PHP)の設定

会社のPCが更新されて、環境を再セットアップしました。 前に記載していた情報が古くなってしまったので、ついでに新しい情報で書き直しておきます。

WSL2のインストール

現在はWSL2をコマンド一発でインストール可能です。 何も指定しないとUbuntu 20.04 LTSがインストールされますが、Ubuntu 20.04 LTSではmysqlのバージョンが8だったりと、若干面倒なのでUbuntu 18.04 LTSを使います。

PS> wsl --install Ubuntu-18.04

apache2のインストール

以前は最初からインストールされていましたが、インストールが必要になったようです。rewirteモジュールを設定するだけでOKです。

$ sudo apt install apache2 
$ sudo a2enmod rewrite

(備考) 以前はWindowsフォルダをwebrootにしていたので、metadataオプション付きでマウントしていましたが、今はやめたので不要となりました。

/etc/apache2/sites-available/xxx.conf を作成して、sites-enabledにシンボリックリンクを作る

以下はconfファイルの例です。

<VirtualHost *:80>
    DocumentRoot "/mnt/C/Work/yii2/backend/web/"
    ServerName yii2.jp
    ErrorLog ${APACHE_LOG_DIR}/yii2-error_log
    CustomLog ${APACHE_LOG_DIR}/yii2-access_log common
    <Directory "/mnt/C/Work/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/mysqld.cnfに以下を追加します。 テーブル作るときにも設定するようにしているので不要ではありますが、念のためcollation(文字比較の設定)も追加しておきます。

ちなみにmysql 8.0のデフォルト設定(utf8mb4_0900_as_ci)だと、「びょういん」(病院)と「びよういん」(美容院)が同一と判定されてしまうので、collationを指定しておかないとひどい目にあいかねません。

[mysqld]
character-set-server=utf8mb4
collation-server=utf8_bin
[client]
default-character-set=utf8mb4

(備考) 以前は一般ユーザからmysql -u rootでパスワード無しでアクセスすることも可能でしたが、それはできなくなったようです。 私は、sudo mysql -u root としてrootからアクセスするようにしています。

phpのインストール

パッケージが微妙に変わりました。 pdoがなくなって、php-mysqlをインストールするだけで良くなったようです。

sudo apt install php7.4 php7.4-gd php7.4-mbstring php7.4-mysql php7.4-zip php7.4-curl php7.4-xml

apache2/mysql自動起動を設定

スタートアップに以下の内容でwsl.batを作成する。

@echo off
wsl -d Ubuntu-18.04 -u root -- service apache2 start
wsl -d Ubuntu-18.04 -u root -- service mysql start

オプションのパッケージをインストール

以下はサービスで使用しているパッケージになります。

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の画像データへの変換などに使用しています。

$ sudo apt install poppler-utils

以前はWSL2で必要だったネットワーク周りの設定が不要になったりと、若干楽になった感じはしますね。