技術メモ

【2022年版】Windows 11にWordPressの開発環境を構築する方法【WSL】

2022年8月24日

wordpress

 

どうも、白夜霧(@KiRi_Byakuya)です。

 

今回は、Windows上でLinuxを動かすための機能「WSL」を利用して、Windows上に「Ubuntu」をインストール。

 

そこに「WordPress」をインストールして、テーマやプラグインの開発環境を構築するための覚書です。

 

結構長いですが、誰かの参考になれば幸いですm(_ _)m

 

 

Windows11に「WSL」をインストール方法

草原,windows

 

WSLのインストール状態を確認

WSL(Windows Subsystem for Linux)は、デフォルトではインストールされていません。

 

確認方法としては「設定」→「アプリ」→「オプション機能」→「Windowsのその他機能」をクリック

Windows11に「WSL」をインストールする方法と手順

 

「Windowsの機能」の『Linux用Windowsサブシステム』にチェックが入っていなければ、WSLはインストールされていません。

Windows11に「WSL」をインストールする方法と手順

 

WSLをインストール

①「PowerShell」を管理者権限で起動して、下記を入力してEnter


wsl --install

 

Windows11に「WSL」をインストールする方法と手順

 

上記コマンドを入力しても、インストールが開始されない場合は、既にWSLがインストール済みです。

 

インストールには数分かかります。インストールが完了したらWindowsを再起動して下さい。

Windows11に「WSL」をインストールする方法と手順

 

再起動すると、デフォルトでインストールされる「ubuntu」が起動し、ユーザーネームとパスワードの設定が求められます。

Windows11に「WSL」をインストールする方法と手順

 

ユーザーネームとパスワードの設定が完了すると、コンソール画面に切り替わります。これでWSL(+ubuntu)のインストールは完了です。

Windows11に「WSL」をインストールする方法と手順

 

今現在(2022年8月)では、デフォルトでインストールされるのは「Ubuntu 20.04 LTS」。他にインストールできる有効なディストリビューションは下記コマンドで確認可能です。


wsl --list --online

 

Windows11に「WSL」をインストールする方法と手順

 

他の任意のディストリビューションを使用したい場合は「WSL を使用して Windows に Linux をインストールする」を参照して下さい。

 

KiRi

ubuntu上でもWordPressは問題なく動くので、私はこのまま進めます。

 

WSL上のubuntuのディレクトリにWindows上からアクセスする方法

WSL上のubuntuのディレクトリにWindows上からアクセスする方法

 

WSLとデフォルトのUbuntuがインストールされると、Windowsエクスプローラー上に「Linux」というディレクトリが追加されます。

 

ここからUbuntu内のディレクトリにアクセスすることができ、データの移動も可能です。

 

WSLのLinuxディストリビューション(Ubuntu)を起動する方法

スタートメニューから「wsl」で起動が可能です。

WSLのLinuxディストリビューション(Ubuntu)を起動する方法

 

もしくは「PowerShell」か「Windows Terminal」を起動させ、「ubuntu」と入力することでも起動は可能です。

WSLのLinuxディストリビューション(Ubuntu)を起動する方法

 

KiRi

個人的には「Windows Terminal」が一番使いやすいかも。

 

 

WSL上のUbuntuに「Apache」をインストール+設定方法

プログラミング,パソコン,仕事

 

一度、ubuntu上の各パッケージをすべて更新。


sudo apt update
sudo apt upgrade

 

Apacheをインストール


sudo apt install apache2

 

インストールが完了したら、一旦Apacheを起動。


sudo service apache2 start
* Starting Apache httpd web server apache2
*

 

Apacheの起動が成功したら、WEBブラウザから「localhost」にアクセスして『Apache2 Ubuntu Default Page』が表示されることを確認して下さい。

WSL上のUbuntuに「Apache」をインストールする方法と手順

 

デフォルトページが表示されれば、Apacheのインストールは完了です。

 

「Apache」ドキュメントルートを変更する

Apacheのデフォルトのドキュメントルートは「/var/www/html」。

 

今回は、ホームディレクトリ(/home/username)に「public_html」を作成して、こちらをドキュメントルートのフォルダに設定します。

 

この設定は必須ではありません。デフォルト(/var/www/html)でも問題ありません。ただし、本記事の場合は「public_html」を前提に記載します。注意して下さい。

 

