へっぽこコーダーの備忘録

phpやらjavascriptやら、使った技術をすぐに忘れちゃうから、おぼえがき程度に書いていきまーす
2024.08.11

CentOS9streamにLaravel10をインストールしたときに、色々つまづいたので備忘録☆

ConoHaサーバのVPSにLaravel10をインストールする際に、色々と問題が発生したので、備忘録です。

■環境
・サーバ    ConoHaサーバのVPS
・OS     CentOS9stream
・WEBサーバ Apache
・DB     MySQL8

PHPのインストール

phpのインストールで、以下を忘れていると、Laravel表示時にエラーが出るので、気を付けましょう。
・pdoのインストール

yum install php-pdo

・MySQLドライバのインストール

sudo yum install php-mysqlnd

DB(MySQL)の設定

・ユーザにリモートホストからの接続権限を付与する。

GRANT ALL PRIVILEGES ON 【データベース】.* TO '【ユーザー】'@'【IP or %】'; ←%を指定すると接続元IP制限なしになる

FLUSH PRIVILEGES; ←設定を反映させます。

Laravelのインストール

・パーミッション、所有者
基本的には、以下の設定。
 ディレクトリ:755
 ファイル  :644

その他パーミッション・所有者変更
 storage以下ディレクトリ: 775 / グループapache
 bootstrap/cache以下ディレクトリ:775

・.env(プロジェクトディレクトリ直下)

#APP_URL=http://localhost ←コメントアウト

APP_URL=http://【今回Laravelを表示させるURL】

DB_HOST=【DBのホストURL】

DB_PORT=3306

DB_DATABASE=【DB名】

DB_USERNAME=【DBユーザー名】

DB_PASSWORD=【DBパスワード】

・マイグレーション

php artisan session:table

php artisan migrate

・Laravelのキャッシュ削除

php artisan config:cache

php artisan cache:clear

URLの設定

今回は、サーバ内のユーザディレクトリ配下にLaravelを設置するので、ユーザディレクトリ配下をWEBで使用できるように設定します。
Laravelを表示させたいURL: https://【ドメインorサーバIP】/~【ユーザ】

設定ファイル

/etc/httpd/conf.d/userdir.conf

設定内容

<IfModule mod_userdir.c>

#UserDir disabled ←ここをコメントアウトor削除

UserDir public_html ←これを追記

</IfModule>

これで、「/home/ユーザ/public_html」以下が、「https://ドメイン/~ユーザ/」で公開することが出来るようになります。

引き続き、同じファイルに以下の記載をすることで、目的のURLでLaravelを表示することが出来ます。

<Directory "/home/*/public_html">
    AllowOverride FileInfo AuthConfig Limit Indexes
    #Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Options MultiViews SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS
</Directory>
 
<VirtualHost *:80>
    ServerName 【ドメインorサーバIP】
 
    Alias /~【ユーザ】 /home/【ユーザ】/public_html/public ←「https://【ドメインorサーバIP】/~【ユーザ】」にアクセスすると「/home/【ユーザ】/public_html/public」が読み込まれる。
    <Directory "/home/【ユーザ】/public_html/public">
        AllowOverride All
        Options Indexes FollowSymLinks
        Require all granted
    </Directory>
</VirtualHost>