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>