PHP
laravel
cloud9

Cloud9のPHPをアップデートしてLaravelな環境をこしらえる

cloud9でPHPの環境を構築した直後にlaravelをインストールしてプロジェクトを作成しようとすると、

Your requirements could not be resolved to an installable set of packages.
...
This package requires php >= 5.6.4 but your PHP version (5.5.9) does not satisfy that requirement.

とアレコレ表示されてプロジェクトが作れなかったので対処したメモ

workspaceに初期配置されてるファイルはどっかへ逃がしておくと楽
(これは別にやらなくても構わない)

$ mkdir ../trash
$ mv ./* ../trash

PHPを5.5.9から5.6へ

$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
$ sudo apt-get install libapache2-mod-php5.6

$ sudo a2dismod php5
$ sudo a2enmod php5.6
$ sudo add-apt-repository ppa:ondrej/php5-compat

$ sudo apt-get update
$ sudo apt-get dist-upgrade

Laravelインストール

$ sudo composer global require 'laravel/installer'

なんか怒られるけど気にせずスルー。laravelコマンドへのパスを通す

$ echo "export PATH=\$PATH:~/.composer/vendor/bin" >> ~/.profile
$ source ~/.profile
$ which laravel

パスが表示されればOK

プロジェクト作成

$ laravel new sample

なんか怒られるけど出来てるっぽい

ドキュメントルートをapp/publicに

$ sudo nano /etc/apache2/sites-enabled/001-cloud9.conf

DocumentRootのところを変えて、[F2]->[Y]->[ENTER]

/home/ubuntu/workspace/sample/public

データベースのセットアップ

$ mysql-ctl install
$ mysql-ctl start
$ mysql-ctl cli

mysql> show databases;

c9という空のデータベースを使うも良し、好きな名前で作っても良し。
※Cloud9のデータベースはパスワードが設定されていないので、気になる人は適切な設定を。

データベースへの接続設定

$ cp ~/workspace/sample/.env.example ~/workspace/sample/.env
$ vi ~/workspace/sample/.env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_created_database_name
DB_USERNAME=your_cloud9_username
DB_PASSWORD=

DB_PASSWORDは空でOK。設定した場合はそのパスワードを。

アプリケーショキーを設定

$ php artisan key:generate

Node.js(?)のアップデート

$ cd sample
$ sudo npm install -g npm
$ npm install

$ nvm install 7.5.0
$ npm rebuild node-sass

$ npm run dev

npm installのところで大分待たされるけど、ここまでやれば一応laravelが動くようになる

こちらに手順や出来上がった環境など置いてあります
https://github.com/uchikoba/LaravelTrainning

handson.txtの手順に添えば超手抜きですけどToDo管理アプリみたいなものが作れるところまで書いてあります。