LoginSignup
4
5

More than 3 years have passed since last update.

AWS Cloud9でLaravelの環境構築をする時にやったこと

Last updated at Posted at 2019-04-30

これは何?

Laravelはおろか、PHPすら触ったことが無いし、何ならAWS Cloud9も初めて使う著者が、試行錯誤した時のメモです。

環境

  • Windows 10 Home
  • AWS Cloud9
    • t2.micro
    • Cloud9Default-2019-04-26T15-18 (ami-01e86b109a9e95f06)
  • PHP 7.3.4
  • Laravel
    • Installer 2.0.1
    • Framework 5.8.14

やったこと

とりあえずPHP環境を整える

AWS公式にうってつけな感じのガイドがあったので、試します。
AWS Cloud9 の PHP サンプル

image.png

ちなみにCloud9の見た目はこんな感じ。大したことはしてないが、見た目は非常にCOOLですね。
PHPのバージョンがデフォルトだと5.6系で古いので、7系まで上げておきましょう。
以下のコマンドで、php7.3をデフォルトにします。
(php7系は自分で入れる必要があるかも。色々いじったので元から入っていたのか分からなくなった…。)

sudo alternatives --set php /usr/bin/php-7.3

ステップ4でComposerのインストールを行うので、そこまで進めます。
$HOME/environment下ではなく、$HOME直下でインストールしました。

Laravelを入れる

公式を参考に、Composerを使ってLaravelをインストールします。
※Laravelで検索すると出てくる日本語版(?)はバージョンが古い気がするので注意した方が良いかも。

以下のコマンドをenvirionment下で実行(そうしないとIDEから見えない)して、blogというプロジェクトを作ります。

laravel new blog

サーバを立ててみる

以下でサーバが上がるはずなんですが、色々ハマりました。

php blog/artisan serve --port=8080

以下解決までにやったこと色々です。

  • $HOME/vendorディレクトリを、まるっと$HOME/environment/blog下にコピーする。

    • bootstrapと同じ階層に必要
  • mbstringがmissingと言われるので、yumで入れる。

    • php -mで見てみると、確かにmbstringが無い。
    • 以下のコマンドを実行
sudo yum list | grep mbstring
sudo yum install php73-mbstring.x86_64
  • php.iniの設定を書き換え、mbstringを使うようにする。(不要かも?)

    • こちらを参考に。
    • php.iniの場所は、php -r "echo phpinfo();" | grep "php.ini"で確認可能ですが、たぶん/etc/php.iniにある。
  • 起動時のportは8080~8082にする必要がある。

  • encryption keyが特定されていないエラーで、ターミナルからcurlすると、500 Server Errorになる。

    • 以下のように怒られる。
    • logはstorage/logs配下に作られる。
[2019-04-30 09:21:07] production.ERROR: No application encryption key has been specified. {"exception":"[object] (RuntimeException(code: 0): No application encryption key has been specified. at /home/ec2-user/environment/blog/vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php:44)

こちらに書かれている通り、以下のコマンドを実行。

cp .env.example .env
php artisan key:generate
php artisan config:clear

※ちゃんと.env.exampleはありました。隠しファイルなのでIDEからは見えませんでしたが。

これで、PreviewPreview Running Applicationとして、どうにかデモ画面が起動。
(コンソールのURLからOpen in Previewとした場合はうまく開かず。)
image.png

なお、IDEから開く限りでは、AWS Cloud9を動かしているEC2インスタンスのセキュリティグループはいじらなくて問題なかったです。

雑なまとめ

環境構築で疲れたので今日はここまでです。
(まとめですらない)

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5