質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

903閲覧

[Laravel] DeployerでEC2にデプロイを試みているのですが、ハマっております。どなたかお力をお貸しください。

takyas

総合スコア54

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2017/07/06 05:05

編集2017/07/06 06:56

ご覧いただきありがとうございます。

###前提・実現したいこと
ローカルのVagrantで開発をしているLaravel5のアプリをEC2にデプロイしたいです。

###開発環境
各ソフトウェアとバージョンは下記です。

【ローカル】

ソフトウェアバージョン
Vagrant1.9.1
nginx1.11.9
Ubuntu16.04.2
PHP7.1.3
Laravel5.4.24
Laravel Homestead2.1.0
Deployer5.1.3

【EC2】

ソフトウェアバージョン
Vagrant1.9.1
nginx1.10.3
Ubuntu16.04.2
PHP7.0.18

githubはこちらです。
hibriiiiidge/LaravelProject

###発生している問題・エラーメッセージ
現在、下記でデプロイを実行すると、

vagrant@homestead:~/Code/myProject$ dep deploy production -vvv

下記のエラーが生じております。

➤ Executing task artisan:migrate [13.114.X.X] > /usr/bin/php /var/www/html/releases/1/artisan migrate --force [13.114.X.X] < Could not open input file: /var/www/html/releases/1/artisan ➤ Executing task deploy:failed • done on [13.114.X.X] ✔ Ok [1ms] ➤ Executing task deploy:unlock [13.114.X.X] > rm -f /var/www/html/.dep/deploy.lock • done on [13.114.X.X] ✔ Ok [159ms] [Deployer\Exception\RuntimeException (1)] The command "/usr/bin/php /var/www/html/releases/1/artisan migrate --force" failed. Exit Code: 1 (General error) Host Name: 13.114.X.X

EC2の/var/www/html/は以下のようになっております。

drwxrwxrwx 5 ubuntu root 4096 Jul 6 03:59 . drw-r-xr-x 3 root root 4096 Jul 5 08:11 .. drwxrwxrwx 2 ubuntu ubuntu 4096 Jul 6 04:00 .dep -rw-r--r-- 1 ubuntu root 612 Jul 5 08:11 index.nginx-debian.html lrwxrwxrwx 1 ubuntu ubuntu 10 Jul 6 03:59 release -> releases/1 drwxrwxr-x 3 ubuntu ubuntu 4096 Jul 6 03:59 releases drwxrwxr-x 3 ubuntu ubuntu 4096 Jul 6 02:28 shared

/var/www/html/releases/1は以下のようになっております。

drwxrwxr-x 13 ubuntu ubuntu 4096 Jul 6 03:59 . drwxrwxr-x 3 ubuntu ubuntu 4096 Jul 6 03:59 .. drwxrwxr-x 2 ubuntu ubuntu 4096 Jul 6 03:59 bin drwxrwxr-x 3 ubuntu ubuntu 4096 Jul 6 03:59 bootstrap -rw-rw-r-- 1 ubuntu ubuntu 186 Jul 6 03:59 CHANGELOG.md -rw-rw-r-- 1 ubuntu ubuntu 809 Jul 6 03:59 composer.json -rw-rw-r-- 1 ubuntu ubuntu 55991 Jul 6 03:59 composer.lock lrwxrwxrwx 1 ubuntu ubuntu 17 Jul 6 03:59 .env -> ../../shared/.env drwxrwxr-x 8 ubuntu ubuntu 4096 Jul 6 03:59 .git -rw-rw-r-- 1 ubuntu ubuntu 14 Jul 6 03:59 .gitattributes drwxrwxr-x 2 ubuntu ubuntu 4096 Jul 6 03:59 .github -rw-rw-r-- 1 ubuntu ubuntu 81 Jul 6 03:59 .gitignore -rw-rw-r-- 1 ubuntu ubuntu 265 Jul 6 03:59 init.bat -rw-rw-r-- 1 ubuntu ubuntu 250 Jul 6 03:59 init.sh -rw-rw-r-- 1 ubuntu ubuntu 1077 Jul 6 03:59 LICENSE.txt drwxrwxr-x 11 ubuntu ubuntu 4096 Jul 6 03:59 myProject <-こちらがアプリケーションのディレクトリです drwxrwxr-x 11 ubuntu ubuntu 4096 Jul 6 03:59 _myProject2 -rw-rw-r-- 1 ubuntu ubuntu 383 Jul 6 03:59 phpunit.xml.dist -rw-rw-r-- 1 ubuntu ubuntu 1403 Jul 6 03:59 readme.md drwxrwxr-x 2 ubuntu ubuntu 4096 Jul 6 03:59 resources drwxrwxr-x 2 ubuntu ubuntu 4096 Jul 6 03:59 scripts drwxrwxr-x 4 ubuntu ubuntu 4096 Jul 6 03:59 src lrwxrwxrwx 1 ubuntu ubuntu 20 Jul 6 03:59 storage -> ../../shared/storage drwxrwxr-x 4 ubuntu ubuntu 4096 Jul 6 03:59 tests -rw-rw-r-- 1 ubuntu ubuntu 254 Jul 6 03:59 .travis.yml -rw-rw-r-- 1 ubuntu ubuntu 1407 Jul 6 03:59 Vagrantfile drwxrwxr-x 5 ubuntu ubuntu 4096 Jul 6 04:00 vendor

