WSLはWindows10のOS上でLinuxの実行環境を実現するサブシステムです。Windowsはシステム文字コードの問題で開発に支障をきたす事が頻繁にあります。この記事ではWSLの導入導入方法を紹介し、効率的な開発を可能にします。

公開日時:2021/05/23 14:22 最終更新:2021/06/09 22:32   WSL
Linux Ubuntu Windows WSL サブシステム

WSLの有効化とUbuntuのインストール

はじめに

Windowsでは歴史的な理由により、システム表層の文字コードはSJISの独自拡張であるWindows-31J(cp932)、内部的にはUTF-16LEとなっています。

これは、現在広く利用されているUTF-8とは異なっており、この文字コードの違いが原因で少なくないトラブルが発生します。

現在のWindows 10では、Windows OS上の仮想環境でLinux OSを稼働させる仕組みである『WSL(Windows Subsystem for Linux)』が標準で利用できるため、文字コードの問題を簡単に回避出来るようになりました。

この記事ではWSLを有効化し、Ubuntuという人気の高いLinuxのディストリビューションをインストールしてそこでPHPの実行環境を作成します。

WSLの有効化

WSLの有効化には最後にWindowsの再起動が必要になります。作業中のファイル等がある場合は保存して閉じておいてください。

準備が整ったら、Windowsタスクバーの検索ウィンドウに『Windowsの機能』と入力してください。『Windows の機能の有効化または無効化』というメニューが表示されます。

Windowsの機能の有効化または無効化

これを選択すると、Windowsの機能ダイアログが表示されます。このメニューの中にある『Linux用Windowsサブシステム』にチェックを入れてWSLを有効化してください。

WSLの有効化

OKボタンをクリクすると有効化処理が始まり、処理が完了すると再起動を求められます。

作業中のファイル等がない場合はWindowsを再起動してください。

WSLの有効化処理中

WSLの有効化完了

Ubuntuのインストール

Linuxの人気ディストリビューションであるUbuntuのインストールは、Microsoft Storeを利用するのが簡単です。勿論、無料でインストール出来ます。

スタートメニューから、Microsoft Storeをクリックして開きます。

Microsoft Storeを開く

ウィンドウ右上の検索から『Ubuntu』を検索してください。

Microsoft Store

検索結果

現在、Ubuntu 20.04 LTSがリリースされているので、これをインストールします。LTSとはLong Time Supportの略で、コンピュータソフトウェアの安定リリースが標準版よりも長期間保守される製品ライフサイクルポリシーの事です。

ウィンドウ右上の『インストール』ボタンをクリックしてください。

Ubuntu 20.04 LTS

Microsoftアカウントへのサインインが求められます。アカウントを所持していない場合はアカウントを作成してください。

Microsoft アカウントへのサインイン

サインインすると、ダウンロードが始まります。

ダウンロード処理

ダウンロードが終わったら起動してください。シェルでUbuntuの初期設定が始まります。しばらくお待ちください…。

ダウンロード完了

Ubuntuの起動

Ubuntuが立ち上がったら、デフォルトユーザーの登録を行います。ユーザー名とパスワードを入力してください。

ユーザー登録

ユーザー登録完了

推奨されている通り、以下のコマンドでUbuntuを最新の状態にします。

sudo apt update

Ubuntuのアップデート中

アップデート完了

PHPのインストール

CentOSの標準パッケージマネージャはyumでしたが、Ubuntuでの標準パッケージマネージャはaptです。

このため、aptを使ってPHPの実行環境をインストールします。CentOSはRedHat Enterprise Linuxのクローンの為に安定版といえる古いPHPが標準となっており別途最新版をインストールする為のリポジトリを追加する必要がありましたが、Ubuntuでは標準で新し目のPHP(7.4)がインストールされます。

sudo apt install php php-cli php7.4-common php-mbstring php-gd php7.4-mysql php-pgsql php-zip php-curl php-json php-xml composer

aptを使ったPHPのインストール

PHPのインストール

インストールが終わったらPHPのバージョンを確認してみましょう。

インストールされたPHPのバージョン

とりあえず、これで良いでしょう。

VSCodeのデフォルト・ターミナルをWSLにする

WSLのインストールが終わったので、あとはVSCodeのデフォルト・ターミナルをWSLにする事で文字コードの問題を解消しようと思います。

VSCodeを開いて、Ctrl+Shift+Pを押して開いた検索ウィンドウで『terminal select』と入力し、候補の中から『Terminal: Select Default Profile』を選択してください。

選択候補の中から『**Ubuntu-20.04 (WSL)』を選びます。

デフォルト・ターミナルの選択

WSLの選択

これで、WSL上のUbuntu(のBash)がデフォルトターミナルになりました。

ターミナル > 新しいターミナルを開いてみましょう。ターミナルの種類が『wsl』になっている筈です。

新しいターミナル

インストールされたPHPのバージョンを確認します。

php -v

PHPのバージョン

php.iniの編集

PHPの設定ファイルであるphp.iniを編集します。

php.iniの場所は以下のコマンドで調べられます。

php -i | grep php.ini

php.iniの場所

php.iniの場所が分かったら、必要な設定を行います。以下は、最低限の設定です。

sudo vi /etc/php/7.4/cli/php.ini
date.timezone = Asia/Tokyo
mbstring.language = Japanese
mbstring.detect_order = UTF-8,SJIS-WIN,SJIS,EUC-JP,JIS,ASCII
mbstring.encoding_translation = 0
mbstring.substitute_character = none

ionCube Loaderのインストール

PHPの実行には必須ではありませんが、当サイトが管理している『Pine Framework』や、その他の暗号化されたPHPコードを実行するにはionCube社(英国)が提供するionCube Loaderが必要です。

上記ionCube Loaderページの『Linux (64 bits)』のtar.gzリンクを右クリックして『リンクアドレスをコピー』を選択します。

Linux 64bit版用のionCube Loader

以下のコマンドで、ionCube Loaderの圧縮ファイルioncube_loaders_lin_x86-64.tar.gzがダウンロードされます。

cd ~
sudo wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

ダウンロードされたtarボール

以下のコマンドで、ダウンロードされた圧縮ファイルioncube_loaders_lin_x86-64.tar.gzを、システム管理者がソフトウェアをローカルにインストールするディレクトリである/usr/localに解凍します。

sudo tar -zxvf ioncube_loaders_lin_x86-64.tar.gz -C /usr/local

解凍されたionCube Loader

先程php -vで確認したとおり、UbuntuにインストールされているPHPはNTS版の7.4.3だったので、ioncube_loader_lin_7.4.soをインストールします(※ggをタイプすると、ファイルの先頭行にカーソルをジャンプさせる事が出来ます)。

sudo vi /etc/php/7.4/cli/php.ini

ioncube_loader.soの登録

Shift+ZZで保存してファイルを閉じます。

ionCube Loaderのインストール状況確認

php -vを実行すると、ionCube Loaderのインストール状況も確認出来ます。

php -v

ionCube Loaderがインストールされた

以上で、WSL+Ubuntu+PHP+ionCube Loaderのインストールと設定は終わりです。

記事リンク