「public_html」フォルダをホームディレクトリに作成。


mkdir public_html

 

wsl 「Apache」ドキュメントルートを変更する

 

Apache2 の UserDir モジュールを有効化。


sudo a2enmod userdir
Enabling module userdir.
To activate the new configuration, you need to run:
  service apache2 restart

 

Apacheの設定ファイルを開く。


sudo nano /etc/apache2/sites-available/000-default.conf

 

設定ファイル(000-default.conf)の「DocumentRoot」を新規で作成した「public_html」に変更。

wsl 「Apache」ドキュメントルートを変更する

 

設定を色々変更したので、Apacheを再起動。


sudo service apache2 restart
 * Restarting Apache httpd web server apache2                              [ OK ]

 

ターミナル、もしくはWindowsのLinuxフォルダから、先程作成した「public_html」に適当なhtmlファイルを追加。

wsl 「Apache」ドキュメントルートを変更する

 


<!DOCTYPE html>
<html lang ="ja">
	<head>
		<meta charset="UTF-8">
	</head>
	<body>
		<strong>hello world / public_html</strong>
	</body>
</html>

 

再度、Webブラウザ上から「localhost」にアクセスして、作成したindex.htmlが表示されれば、ドキュメントルートの変更が完了です。

wsl 「Apache」ドキュメントルートを変更する

 

 

WSL上のUbuntuに「PHP」をインストール+設定

php

 

PHPのインストール

下記コマンドを実行し、PHPの各パッケージをインストール


sudo apt install php7.4 php7.4-fpm php7.4-mysql php7.4-dev php7.4-curl php7.4-zip php7.4-mbstring php7.4-imagick php7.4-intl -y

 

さらに詳しく

  • 現在(2022年8月)の最新バージョン『WordPress 6.0.1』は、PHP バージョン 7.4 以上を推奨しているので、PHPのバージョンを7.4に統一しています。
  • WordPressに必要なPHPのモジュールは「チームのハンドブック」を参照して下さい。※上記のパッケージで、サイトヘルス上では「良好」は確認済みです。

 

PHPとApacheの設定

Apacheの「FastCGI Mod」を有効 + php7.4のmodを無効化


sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.4-fpm
sudo a2dismod php7.4

 

Apacheの「MPM」を変更(preforkからeventへ)


sudo a2dismod mpm_prefork
sudo a2enmod mpm_event

 

上記の設定は、下記記事を参考にさせて頂きましたm(_ _)m

 

「Apache」の再起動+「php-fpm」の起動


sudo service php7.4-fpm start
sudo service apache2 restart

 

PHPの動作確認

Apacheのドキュメントルート(public_html)に「phpinfo.php」を作成。


<?php
phpinfo();

 

WEBブラウザから『http://localhost/phpinfo.php』にアクセスして、phpinfoページが表示されれば、phpのインストールは完了です。

WSL上のUbuntuに「PHP」をインストールする方法と手順

 

 

WSL上のUbuntuに「MySQL」をインストール+設定方法

mysql

 

MySQLのインストール

下記をコマンドでインストールを実行。


sudo apt install mysql-server

 

バージョンの確認コマンドが実行できれば、インストールは成功。


mysql --version
mysql  Ver 8.0.30-0ubuntu0.20.04.2 for Linux on x86_64 ((Ubuntu))

 

MySQLの設定

MySQLを起動


sudo service mysql start

 

rootパスワードが設定できない?

普通?なら、MySQLのインストール完了後、初期設定コマンド(mysql_secure_installation)を実行して、rootパスワードを設定すればいいはずだが、私の場合はどうやってもエラーが表示されて、rootのパスワードが設定できない。

... Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.

直訳:... 失敗しました! Error: SET PASSWORD はユーザー 'root'@'localhost' に対して意味を持ちません、使用されている認証方法は MySQL サーバーに認証データを保存しないためです。認証パラメータを変更する場合は、代わりにALTER USERの使用を検討してください。

 

なので、下記記事を参考させて頂き、rootのパスワードを前もって設定しましたm(_ _)m

 

MySQLにrootで接続。※初期状態なのでパスなし。


sudo mysql -u root

 

ALTER USER」コマンドでパスワードを設定。※passwordは任意のパスを入力して下さい。


ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'password';

 

