Laravelのプロジェクトを作成
composer create-project laravel/laravel プロジェクト名
作ったディレクトリに移って、Laravel Breezeのインストール。
composer require laravel/breeze --dev
php artisan breeze:install
以下を尋ねられるので、bladeを選ぶ(お好み)。
Which stack would you like to install?
blade .......................................................................................................................................... 0
react .......................................................................................................................................... 1
vue ............................................................................................................................................ 2
api ............................................................................................................................................ 3
ダークモードのサポートもお好みで。
Would you like to install dark mode support? (yes/no) [no]
テスト環境もお好みで。
Would you prefer Pest tests instead of PHPUnit? (yes/no) [no]
.envファイルを設定。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=データベース名
DB_USERNAME=root
DB_PASSWORD=パスワード
migrateする。
php artisan migrate
DaisyUIのインストール(お好みで)
npm i daisyui
tailwind.config.jsのpluginsの行を以下のように書き換える。
plugins: [require('@tailwindcss/forms'), require("daisyui")],
これでDaisyUIのインストールは完了。welcome.blade.phpでDaisyUIを使えるようにするには
<!-- Scripts -->
@vite(['resources/css/app.css', 'resources/js/app.js'])
をheadタグ内に追加。
ローカルで実行
ターミナルの一つで
php artisan serve
とする。また別のターミナルを開き、プロジェクトのディレクトリで
npm run dev
とする。http://127.0.0.1:8000/ にアクセスすると、以下のページが標示される。
右上にLoginとRegisterが出ていることを確認。RegisterしてLoginできるかも確認。
Githubで管理
Githubで新しいリポジトリを作成する。公開鍵・秘密鍵の設定は割愛。
git init
git add .
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:アカウント名/リポジトリ名.git
git push -u origin main
Githubにpushされていることを確認。
virtualhostの設定
さくらのVPSでCentOSを使う想定で、さくらのドメインコントロールパネルに行き、このLaravelが動くサブドメインを設定する。
2行目はメールサーバを立てるときに、Gmailに届かないことがあるので付けたレコード(Gmailへのメール送信がエラーになって返ってくる現象でお困りのお客様へ)。メールサーバを立てる予定がないのなら書かなくていい。
このドメインをvirtualhostに記載する。
cd /etc/httpd/conf.d/
このディレクトリの中の、virtualhost.confに
<VirtualHost *:80>
DocumentRoot /var/www/プロジェクト名/public
ServerName サブドメイン名.ドメイン名
<Directory "/var/www/プロジェクト名">
Options All
AllowOverride All
Require all granted
</Directory>
RewriteEngine on
RewriteCond %{SERVER_NAME} =サブドメイン名.ドメイン名
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
を追加。
SSL対応するため、Let's encryptを設定する。詳しい設定方法ははじめてのVPS 初期セットアップ⑥ ~SSLの設定~
などを参照のこと。
コマンドラインから
certbot --apache -d サブドメイン名.ドメイン名
とすると、/etc/httpd/conf.d/virtualhost-le-ssl.confが作成される。
Apacheの再起動。
systemctl restart httpd
証明書の期限が切れる場合ははじめてのVPS 追記 ~ SSL(Let's Encrypt)の更新エラー ~
を参照。
本番環境にデプロイ
本番サーバにログインして、/var/wwwなどに移動してからリポジトリをクローンする。
cd /var/www/html
git clone git@github.com:アカウント名/リポジトリ名.git
composerやNode.jsのパッケージをインストール。
composer install
npm install
.envファイルを作成。
cp .env.example .env
APP_KEYを更新。
php artisan key:generate
.envファイルを変更。
APP_NAME=APPの名前に変更
APP_ENV=production
APP_DEBUG=false
APP_URL=本番サーバのURL
DB_DATABASE=データベース名
DB_USERNAME=DBのユーザ名
DB_PASSWORD=パスワード
migrateする。
php artisan migrate
本番環境やけどええんか?と聞いてくるが、迷うことなくyesとする。
これで晴れてURLにアクセスすると
となる。なんでか調べるために、/var/log/httpd/error_logを見ると
PHP Fatal error: Uncaught ErrorException: file_put_contents(/var/www//storage/framework/views/6a3544652d045b8452130d69fdcbd731f05d6d37.php)
: Failed to open stream: Permission denied in /var/www/***/vendor/larav
el/framework/src/Illuminate/Filesystem/Filesystem.php:190
というエラーが出る。storageのパーミッションに問題があるようなので、
chmod -R 777 storage/
とした。しかし今度はServer Error。
storage/logs/laravel.logを見ると
Vite manifest not found at: /
var/www/radiology-db/public/build/manifest.json at /var/www//vendor/
laravel/framework/src/Illuminate/Foundation/Vite.php:684)
ぐぐったら、vite manifestがbuildされていないので、
npm run build
とすればよい。git pullしたときとかも、常にnpm run buildを1回走らせた方が良さそう。