AlmaLinux9でLaravelの認証を実装するのにはまったので備忘録

今までのログイン認証は自作だったので、PHP+Laravelでシンプルに実装出来たのですが、nodejsがからんでなぜかエラーになって・・・
分かったら簡単なことだったんですが・・・

VMWareにAlmaLinuxをインストール

AlmaLinuxを構築する時は、サーバー(GUI使用)を選択し、開発ツールのみ選択しました。
パスワードなどを設定してインストール!

Linuxのインストールが終わったら、最新に

su - ←rootになります
dnf -y update ←終わるまで待ちます

SeLinuxを無効にします(問題が発生したら何が問題なのか切り分けが出来なくなるので・・)

su - ←rootになります
vi /etc/selinux/config
SELINUX=disabled ←に変更して:wqで保存してrebootで再起動

Node.jsをインストール

su - ←rootになります
dnf module list nodejs ←バージョンを確認
dnf module -y enable nodejs:22 ←バージョンを指定
dnf -y install nodejs npm ←インストール
node -v ←nodejsのバージョンを確認
npm -v ←npmのバージョンを確認

phpのインストール

su - ←rootになります
dnf module list php ←PHPのバージョンを確認
dnf module -y enable php:8.3 ←インストールしたいバージョンを指定
dnf -y install php php-mysqlnd php-gd php-zip ←PHPをインストール
php -v ←PHPのバージョンを確認

mariadbのインストール

su - ←rootになります
yum list | grep maria
yum -y install mariadb-server
systemctl start mariadb
systemctl stop mariadb
cd /etc/my.cnf.d/
vi mariadb-server.cnf

修正後
[mariadb]
character-set-server = utf8mb4
[mariadb-10.3]
character-set-server = utf8mb4

vi client.cnf

修正後
[client-mariadb]
default-character-set = utf8mb4

systemctl enable mariadb
systemctl start mariadb
mysqladmin -u root password
mysql -u root -p
show variables like ‘%char%’; ←半角の「’」が全角になっているので修正して実行
create database npj;
create user ‘newpj’@’localhost’ IDENTIFIED BY ‘abcd1234’; ←半角の「’」が全角になっているので修正して実行
grant all privileges on npj . * to ‘newpj’@’localhost’; ←半角の「’」が全角になっているので修正して実行
flush privileges;
quit

Apacheのインストール確認

su - ←rootになります
systemctl status httpd ←apacheの状態を確認(エラーって出なければ入っている)

Composerのインストール

su - ←rootになります
cd ~
php -r “copy(‘https://getcomposer.org/installer’, ‘composer-setup.php’);” ←インストーラの取得
ハッシュ値のチェックをすると良いのですが・・・
php composer-setup.php –install-dir=/usr/local/bin –filename=composer ←インストール
php -r “unlink(‘composer-setup.php’);” ←インストーラの削除

LaravelProjectの作成

su - ←rootになります
cd /var/www/html ←Laravelのプロジェクトを作成する場所に移動
composer create-project laravel/laravel new_project ←プロジェクトを作成
cd /var/www/html/new_project ←プロジェクト内に移動
composer require laravel/breeze –dev ←認証機能を準備
php artisan breeze:install react ←認証機能をインストール
php artisan migrate:rollback ←sqliteのテーブルなどを一度削除する

vi /var/www/html/new_project/.env

修正前
DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=

修正後(DBを作成した内容で登録)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=npj
DB_USERNAME=newpj
DB_PASSWORD=abcd1234

修正前
SESSION_DRIVER=database

修正後
SESSION_DRIVER=file

php artisan migrate ←DBに認証用テーブルの作成

cd /var/www/html
chmod 777 -R new_project/storage ←storageフォルダを誰でも操作可能にする
chown yoshi:yoshi -R new_project ←プロジェクト以下をyoshiユーザの持ち物にする

Laravelをとりあえず実行

※ログインユーザで実施
cd /var/www/html/new_project
php artisan serve ←laravelを一時的に起動
http://localhost:8000/ ←ブラウザでこのURLでアクセス



ctrl+Cで停止

Apacheの設定を変更する

su - ←rootになります
cd /etc/httpd/conf
vi httpd.conf

修正前
DocumentRoot “/var/www/html”

修正後
DocumentRoot “/var/www/html/new_project/public”

修正前
<Directory “/var/www/html”>
AllowOverride None
</Directory>

修正後
<Directory “/var/www/html/new_project/public”>
AllowOverride All ←重要!これを忘れると、LoginやRegisterを押すと404:NotFoundになる!ここではまりました・・
</Directory>

Apacheを起動

su - ←rootになります
systemctl stop httpd ←apacheを停止
systemctl start httpd ←apacheを起動
http://localhost ←ポートを指定せず、ブラウザでアクセス
sessionのパーミッションが・・ってエラーが出たら
cd /var/www/html
chmod 777 -R new_project/storage ←storageフォルダを誰でも操作可能にする

無事、スタートラインに立てました

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です