WSL上のUbuntuに「MySQL」をインストール+設定

 

MySQLをログアウトして、MySQLの初期設定(最低限のセキュリティ設定をしてくれる)コマンドを実行。入力は対話形式です。


sudo mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root:

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
Using existing password for root.

Estimated strength of the password: 50
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y

New password:

Re-enter new password:

Estimated strength of the password: 50
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

 

上記設定は、下記記事を参考にさせて頂きましたm(_ _)m

 

MySQLにWordPress用の「データベース」と「ユーザー」を作成

MySQLにrootでログイン


sudo mysql -u root -p

 

データベース「local_wp」を作成。※名前は任意。


CREATE DATABASE local_wp CHARACTER SET utf8mb4;

 

CREATE USER」コマンドで、データーベースに新しいユーザーを作成。(例:ユーザー名:kiri / パスワード:localwpmaster)


CREATE USER 'kiri'@'localhost' IDENTIFIED BY 'localwpmaster';

 

パスワードの設定で「ERROR 1819 (HY000): Your password does not satisfy the current policy requirements」と表示される人は、下記記事を確認して下さい。

MySQL(5.7以降)のパスワードポリシーが厳しいので変更する。Your password does not satisfy the current policy requirementsの対処法

 

作成した新しいユーザーに、指定のデーターベース(local_wp)にフルアクセス権限を付与して、権限を一旦リロードして終了。


GRANT ALL PRIVILEGES ON local_wp.* TO 'kiri'@'localhost';
FLUSH PRIVILEGES;
exit

 

 

WSL上のUbuntuに「PhpMyAdmin」をインストール+設定方法

コード,Programming,プログラミング

 

下記コマンドでPhpMyAdminをインストール


sudo apt install phpmyadmin

 

カーソルを「apache2」にしてスペースを押して選択→タブキーで「ok」に移動してEnter。

WSL上のUbuntuに「PhpMyAdmin」をインストール+設定

 

dbconfig-commonコマンドを実行して、データーベースのインストールと設定をしますか?』という確認。既にMySQLのインストールも設定も済みなので「No」でEnter。

WSL上のUbuntuに「PhpMyAdmin」をインストール+設定

 

元の端末画面に戻ったらインストール完了。念のためApache、PHP、MySQLを一旦再起動。


sudo service apache2 restart
sudo service php7.4-fpm restart
sudo service mysql restart

 

ブラウザから「http://localhost/phpmyadmin/」を開いて、MySQL上で作成したユーザー名とパスワードでログインできれば成功。

WSL上のUbuntuに「PhpMyAdmin」をインストール+設定

WSL上のUbuntuに「PhpMyAdmin」をインストール+設定

 

「phpMyAdmin環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。」というエラーが出る人は、下記記事を参考にして下さい。

php
『phpMyAdmin環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。』の対策方法

「phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。代わりにデーターベースの操作タブを使って設定することもできます。」のエラーメッセージの解消方法の覚書

続きを見る

 

 

WSL(Ubuntu)のApache / PHP-FPM / MySQLを自動で起動&終了する設定方法

プログラミング,パソコン,仕事

 

今までWSL上のUbuntuにインストールした「Apache」「php-fpm」「MySQL」は、Ubuntuを起動しても、自動的に起動はしてくれません。

 

毎回コマンドで実行させるのは面倒なので、Ubuntuが起動したら自動的に起動する(&ターミナルを閉じたら停止)するように設定します。

 

Windowsのエクスプローラーから「\\wsl$\Ubuntu\home\ユーザー名」を開く。

WSL(Ubuntu)のApache / PHP-FPM / MySQLを自動で起動&終了する設定方法

 

上記の「.bashrc」がTerminal(以下:端末)起動時に毎回実行されるファイル。「.bashrc_logout」は端末を閉じる(ログアウト)した時に毎回実行されるファイル。

 

サーバーとして考えれば、本来であれば「.profile」に各起動コマンドを書いた方がいいのかもしれない。※ログイン時に1回だけ実行される。

 

ただ、私は『WordPressのテーマの開発環境』として今回開発環境を構築しているので、現状ではサーバーみたいに常時ずーっと動いている必要はない。

 

端末でubuntuを起動した時に勝手に起動。端末を閉じたら停止していてくれれば問題ない。

 

