今回の構築で、以下のような環境を構築します。
- OS: Windows上でLinux(Ubuntu)が動く。
- ファイル共有: WindowsのエクスプローラーからUbuntuのファイルに直接アクセス可能。
- エディタ: Windows側のVS Codeを使って、Ubuntu内部のファイルを直接編集(WSL拡張機能を使用)。
WSL2とUbuntuのインストール
Windows上にLinux環境を作ります。
- PowerShellを管理者権限で開きます。
- 以下のコマンドを入力してEnterキーを押します。
wsl --install- ※すでにインストール済みの場合は
wsl --install -d Ubuntu
- ※すでにインストール済みの場合は
- インストール完了後、Windowsを再起動します。
- 再起動後、自動的にUbuntuのターミナルが立ち上がります(立ち上がらない場合はスタートメニューから「Ubuntu」を検索して起動)。
- UNIX username(ユーザー名)と password(パスワード)の設定を求められるので入力します。
2:LAMP環境(Apache, MySQL, PHP8)の構築
Ubuntuのターミナルで以下のコマンドを順に実行します。
1. パッケージの更新
sudo apt update && sudo apt upgrade -y
2. Apache2のインストール
sudo apt install apache2 -y
- 確認:ブラウザで
http://localhostにアクセスし、Apacheのデフォルトページが表示されればOKです。
3. PHP 8 と必要モジュールのインストール
tcpdf や PhpSpreadsheet、PDOを使用するために必要な拡張機能もまとめて入れます。
sudo apt install php libapache2-mod-php php-mysql php-mbstring php-xml php-gd php-zip php-curl -y
- Ubuntu 22.04以降なら標準でPHP 8.1または8.3が入ります。
php -vでバージョンを確認できます。
4. MySQL(またはMariaDB)のインストール
sudo apt install mysql-server -y
- XAMPPのデータ移行先として使用します。
手順2:LAMP環境(Apache, MySQL, PHP8)の構築
Ubuntuのターミナルで以下のコマンドを順に実行します。
1. パッケージの更新
Bash
sudo apt update && sudo apt upgrade -y
2. Apache2のインストール
Bash
sudo apt install apache2 -y
- 確認:ブラウザで
http://localhostにアクセスし、Apacheのデフォルトページが表示されればOKです。
3. PHP 8 と必要モジュールのインストール
tcpdf や PhpSpreadsheet、PDOを使用するために必要な拡張機能もまとめて入れます。
Bash
sudo apt install php libapache2-mod-php php-mysql php-mbstring php-xml php-gd php-zip php-curl -y
- Ubuntu 22.04以降なら標準でPHP 8.1または8.3が入ります。
php -vでバージョンを確認できます。
4. MySQL(またはMariaDB)のインストール
Bash
sudo apt install mysql-server -y
- XAMPPのデータ移行先として使用します。
3:VS CodeとUbuntuの連携
「WindowsからUbuntuへファイルをコピーして修正」という手間をなくし、Ubuntu上のファイルを直接VS Codeで編集できるようにします。
- Windows側のVS Codeを開きます。
- 拡張機能アイコン(四角いブロック)をクリックし、「WSL」(Microsoft製)を検索してインストールします。
- Ubuntuのターミナルに戻り、開発したいディレクトリへ移動してVS Codeを起動します。
cd /var/www/html code . - VS Codeが立ち上がり、左下に「WSL: Ubuntu」と表示されれば成功です。これでUbuntu内のファイルを直接編集できます。
4:XAMPPからUbuntuへのソースコピー方法
XAMPPにあるPHPソースをUbuntuの公開ディレクトリ(/var/www/html)へコピーします。
方法:Windowsのエクスプローラーを使う(一番簡単)
WSL2起動中は、WindowsのエクスプローラーからLinuxのファイルシステムにアクセスできます。
- Windowsのエクスプローラーのアドレスバーに
\\wsl$と入力してEnter。 Ubuntu->var->www->htmlと進みます。- ここへ、XAMPPの
htdocs内にあるプロジェクトフォルダをドラッグ&ドロップでコピーします。
5:ライブラリと権限の調整(重要)
コピーしただけでは、ライブラリのエラーや書き込みエラーが出ることがあります。
1. Composerのインストールとライブラリ更新
tcpdf や PhpSpreadsheet はPHPのバージョンに依存するため、Ubuntu上で再構成するのが安全です。
Composerのインストール:
sudo apt install composer -y
ライブラリの更新: プロジェクトフォルダ(例: /var/www/html/myproject)に移動し、アップデートします。
cd /var/www/html/myproject
composer update
※ composer.lock ファイルがある場合、PHP7と8の不整合が出る可能性があるため、エラーが出たら composer install ではなく update を試すか、lockファイルを削除してから実行してください。
2. データフォルダの書き込み権限
「ファイルのデータをアップロード・ダウンロード」するために、データ用フォルダ(例: data)には書き込み権限が必要です。
# 所有者をwww-data(Apacheのユーザー)に変更
sudo chown -R www-data:www-data /var/www/html/myproject/data
# 権限を付与(読み書き実行)
sudo chmod -R 775 /var/www/html/myproject/data
※ 開発環境であれば 777(全許可)でも動きますが、セキュリティ上 775 または所有者の変更を推奨します。
まとめ:開発フロー
- WindowsでVS Codeを開く(WSL接続モード)。
- Ubuntu上の
/var/www/html/プロジェクト内のPHPファイルを直接編集。 - 保存すると即座に反映される。
- ブラウザで
http://localhost/プロジェクトにアクセスして確認。
6:phpMyAdmin(MySQL管理ツール)のインストール手順
手順1:phpMyAdminのインストール
sudo apt update
sudo apt install phpmyadmin
手順2:インストール中の画面操作(重要)
インストール中に青い画面(テキストベースの対話画面)が表示されます。ここでの操作が少し特殊なので注意してください。
phpMyAdmin自体が内部で使用するパスワードを設定します。任意のパスワードを入力してEnter、確認のためもう一度入力してEnterを押します(MySQLのrootパスワードとは別でも構いません)。
Web server to reconfigure automatically:
[ ] apache2 と [ ] lighttpd という選択肢が出ます。
**「Spaceキー」**を押して [*] apache2 にチェックを入れます(アスタリスクがつきます)。
**「Tabキー」を押して <Ok> にカーソルを合わせ、「Enterキー」**を押します。
※ここでSpaceキーを押さずにEnterだけ押してしまうと、Apacheと連携されず起動しません。
Configure database for phpmyadmin with dbconfig-common?
<Yes> を選択してEnterを押します。
MySQL application password for phpmyadmin:
phpMyAdmin自体が内部で使用するパスワードを設定します。任意のパスワードを入力してEnter、確認のためもう一度入力してEnterを押します(MySQLのrootパスワードとは別でも構いません)。
手順3:動作確認
ブラウザで以下のURLにアクセスします。
- URL:
http://localhost/phpmyadmin
ログイン画面が表示されればインストール成功です。
手順4:ログイン用ユーザーの作成
UbuntuのMySQLは、デフォルトでセキュリティのため root ユーザーでのパスワードログインが無効化されていることが多いです(phpMyAdminから root でログインしようとするとエラーになる場合があります)。
そのため、phpMyAdmin用の全権限を持つ新しいユーザーを作成することをお勧めします。
ターミナルで以下を順に入力します。
- MySQLにコマンドラインでログインBash
sudo mysql - ユーザー作成用SQLを実行
(ユーザー名admin、パスワードpasswordの例です。お好きなものに変更してください)SQL-- ユーザー作成CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';-- 全権限を付与 GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;-- 設定反映FLUSH PRIVILEGES; -- 終了 EXIT; - phpMyAdminでログイン
- 作成したユーザー名(
admin)とパスワード(password)でログインしてください。
- 作成したユーザー名(
これでブラウザからMySQLのデータを管理できるようになります