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でアクセス


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フォルダを誰でも操作可能にする

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

