XserverにLaravelプロジェクトのデプロイ用DBとテーブルの作成(2023/01/03)


大変でした。

Xserver上にDBを作成するは、いいですよね、特に問題なく。
次は、.envの作成。これは、.env.exampleをコピーして、リネームして使います。
まちがっても、ローカルの.envをアップロードとか、gitで持ってこないで下さい。
ローカルと、リモートではDB情報などが違いますので、それぞれに設定します。

余談)
ここで私は、sshでリモートのコンソール状態を開けたまま、家の用事を済ませに数時間開けてしまいました。戻ってからこの後のリモートのマイグレーションとかやっていたのですが、実はリモートから切り離されて、ローカルのコンソールに戻っていたのを気が付かず、結構な時間をロスしました。
コンソールからmysqlまで動かして確認したり、もちろんphpmyadminでリモートのDBを確認したりと。でも、コンソールの表示しか、それに気づかせてくれるものはなかったです。コンソールの入力前の表示って、たまにちゃんと見ないとなあ。

次はマイグレーション)
マイグレーションしようとすると、phpのバージョンが足りないと。
コンソールでphp -vで調べると、7.2となり、7.4が必要。
Xserverの管理画面では、7.4以上でしたが、cliではない。コンソールでは使えない。

で、phpのcliのバージョン変更がまず必要でした。
mkdir $HOME/bin で変更したソフト(php)を入れるフォルダを作ります。
(ソフトのシンボリックリンクですね)
ln -s /usr/bin/php7.4 $HOME/bin/php で、7.4のphpをそのフォルダにphpというリンク
vi ~/.bashrc で環境変数の読み込みファイルを編集
export PATH=$HOME/bin:$PATH を追加。
source ~/.bashrc で、それを反映

これで phpが7.4になりました。

それでも、php artisan migrate のマイグレーション実行がうまくいかない。
今度は、「laravel/ui」を入れろと。

composer require laravel/ui を実行したら、
composerを2にアップグレードしろと。後は、メモリ消費し過ぎでダウンのエラー。

composerをアップグレード)
composer self-updateが使えず。Xserverで禁止しているのかな?
いろいろ調べ
https://getcomposer.org/download/ の

この通りにやりました。
composer.phar という実行ファイル(最新のcomposerの本体かと)が出来ていました。

これをまたもや
mv composer.phar $HOME/bin/composer として、binの中にcomposerという名前で移動
(今回は、ダウンロードしたようなソフトなのでシンボリックする必要はなく、移動です)

.bashrcの編集は前回のままでいいので、一応
source ~/.bashrc として反映させるようにしておきました。

やっとこれで、composer 2.5くらいになりました。

余談)
この方法ではなく、最新のcomposerをダウンロードして、深く考えず、/usr/binに入れようとしました。
そうしたら以下の意味深なメッセージ

あなたはシステム管理者から通常の講習を受けたはずです。
これは通常、以下の3点に要約されます:

#1) 他人のプライバシーを尊重すること。
#2) タイプする前に考えること。
#3) 大いなる力には大いなる責任が伴うこと。

で、パスワードを入れろと。
パスワード入れたら、実行できるのかなと思いつつ、なんか嫌な気がして、止めました。
ググると、ここから先はしないほうが良いみたいですね。

で、上記の正規の方法にたどり着いたということです。
余談はここまで。


もとに戻り、「laravel/ui」のインストール。
なんのためにやっているのか、わからなくなりますね。
composer require laravel/ui をします。

余談)
ここでもミスしました。急ぎすぎて、ディレクトリの移動を忘れました。binの中でやってしまいました。インストールはうまく行ったので、マイグレーションを実行。そして、エラー。しかたなく、デリートしてみたり、やっとbinの中と気づく。余計なvendorディレクトリなんかも出来てしまっていて。
composer remove laravel/ui
rm -r vendor ( -r つけないと、空でないディレクトは削除できない)
rm composer.json
mm composer.lock
などで、フォルダを元に戻しました。

正しい、Laravelのプロジェクトがあるディレクトで
composer require laravel/ui を行い、無事完了。

「php artisan ui:auth」はせず。
たしか、これはファイルを作ることになるコマンドかと。ファイルなら、ローカルからgitで持ってくるので、不要だろうと。

やっと、マイグレーション。
エラーも何度か起こしているので、
php artisan migrate:refresh
で作成。

phpmyadminで確認してみる。
しっかりとローカルと同じテーブルが出来ていた。