#背景
せっかくのCloud9でlaravelの開発を進めていく。
#思ったこと
Cloud9からはenvironment配下しか参照できないのか?
とりあえずenvironment配下にlaravelプロジェクトを作成する。
#create-projectを実行
environment]$ ~/composer.phar create-project --prefer-dist laravel/laravel test-laravel
エラー出ました。
The following exception is caused by a lack of memory or swap, or not having swap configured
Check https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors for details
メモリが足りないらしい。対処は
Composerでメモリエラーが発生したときの対処方法【詳細解説】を参考にさせていただきました。
php.iniのメモリ設定を変更。
$ sudo vi /etc/php.ini
memory_limit = 512M
apache再起動。
$ sudo systemctl restart httpd
確認。
$ php -r 'phpinfo();' | grep memory_limit
memory_limit => 512M => 512M
スワップファイルの作成
$ sudo -s /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
$ sudo -s /sbin/mkswap /var/swap.1
$ sudo -s /sbin/swapon /var/swap.1
permissionで引っかかる。
###対処
ここのpermissionの設定は全て行う。
あとは、ec2-userのpermissionの設定も変更する。
$ sudo chown -R ec2-user:www /home/ec2-user
$ sudo chmod 2775 /home/ec2-user
###出ました。
#さらに
このあと朝になって、セッション切れて再度SSHで接続したら、
ssh -i "xxx.pem" ec2-user@xx.xx.xx.xx
ec2-user@xx.xx.xx.xx: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
接続できません。Permission変更しちゃったからssh接続できなくなった。
詰んだか、、、と思い半泣きで復旧方法を探す。
調べたら、接続できない原因は公開鍵のPermissionは700でないといけない。
また、ec2-userのPermissionも700でないといけない。
セキュリティー考えたらそうだ。
開発用の別user作るべきですね。。。
###なんと復旧できるみたい
作業用インスタンスでPermissionを戻す。
$ sudo chown -R ec2-user:ec2-user /home/ec2-user
$ sudo chmod 700 ec2-user
念のため鍵のPermissionも設定
$ chmod 0700 ~/.ssh
$ chmod 0600 ~/.ssh/authorized_keys
で、元々のインスタンスにアタッチし直す。
※参考にした手順では、「/dev/sda1」を入力とありましたが設定するとインスタンスが起動できない。「/dev/xvda」を設定したら起動できた。
###再度sshしたら接続できました。
$ ssh -i "xxx.pem" ec2-user@xx.xx.xx.xx
Last login: Thu Jan 24 17:02:14 2019 from softbank126209053044.bbtec.net
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
#ちゃんと見たら、Could9のCreate environmentの際にパス指定ができました。
これで、最初の疑問について解決。
/var/www配下にenvironomentを作成する。