/var/www/html/releases/1/以下に、artisanファイルが存在しないことに起因するエラーだと予想できるのですが、
artisanファイルはmyProject以下に存在する形になっています。

/var/www/html/releases/1/myProject以下です。

drwxrwxr-x 11 ubuntu ubuntu 4096 Jul 6 03:59 ./ drwxrwxr-x 13 ubuntu ubuntu 4096 Jul 6 03:59 ../ drwxrwxr-x 6 ubuntu ubuntu 4096 Jul 6 03:59 app/ -rwxrwxr-x 1 ubuntu ubuntu 1646 Jul 6 03:59 artisan* <-こちらです。 drwxrwxr-x 3 ubuntu ubuntu 4096 Jul 6 03:59 bootstrap/ -rw-rw-r-- 1 ubuntu ubuntu 1374 Jul 6 03:59 composer.json -rw-rw-r-- 1 ubuntu ubuntu 135963 Jul 6 03:59 composer.lock drwxrwxr-x 2 ubuntu ubuntu 4096 Jul 6 03:59 config/ drwxrwxr-x 5 ubuntu ubuntu 4096 Jul 6 03:59 database/ -rw-rw-r-- 1 ubuntu ubuntu 3301 Jul 6 03:59 deploy.php -rw-rw-r-- 1 ubuntu ubuntu 521 Jul 6 03:59 .env.example -rw-rw-r-- 1 ubuntu ubuntu 111 Jul 6 03:59 .gitattributes -rw-rw-r-- 1 ubuntu ubuntu 131 Jul 6 03:59 .gitignore -rw-rw-r-- 1 ubuntu ubuntu 1062 Jul 6 03:59 package.json drwxrwxr-x 4 ubuntu ubuntu 4096 Jul 6 03:59 public/ -rw-rw-r-- 1 ubuntu ubuntu 3420 Jul 6 03:59 readme.md drwxrwxr-x 5 ubuntu ubuntu 4096 Jul 6 03:59 resources/ drwxrwxr-x 2 ubuntu ubuntu 4096 Jul 6 03:59 routes/ -rw-rw-r-- 1 ubuntu ubuntu 563 Jul 6 03:59 server.php drwxrwxr-x 5 ubuntu ubuntu 4096 Jul 6 03:59 storage/ drwxrwxr-x 4 ubuntu ubuntu 4096 Jul 6 03:59 tests/ -rw-rw-r-- 1 ubuntu ubuntu 555 Jul 6 03:59 webpack.mix.js

以上から、デプロイ時に
/usr/bin/php /var/www/html/releases/1/artisan migrate --force
ではなく、
/usr/bin/php /var/www/html/releases/1/myProject/artisan migrate --force
を実行するようにすれば解決するのではないかと考えているのですが、
その設定方法がわからず、こちらに掲載致しました。

デプロイに関して経験がなく、勉強中なので諸々設定がおかしい点もあるかと存じますが、
何卒ご協力いただけますと幸いです。

deploy.phpは下記のように設定しております。

<?php namespace Deployer; require 'recipe/laravel.php'; // Configuration set('repository', 'git@github.com:hibriiiiidge/LaravelProject.git'); set('git_tty', true); // [Optional] Allocate tty for git on first deployment add('shared_files', []); add('shared_dirs', []); add('writable_dirs', []); // Hosts host('13.114.X.X') ->user('ubuntu') ->port(22) ->identityFile('~/.ssh/XXXXX.pem') ->stage('production') ->set('deploy_path', '/var/www/html'); // Tasks desc('Restart PHP-FPM service'); task('php-fpm:restart', function () { run('sudo systemctl restart php-fpm.service'); }); after('deploy:symlink', 'php-fpm:restart'); // [Optional] if deploy fails automatically unlock. after('deploy:failed', 'deploy:unlock'); // Migrate database before symlink new release. before('deploy:symlink', 'artisan:migrate'); task('deploy', [ 'deploy:prepare', 'deploy:lock', 'deploy:release', 'deploy:update_code', 'deploy:shared', 'deploy:writable', 'deploy:vendors', 'deploy:clear_paths', 'deploy:symlink', 'deploy:unlock', 'cleanup', 'success' ]);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

デプロイに関して経験がなくとのことなので、まずはシンプルにサーバーにログインして、gitでプロジェクトのソースコードをダウンロードした後に

  1. プロダクション用の.envをLaravelプロジェクト下にアップロードする(.envは秘密情報を記載するので、VCS管理外のファイルです)
  2. composer installを行う
  3. storage(キャッシュやログの書き込み先になります)とbootstrap/cache(最適化済みファイルの書き込み先になります)のファイル権限をWebサーバー(nginx等)とCLI(php artisan等)が書き込めるように修正する
  4. エラーが出る場合は、nginxのログかlaravelのログ等を確認して修正する(特にlogファイルや、Task Scheduleのmutexファイルはファイル権限エラーになりやすいです)

で構築してみては如何でしょうか

その後に、Deployerが複雑と感じるのであれば、Laravel Envoyも比較的シンプルです。
Laravel Envoy
デプロイ方法の参考
Laravelのデプロイツール Laravel Envoy を使ってみる

投稿2017/07/11 06:52

aro10

総合スコア4106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takyas

2017/07/12 00:43 編集

aro10様 こちらもご回答ありがとうございます。 おっしゃる通り、シンプルに積み重ねて行こうと思います! Laravel Envoyというツールのご提案もありがとうございます。 確認してみます! またteratailに疑問を掲載した際にコメントいただけますと幸いですm(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問