Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

php artisan migrate ができない。ディレクトリの場所を探すのを手伝って頂けないでしょうか?

解決したいこと

php artisan migrate ができない。
ディレクトリの場所を探すのを手伝って頂けないでしょうか?

現在、laravelで作成したポートフォリオをEC2とnginxを使いデプロイしようとしています。
この記事を参考に進めています。
https://qiita.com/tetero/items/d1c718f84b67d8fcfae0

⑪.envファイルの設定変更とマイグレーション
の.envの設定まで完了し、最後の(sudo php artisan migrate)ところで、うまくいかず、下記のエラーが出ます。

発生している問題・エラー

[ec2-user@ip-10-0-10-10 ~]$ cd /var/www/diet-app   #ポートフォリのプロジェクトがあるディレクトリへ移動
[ec2-user@ip-10-0-10-10 diet-app]$ sudo php artisan migrate
Could not open input file: artisan  #エラー
[ec2-user@ip-10-0-10-10 diet-app]$ ls -a #中身を確認
.  ..  .DS_Store  .env  .git  diet-app         #diet-appがプロジェクト名です。

実行するディレクトリが間違えている か そもそもファイルを作ってないかのどちらかかと思いますが、どうすれば解決できるのかわかりません。(手順の中にある.envファイル以外は作っていません。)
調べてみるとlaravelのホームディレクトリに移動して、migrateしないといけないみたいなのですが、laravelのホームディレクトリってどこ?(/var/www/diet-app)ここじゃないの?って感じです。

試しに cd ~ で/home/ec2-user に戻ってmigrateしてみるも、同様のエラー。
/var と /wwwでも試すも同様のエラー。

何をすればいいのか、困惑しております。

各ディレクトリの ls -a です。

[ec2-user@ip-10-0-10-10 diet-app]$ cd ~
[ec2-user@ip-10-0-10-10 ~]$ ls -a
.  ..  .bash_history  .bash_logout  .bash_profile  .bashrc  .cache  .config  .local  .mysql_history  .ssh  .viminfo
[ec2-user@ip-10-0-10-10 ~]$ cd /var
[ec2-user@ip-10-0-10-10 var]$ ls -a
.   .updated  adm    db     games   kerberos  local  log   nis  preserve  spool  www
..  account   cache  empty  gopher  lib       lock   mail  opt  run       tmp    yp
[ec2-user@ip-10-0-10-10 var]$ cd www
[ec2-user@ip-10-0-10-10 www]$ ls -a
.  ..  diet-app
[ec2-user@ip-10-0-10-10 www]$ cd diet-app
[ec2-user@ip-10-0-10-10 diet-app]$ ls -a
.  ..  .DS_Store  .env  .git  diet-app

diet-appの中に更にdiet-appがある(?)ので、そこに移動してmigrateしてみた。
こちらは致命的なエラーだそうです。

[ec2-user@ip-10-0-10-10 diet-app]$ cd diet-app
[ec2-user@ip-10-0-10-10 diet-app]$ sudo php artisan migrate
PHP Warning:  require(/var/www/diet-app/diet-app/vendor/autoload.php): failed to open stream: No such file or directory in /var/www/diet-app/diet-app/artisan on line 18
PHP Fatal error:  require(): Failed opening required '/var/www/diet-app/diet-app/vendor/autoload.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/diet-app/diet-app/artisan on line 18

以上、このような状態になっております。
migrateをするには、何をしないといけないのか、アドバイスをいただけると幸いです。

以下、補足。
参考記事の手順⑧Laravelアプリの設定変更など  のところで /var/www/diet-app/.env にて、envファイルの作成をしたあと、記事では、IPv4パブリックIPをブラウザのアドレスバーに入力すればLaravelの画面が表示される。と書かれていますが、私の場合は表示されず、nginxの画面のままでした。
これが、migrateできない要因になり得るのかわかりませんが、そのようなことがあったので補足しておきます。

0

1Answer

PHP Warning: require(/var/www/diet-app/diet-app/vendor/autoload.php): failed to open stream: No such file or directory in /var/www/diet-app/diet-app/artisan on line 18

/var/www/diet-app/diet-app/vendor/autoload.phpを開くことに失敗。/var/www/diet-app/diet-app/artisanの18行目で読み込もうとしたが、そのようなファイルやディレクトリは存在しない。」というエラーです。

該当するファイルは存在しますか?
vendorディレクトリが無い場合、依存関係のインストールを行っていない可能性があります。
参考記事の ⑧Laravelアプリの設定変更など > composerのインストール の箇所です。

1Like

Comments

  1. @m1527092

    Questioner

    コメントありがとうございます。
    ご指摘の通りcompoerがインストールされておりませんでした。
    改めて、compoerのインストールを試みたところ、以下のエラーが出ました。

    Composer could not find a composer.json file in /var/www/diet-app
    To initialize a project, please create a composer.json file. See https://getcomposer.org/basic-usage 

    読んでみると、composer.json ファイルを作れと書いてあったので、調べてファイルを作成しました。
    (sudo vi composer.jsonで作成・編集)中に何かしら記述しないといけなかったのですが、タイミング悪くキャッシュ削除をしてしまったため、何を書いたかは忘れてしまいました、、
    その後、sudo composer updateをし、sudo composer update をし、インストールが無事できました。
    改めてvar/www/diet-app/diet-appに移動し、sudo php artisan migrateをしたところ、マイグレーションできました!!!

    恐る恐る、nginxを再起動し、IPアドレスにアクセスしたら、
    なんと、、、502 Bad Gateway の画面でした(泣)

    ひとまず、マイグレーションはできたので、助かりました。
    ありがとうございます!

    このあとは、データベース等の接続を再度確認し、プロジェクトにアクセスできるよう頑張ります。
    助言いただきありがとうございました!

Your answer might help someone💌