Cloud9にPHP7.1+Laravel5.5の動作環境を自動で構築するスクリプト

cloud9 php7.1 laravel5.5

【祝!】Laravel 5.5LTS)のリリース記念として、誰でも簡単にLaravelに触れていただけるように、オンラインエディタである「Cloud9」に自動で環境構築してくれるシェルスクリプトを作成しました!
なぜこのスクリプトが必要になるかと言いますと、Cloud9PHPの標準バージョンは5.5.9(2017年9月1日時点)ですが、Laravel 5.5PHP7以降でないと動作しません。そこで、PHP7のインストールからバージョンの切り替え、Composerのインストール、Laravelのインストールまでを、1つのファイルとコマンド1発でできるようにしました。

Cloud9にPHP7.1+Laravel5.5を自動インストール

まずは、Cloud9でworkspaceを作ってください。
以下のリンクから「install.sh」を取得し、workspace直下に配置します。 GitHub – minoryorg/laravel-cloud9
あとは、下記のコマンドを上から順に叩くだけ。

chmod 777 install.sh
sed -i 's/r//' install.sh
./install.sh

そのまま直接実行するとパーミッションや何やらで怒られるので、上の2行が必要です。
(あっ…コマンド1発じゃなくて3発だねw)

install.sh実行する内容

#!/bin/bash# Update to PHP7 (v7.1.8 2017/9/1)
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update# PHP modules for Apache
sudo apt-get install libapache2-mod-php7.1
sudo a2dismod php5
sudo a2enmod php7.1# Add Module for Laravel 5.5
sudo apt-get install php7.1-openssl
sudo apt-get install php7.1-pdo
sudo apt-get install php7.1-mbstring
sudo apt-get install php7.1-tokenizer
sudo apt-get install php7.1-xml# Use MySQL
sudo apt-get install php7.1-mysql# Composer install 
curl -sS  | php# Laravel install
rm hello-world.php
composer create-project --prefer-dist laravel/laravel laravel
shopt -s dotglob
mv laravel/* ./
rm -rf laravel# End
echo "done!"
exit

sudo apt-get install php7.1-...Laravel 5.5のサーバ要件のみインストールしています。
composer create-project --prefer-dist laravel/laravel laravel以下は、workspace/Laravelに展開した後、workspace直下に再配置します。
両方とのお好みで変えてください。

インストール後の環境(2017年9月1日時点)

  • PHP 7.1.8
  • Laravel 5.5.0
  • Composer 1.5.1

※インストールが終わったら、以下の記事を参考にドキュメントルートやデータベースの設定を行ってください。

スクリプトを作ってみて

今までコマンドをメモ帳に書き留めていましたが、今回作ってみて正解でした。
サーバーの設定周りは苦手ですが、一度作ってしまえばこっちのもんです。
我ながらめっちゃ楽でした!
本当はDB設定まで自動でしたかったけど、その辺は好みがあるから書いてません。ちなみに、複数のPHPバージョンを管理できるphpbrewが有名ですが、ここでは使っていません。
試しにphpbrewを入れてPHPのバージョンを切り替えphp -vをしてみたら、PHP 7.1.8...って出でるくせに、<?php phpinfo(); ?>してみたら、なぜかバージョンが元のままで、訳が分からずに諦めました。
まあ、切り替えることがないから別にいいけど。
何か知ってたら教えてください。


Amazonベストセラー

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA