Memo

メモ > 技術 > フレームワーク: Laravel6 > FTPアップロードで稼働させる

■FTPアップロードで稼働させる
■サーバ要件 以下が必要な要件で、この環境が整っている前提 ここにFTPアップロードでLaravel6を設置し、動作させる これなら「レンタルサーバのApacheで、ファイルはFTP経由でしか更新できない」という場合にも対応できるはず インストール 6.x Laravel https://readouble.com/laravel/6.x/ja/installation.html ■テスト環境の作成 今回は、EC2上にテスト環境を作成するものとする
$ sudo su - # amazon-linux-extras install ansible2 -y # amazon-linux-extras install nginx1.12 -y # amazon-linux-extras install php7.2 -y
以下のPlaybookを実行する。あらかじめ、公開ディレクトリは html から public に変更しておく nginx_php7_mariadb
# cd /var/www # mv main main_backup # mkdir main # chown ec2-user. main
SFTPの ec2-user ユーザで以下を作成し、ブラウザからアクセスして動作を確認する /var/www/main/public/index.php ■プロジェクトの作成 まずはローカルのVagrantなど、環境の整った場所でプロジェクトを作成する このファイルを後ほどテスト環境に設置する
$ sudo su -s /bin/bash - nginx $ /var/www $ composer create-project --prefer-dist "laravel/laravel=6.0.*" main
■プログラムの設置と動作確認 あらかじめ作成しておいたプロジェクトを、テスト環境にSFTPの ec2-user ユーザでアップロードする vendorフォルダのアップロードには、高速な回線でも10分程度かかった(アップロード先によっては30分程度かかった) それ以外はすぐにアップロードできた この状態でブラウザからアクセスすると、以下のエラーが表示された
UnexpectedValueException The stream or file "/var/www/laravel/storage/logs/laravel-2020-08-11.log" could not be opened: failed to open stream: Permission denied
/var/www/main/storage のディレクトリのパーミッションを777にする(下層含めて) また、ファイルパーミッションを666にする(下層含めて) これでLaravelが動作した ■artisanの実行 一例だが、以下のPHPプログラムを作成し、ブラウザからアクセスするとartisanを起動できる ただし重い処理を行うと、nginxやApacheでタイムアウトになる可能性があるので注意
<?php echo shell_exec('cd ..;php artisan --version;');
■プログラムの更新 ・ファイルはFTPで上書きアップロードすることになる ・追加で「compsoer install」が必要な場合、まずは vendor_20200811 などにアップロードし、 完了したら vendor と vendor_20200811 の名前を入れ替え、その状態で致命的なエラーにならないか確認するか ・マイグレーションやキャッシュの削除は、上記の方法でartisanを実行して対応するか ■メモ Laravelアプリケーションをレンタルサーバーで動作させる - Qiita https://qiita.com/hitotch/items/5c8c2858c883e69cd507 ロリポップでLaravelをSSHを使わずにFTPでアップロードする - forget for get http://lightwill.hatenablog.com/entry/2019/10/04/155314 Laravelをさくらインターネットのレンタルサーバにデプロイ・アップロードする方法をまとめてみた | Arrown https://arrown-blog.com/laravel-sakura-deploy/

Advertisement