前提
- Windows10 Pro(x64)
- WSL2インストール済み
- MicrosoftStoreからAlmaLinux8インストール済み
- WSLは初回起動してユーザー作成済み
Docker と Laravel Sail は使いません。また、この環境は SELinux が有効でなく、Firewall も動いていませんのでご留意ください。
AlmaLinuxの初期状態確認
パッケージは minimal となっているのか、hostname
,ip addr
といった基本的なコマンドが使えない。また、systemd が有効になっていない。
hostname -> NG
ip addr -> NG
whoami -> OK
ping www.google.com -> OK
sudo systemctl -> NG
dnf list --installed -> OK
systemd 有効化
Microsoftのサイトを参照して、設定ファイルを作成後に再起動して有効にする。サイトに記載のとおり、WSLのデフォルトのUbuntuではこの作業は不要のようだが、現時点でのAlmaLinux8では必要。
[boot]
systemd=true
PowerShellからシャットダウンする。ターミナル等からアクセスすれば自動的に起動する。
wsl --shutdown
参考
基本的なコマンドのインストール
locate
は好みで。
sudo dnf install hostname iproute
sudo dnf install zip unzip
sudo dnf install mlocate
sudo dnf update
hostname -> OK
ip addr -> OK
sudo systemctl -> OK
Apache2のインストール
インストールして、起動して、サービス登録する。
sudo dnf install httpd
sudo systemctl start httpd
sudo systemctl enable httpd
Windows側から「http://localhost 」にアクセスして、テストページが表示されることを確認する。
PHP8.2のインストール
dnf module list php
Last metadata expiration check: 0:16:35 ago on Sun Aug 27 10:08:06 2023.
AlmaLinux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
php 8.0 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Laravel10はPHP8.1以降が必要なので、Remiレポジトリを追加してインストールする。
sudo dnf install epel-release
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf module list php
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
php remi-8.2 common [d], devel, minimal PHP scripting language
sudo dnf module install php:remi-8.2
Laravel10に必要なモジュールをインストールする。公式サイトに記載のサーバ要件はこれで満たせるはず。
sudo dnf install php-pdo
Apacheと同様にFastCGIの起動とサービス登録をしておく。Apacheを再起動する。
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
sudo systemctl restart httpd
サービスが「running」となっていることを確認する。
systemctl list-units --type=service
参考
PHPが有効か確認
httpd.conf を探して、DocumentRootを確認する。
sudo updatedb
locate httpd.conf
sudo cat /etc/httpd/conf/httpd.conf |grep DocumentRoot
PHP情報確認用ページを作成する。
<?php
phpinfo();
Windows側から「http://localhost/info.php 」にアクセスして、PHPが有効なことを確認する。
参考
sqlite3のインストール
Sqliteを使いたいので、インストールしておく。
sudo dnf install sqlite
sqlite3 -version # 3.26.0 2018-12-01 12:34:55 ...
Composerのインストール
公式サイトの案内どおり。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
composer -v # Composer version 2.5.8 2023-06-09 17:13:21
参考
Laravelプロジェクト作成
composer で、Laravel プロジェクトを作成する。内部的には、git clone をしている模様。
composer create-project laravel/laravel sample-app
cd sample-app
php artisan -V # Laravel Framework 10.20.0
個別環境設定ファイルで、DBにsqliteを使うように変更。
+DB_CONNECTION=sqlite
-DB_CONNECTION=mysql
-DB_HOST=127.0.0.1
-DB_PORT=3306
-DB_DATABASE=laravel
-DB_USERNAME=root
-DB_PASSWORD=
migrateを実行すると、sqliteデータベースを作成するか聞かれるので、YESする。
php artisan migrate
php artisan serve
Windows側から「http://localhost:8000 」にアクセスして、サンプルプロジェクトが表示されることを確認する。
参考
node.js のインストール
アセットのコンパイルに必要なのでインストールしておく。npmもインストールされる。
dnf module list nodejs
Last metadata expiration check: 11:29:36 ago on Sun Aug 27 10:30:09 2023.
AlmaLinux 8 - AppStream
Name Stream Profiles Summary
nodejs 10 [d] common [d], development, minimal, s2i Javascript runtime
nodejs 12 common [d], development, minimal, s2i Javascript runtime
nodejs 14 common [d], development, minimal, s2i Javascript runtime
nodejs 16 common [d], development, minimal, s2i Javascript runtime
nodejs 18 common [d], development, minimal, s2i Javascript runtime
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
sudo dnf module install nodejs:18/common
node -v # v18.16.1
npm -v # 9.5.1
npm install -g npm
上記のあと、プロジェクトのルートフォルダ(package.jsonがある)でnpm install
することで、node.jsからのデバッグ実行npm run dev
(ただし、これはフロントエンドのデバッグ実行)とアセットのコンパイルnpm run build
が可能になっている。
参考