概要
UbuntuでLaravelの開発環境を構築します。
ここではブラウザでhttp://127.0.0.1:8000 へアクセスし、Laravelのwelcomeページが表示されればゴールとします。
Ubuntuのインストール
LTSはサポートが長いためここでは
「Ubuntu 24.04.1 LTS」をインストールします。
Ubuntuの起動
起動後、Ubuntu上で使うログイン名ユーザーネームとパスワードの設定があります。
それぞれ任意のものを入力。
完了後、ディストリビューションの情報を確認。
lsb_release -a
(お好みで)日本語化
sudo apt install language-pack-ja
sudo update-locale LANG=ja_JP.UTF-8
dateコマンドで日本語化されていればOKです。
date
PHPインストール
sudo apt-get update
sudo apt install -y php
バージョンが確認できればインストールOKです。
php -v
PHP拡張機能のインストール
Laravelインストールに必要なPHP拡張機能のインストールをします。
sudo apt install php8.3-bcmath php8.3-mbstring php8.3-xml zip
インストール後はこちらで確認できます。
php -m
(長いので画像略)
MySQLインストール
sudo apt install -y mysql-server
バージョンが確認できればインストールOKです。
mysql --version
ステータスを確認します。
sudo service mysql status
止まってましたら、起動させます。再度ステータスを確認して起動していることを確認。
sudo service mysql start
sudo service mysql status
Composerのインストール
Composerのダウンロードページ からコマンドをコピーして実行。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
ダウンロードしたphpアーカイブファイルを移動させ、コマンド実行できるようにします。
sudo mv composer.phar /usr/local/bin/composer
以下のコマンドでバージョンが表示されればOK。
composer -V
Laravelのインストール
composerコマンドでインストール。
composer create-project --prefer-dist laravel/laravel
laravelディレクトリが作成される。
ディレクトリを移動してartisanコマンドでバージョン確認できればOK。
cd laravel
php artisan -V
ブラウザで確認
Laravel上の開発サーバを起動。
php artisan serve
http://127.0.0.1:8000
へアクセスしてみます。
エラー出てますがブラウザからLaravelへはアクセスできてそう。
could not find driverの解消
エクスプローラーで以下にアクセスします。
\\wsl.localhost\[Ubuntuディストリビューション名]\home\[ユーザー名]\laravel
(例)
\\wsl.localhost\Ubuntu-24.04\home\shioharu\laravel
.envファイルのDB_CONNECTION=sqliteをmysqlへ修正します。
DB_CONNECTION=mysql
再度開発サーバ起動
php artisan serve
http://127.0.0.1:8000
へアクセスしてみます。
エラーが変わりました。
Access denied for userの解消
mysqlにログインします。
sudo mysql -u root
認証を確認します。
SELECT user, host, plugin FROM mysql.user;
mysql> SELECT user, host, plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| user | host | plugin |
+------------------+-----------+-----------------------+
| debian-sys-maint | localhost | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | auth_socket |
+------------------+-----------+-----------------------+
rootがauth_socket なので、そこを変更します。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '任意のパスワード';
FLUSH PRIVILEGES;
変更後、再度認証を確認
SELECT user, host, plugin FROM mysql.user;
mysql> SELECT user, host, plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| user | host | plugin |
+------------------+-----------+-----------------------+
| debian-sys-maint | localhost | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
確認後、mysqlを離脱
exit
念のためMySQL再起動
sudo service mysql restart
再度開発サーバ起動
php artisan serve
http://127.0.0.1:8000
へアクセスしてみます。
またエラーが変わりました。
Unknown databaseの解消
mysqlにログインします。
mysql -u root -p
laravelのdatabaseを作成します。
(.envのDB_DATABASE=に記載されるdatabese名なので任意の名前でもOKです)
create database laravel;
エクスプローラーで以下にアクセスします。
\\wsl.localhost\[Ubuntuディストリビューション名]\home\[ユーザー名]\laravel
(例)
\\wsl.localhost\Ubuntu-24.04\home\shioharu\laravel
.envファイルの以下の部分を修正します。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=[rootユーザーに設定したパスワード]
migrationを実行します。
php artisan migrate
再度開発サーバ起動
php artisan serve
http://127.0.0.1:8000
へアクセスしてみます。
無事表示できました!
所感
慣れの問題な気もしますが、dockerのほうがインストール回り楽かも…