WSL環境に PHP8.2 を導入する

この手順はApache2.4を導入してから改めて行った方が安全です。前後を逆に実行するといつの間にかphp_modのバージョンが先祖帰りしていたため。

インストール手順

  1. software-properties-commonをインストールする
    $ sudo apt install software-properties-common
    
  2. リポジトリの追加とモジュールの更新
    $ sudo apt-add-repository ppa:ondrej/php
    $ sudo apt update
    $ sudo apt upgrade
    
  3. 念のためPHP8.2があるか確認
    $ sudo apt show php8.2
    Package: php8.2
    Version: 8.2.8-1+ubuntu22.04.1+deb.sury.org+1
    Priority: optional
    Section: php
    Maintainer: Debian PHP Maintainers <team+pkg-php@tracker.debian.org>
    Installed-Size: 67.6 kB
    Provides: php
    Depends: libapache2-mod-php8.2 | php8.2-fpm | php8.2-cgi, php8.2-common
    Download-Size: 32.2 kB
    APT-Sources: https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy/main amd64 Packages
    Description: server-side, HTML-embedded scripting language (metapackage)
     This package is a metapackage that, when installed, guarantees that you
     have at least one of the four server-side versions of the PHP interpreter
     installed. Removing this package won't remove PHP from your system, however
     it may remove other packages that depend on this one.
     .
     PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
     open source general-purpose scripting language that is especially suited
     for web development and can be embedded into HTML.
    
  4. PHP8.2本体をインストールする
    $ sudo apt install php8.2
    
  5. 導入バージョンを確認する
    $ php -v
    PHP 8.2.8 (cli) (built: Jul  8 2023 07:10:21) (NTS)
    Copyright (c) The PHP Group
    Zend Engine v4.2.8, Copyright (c) Zend Technologies
        with Zend OPcache v8.2.8, Copyright (c), by Zend Technologies
    
  6. 追加モジュールをインストールする
    $ sudo apt install php8.2-bcmath
    $ sudo apt install php8.2-curl
    $ sudo apt install php8.2-gd
    $ sudo apt install php8.2-mcrypt
    $ sudo apt install php8.2-mysql
    $ sudo apt install php8.2-mbstring
    $ sudo apt install php8.2-xml
    $ sudo apt install php8.2-zip
    
    本番環境に導入されているモジュールはすべてインストールしておくべきである
  7. 追加されているモジュールの一覧を表示させる
    $ php -m
    

Composerをインストールする

  1. https://getcomposer.org/installerからインストーラーをダウンロードする。このサイトにアクセスするだけでダウンロードが開始される。
    ダウンロードされたファイルのパスはWSLから見ると /mnt/c/users/[Windowsアカウント名]/Downloads/installer となる
  2. ダウンロードしたファイルを作業環境へコピーする
    $ cp /mnt/c/users/takan/Downloads/installer ./composer-setup.php
    
  3. インストーラーを起動する
    $ php ./composer-setup.php
    All settings correct for using Composer
    Downloading...
    
    Composer (version 2.5.8) successfully installed to: /home/tts/composer.phar
    Use it: php composer.phar
    
  4. composer.pharが作成されたら、これをcomposerコマンドとしてシステムに登録する
    $ sudo mv composer.phar /usr/local/bin/composer
    
  5. composerを起動しバージョンを確認する
    $ composer -V
    
  6. composer自体を最新バージョンにする
    $ composer self-update
    You are already using the latest available Composer version 2.5.8 (stable channel).
    
    この時点では最新版がダウンロードされている
  7. インストーラーを削除する
    $ rm ./composer-setup.php
    

環境設定(apache向け)

  1. apache上でPHPモジュールを有効化する
    $ sudo a2enmod php8.2
    
  2. apache用PHPモジュールの環境設定を行う
    $ sudo vi /etc/php/8.2/apache2/php.ini
    

    以下のエントリを探して修正する

    max_input_var = 2000
    memory_limit = 2048M
    error_reporting = E_ALL
    display_errors = On
    display_startup_errors = On
    html_errors = On
    post_max_size = 1024M
    default_charset = "UTF-8"
    upload_max_filesize = 1024M
    
    [Date]
    date.timezone = Asia/Tokyo
    
    [mysqlnd]
    mysqlnd.collect_statistics = On
    mysqlnd.collect_memory_statistics = On
    
    [Session]
    session.gc_maxlifetime = 86400
    
    [mbstring]
    mbstring.language = Japanese
    mbstring.encoding_translation = Off
    mbstring.detect_order = UTF-8,EUC-JP,SJIS,JIS,ASCII
    mbstring.strict_detection = Off
    mbstring.regex_stack_limit = 100000
    mbstring.regex_retry_limit = 1000000
    
  3. apacheを再起動する
    $ sudo systemctl restart apache2
    
    設定ファイルを修正したら必ずapacheの再起動が必要である