なので、今回は「.bashrc」に起動コマンド。「.bashrc_logout」に終了コマンドを追加します。

 

「.bashrc」「.profile」に関しては、下記記事を参考にさせて頂きましたm(_ _)m

 

該当のファイルをテキストエディタで開き、下記コマンドを一番下(最後尾)に追記して保存。

 

.bashrc / Apache, php-fpm, MySQL 起動コマンド

/usr/bin/sudo /usr/sbin/service php7.4-fpm start
/usr/bin/sudo /usr/sbin/service apache2 start
/usr/bin/sudo /usr/sbin/service mysql start

 

.bash_logout / Apache, php-fpm, MySQL 終了コマンド

/usr/bin/sudo /usr/sbin/service php7.4-fpm stop
/usr/bin/sudo /usr/sbin/service apache2 stop
/usr/bin/sudo /usr/sbin/service mysql stop

 

上記ファイルの編集は、Windows上からでも可能。

 

一度端末を閉じて、再度ubuntuを起動→exitでログアウトすれば、挙動がわかると思います。

WSL(Ubuntu)のApache / PHP-FPM / MySQLを自動で起動&終了する設定方法

 

 

WSL上のUbuntuに「WordPress」をインストール+初期設定

 

WordPressのインストールデータを準備

作業ディレクトリをドキュメントルート(public_html)へ移動。


cd public_html

 

WSL上のUbuntuに「WordPress」をインストール+初期設定

 

WordPressをダウンロード。


wget --no-check-certificate https://wordpress.org/latest.tar.gz

 

WordPressの設定phpファイル(wp-config.php)の文字化けが嫌なので、わざと日本語版ではなく英語版をDLしています。※WordPress上の言語は日本語に変更可能。

 

ダウンロードしたWordPressの圧縮ファイルを解凍。解凍すると「wordpress」フォルダが生成されます。


tar xvf latest.tar.gz

 

WSL上のUbuntuに「WordPress」をインストール+初期設定

 

chownコマンド」で、Apacheにwordpressフォルダの所有権(ユーザーとグループ)を渡して、ApacheからWordPressのディレクトリに書き込みを可能にする。


sudo chown -R www-data:www-data wordpress

 

WSL上のUbuntuに「WordPress」をインストール+初期設定

 

WordPressのインストール+初期設定

ブラウザから「http://localhost/wordpress/」へアクセス→言語(日本語)を選択→「次へ」をクリック。

WSL上のUbuntuに「WordPress」をインストール+初期設定

 

さあ、始めましょう!」をクリック。

WSL上のUbuntuに「WordPress」をインストール+初期設定

 

MySQLで作成した「データーベース名」と「ユーザー名」「パスワード」を入力。※それ以外はデフォルトでOK

WSL上のUbuntuに「WordPress」をインストール+初期設定

 

インストール実行」をクリック。

WSL上のUbuntuに「WordPress」をインストール+初期設定

 

サイトのタイトル」「ユーザー名」「メールアドレス」を入力→「WordPressをインストール」をクリック。

WSL上のUbuntuに「WordPress」をインストール+初期設定

 

KiRi

パスワードのメモはお忘れなく。

 

あくまでWordPressのテーマを開発するための、ローカルな開発環境として構築しているので「検索エンジンでの表示」は一応チェックをいれています。

 

下記画面が表示されれば、インストールは完了です。「ログイン」をクリック。

WSL上のUbuntuに「WordPress」をインストール+初期設定

 

先程入力した「ユーザー名」と「パスワード」を入力して「ログイン

WSL上のUbuntuに「WordPress」をインストール+初期設定

 

管理画面が表示されれば、WordPressのインストールと初期設定は完了です。

WSL上のUbuntuに「WordPress」をインストール+初期設定

 

KiRi

最初は忘れずに、必ず最新バージョンへ更新して下さい。

 

以上、有難うございましたm(_ _)m

 

参考になったらポッチとお願いしますm(_ _)m


プログラムランキング

  • この記事を書いた人

白夜霧

現役のIT土方・社畜・カフェイン中毒者。趣味のために生きる。サラリーマンの雑記ブログ。さり気なくYouTuberデビューしました\(^o^)/

-技術メモ
-, , , , , , ,

© 2022 My,WebNote - 備忘録 -