Edited at

Cloud9でLaravel5.8+PHP7.3の環境構築をして、gitHubにssh接続まで!


はじめに

Laravel5.2+php5.6の環境を作ったときは、特に詰まりもせず環境構築ができたが

Laravel5.8+php7.3の環境構築をしたら、いくつか詰まったところがあるので、備忘録として残しておく。

詰まったポイントとしては

- php7.3を入れたのに適用されない

(pho5.6のときはDefaultで入ってたから入れる必要がなかった)

- Laravel5.2ではインストール後すぐに起動できたのに、Laravel5.8ではうまく起動しない

などなど

他にも色々詰まったので、手順を書いていく。

※投稿者はLaravelを始めたばかりで、Laravelでアプリを作成したことすらありません。

記事を書いたことすらありません。初投稿です。

助言がありましたら、コメントをお願いいたします。


参考記事

AWS Cloud9 で PHP7.1、7.2 へ変更する

No application encryption key has been specified.となったときの対応方法

GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~

参考にさせていただきました。ありがとうございます。


目次

前提条件

Cloud9のワークスペースを作成

PHPとLaravelのインストール

gitHubにssh接続


前提条件

以下の条件を満たしておいてください。

・AWSのアカウントが存在すること


Cloud9のワークスペースを作成

特段詰まるところではないので、簡潔に記載する


  1. AWSにログイン

  2. 真ん中の検索ボックスに「Cloud9」と入力すると下に「Cloud9」が出てくるので押下

  3. 「Create environment」を押下

  4. 「Name」にアプリ名を記入。必須
      「Description」はアプリの説明。任意

  5. Configure settingsの項目を入力していく。全てDefaultだが以下の通り。
      「Environment」→「Create a new instance for environment (EC2)」
      「Instance type」→「t2.micro (1 GiB RAM + 1 vCPU)」
      「Platform」→「Amazon Linux」
      全て選択したら「Next Step」を押下

  6. 内容を確認し、「Create environment」を押下
    インジケータ(くるくるするやつ)が表示されます。
    3分ほど待てば、まっさらなCloud9の環境が構築されます。


PHPとLaravelのインストール


phpのインストール&適用

yumをアップデートする

$ sudo yum -y update

PHP 7.3をインストール

$ sudo yum -y install php73 php73-mbstring php73-pdo

この段階でphpのバージョンを確かめると

$ php --version

PHP 5.6.40 (cli) (built: Mar 8 2019 18:17:39)

このように5.6のままなので、以下2つのコマンドを打つ

php5.6のリンクの削除

sudo unlink /usr/bin/php

php7.3のリンクの張り直し

sudo ln -s /etc/alternatives/php7 /usr/bin/php

そうすると

php --version

PHP 7.3.6 (cli) (built: Jun 12 2019 20:51:34) ( NTS )

php7.3になってたら完了

※参考記事だと7.2だったけど、なんとなく新しいの入れたかったから7.3にしてみた


Laravelのインストール

composerのインストール

curl -sS https://getcomposer.org/installer | php

composerのリネーム

sudo mv composer.phar /usr/local/bin/composer

composerが入ったか、リネームできたかの確認

composer

コマンド打った次の行あたりに「COMPOSER!」と表示されたらOK

Laravelインストーラのダウンロード

composer global require laravel/installer

Laravelインストール

composer create-project laravel/laravel --prefer-dist アプリ名 5.8

※アプリ名には作りたいアプリ名を入れてね

インストールすると

Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1

というエラーが出る。

artisan関連のエラーらしいが、普通に使えているため一旦スルー。


とりあえずLaravelのインストール完了!

Laravel5.2ではインストール後に

cd アプリ名

php artisan start --port8080

と打てばLaravelが立ち上がるが、Laravel5.8では。。。

ec2-user:~/environment $ cd test #アプリ名をテストにしたよ

ec2-user:~/environment/test $ php artisan serve --port=8080

In database.php line 58:
Undefined class constant 'MYSQL_ATTR_SSL_CA'

あれ。。よくわからないエラーが出た。

色々調べたらMySqlの証明書を設定する?箇所でエラーになっているらしい。

設定する証明書がある人は設定しよう。(設定の仕方は調べてください)

特に設定が不要な方は以下のファイルを開く

アプリ名/config/database.php

※testというアプリなら「test/config/database.php」を開く

 databaseフォルダも存在するため、間違えないように注意!

以下の行をコメントアウトする

57行~59行

// 'options' => array_filter([

// PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
// ]),

保存したあと、以下のコマンドを打つ

$ php artisan serve --port=8080

Laravel development server started: <http://127.0.0.1:8080>

緑色の字で結果が返ってくる。「serverが立ち上がったよ!」とのことなので成功!

Laravelが立ち上がっているとWeb画面に「Laravel」と大きく表示されるので見に行く。

上の方にある「preview」→「Preview Running Application」を押下


しかし。。。

RuntimeException

No application encryption key has been specified.
.
.
.
/home/ec2-user/environment/test/vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php

なにこれよくわかんない

とりあえずエラー内容をコピーして、サーバを閉じる

※コマンドプロンプトの画面で、「Ctrl + C」を入力すると閉じる

色々調べたら「encryption keyが未設定だから」とのこと。(よくわかんない)

以下のコマンドで「encryption key」の設定する

$php artisan key:generate

もう一度Laravelを起動する

$php artisan serve --port=8080

上の方にある「preview」→「Preview Running Application」を押下

「Laravel」と表示されていることを確認


gitHubにssh接続

Cloud9にはDefaultでGitが入っている。念の為確認

$ git --version

git version 2.14.5

cloud9にgitHubのユーザ名を登録する

$ git config  user.name "gitHubのメールアドレス"

これをしないとgitHubの草が生えないみたい。


sshキーの作成

以下のコマンドを打って、秘密鍵の作成、公開鍵の作成する

$ cd ~/.ssh

$ ssh-keygen -t rsa

Enter file in which to save the key (/Users/(username)/.ssh/id_rsa): #空のままEnter
Enter passphrase (empty for no passphrase): #空のままEnter
Enter same passphrase again: #空のままEnter

コピーする

cat id_rsa.pub

表示された内容をコピーする


sshキーの登録

※gitHubの作業となります。

1. gitHubにログインする

2. 右上の自分のアイコンを押下→「settings」を押下

3. 「SSH and GPG keys」を押下

4. 「New SSH key」を押下

5. Title・・・わかりやすい名前をつける(cloud9用だからcloud9とかで良い気がする

  key・・・sshキーの作成でコピーしたのを貼り付ける

6. 「Add SSH key」を押下

7.

これでSSH接続が可能となりました!


最後に

環境構築でつまずくことはよくあるが、cloud9+Laravelは比較的楽な方だった気がする。(ちゃんとできてるかは知らない)

日本にphpユーザが多いからか、日本語の情報がたくさんあって助かった(実際に多いか知らない)

いくつかよくわからないところがあったため、ちゃんと調べて理解を深める必要はありそう。

環境構築が完了したので、Webアプリを作れたらいいなぁと思う。