cloud9上でのcakePHP3.4の環境構築
どうもダンテです。
今回はブログを始めようと思うきっかけになった
「icloud 9上でのCakePHP3.4の環境構築」
について色々詰まってしまったのでまとめておきたいと思います。
まず、CakePHP3をしようとしたのは新しく始めたバイトで必要になったからです。
そこでドットインストールのCakePHP3入門の通りにしようとしたのですが、
こちらではローカル開発環境を使っていて、cloud9は使ってませんでした。
そこで他のサイトを検索して、下記のサイトを参考にさせていただきました。
(ブログの作法とかよくわかってないんですけど、URLはっつけちゃっていいんですかね。)
Cloud9でCakePHP3【その1】 | トライスターソリューションズ
Cloud9でCakePHP3【その2】 | トライスターソリューションズ
でも、今最新のCakePHPは多分3.4なんで、このサイトの通りではダメでした。
まず、
intl拡張が入ってなかったので、下記のサイトを参考にphp7.0.11とかそこらへん周辺を入れました。
コードは下記の通りにしました。
sudo apt-get update sudo apt-get install libmcrypt-dev sudo apt-get install php-mcrypt sudo apt-get install php-curl curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew chmod +x phpbrew sudo mv phpbrew /usr/local/bin/ phpbrew init [[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc phpbrew lookup-prefix ubuntu phpbrew install 7.0.11 +default +mysql +pdo +fpm +opcache +intl phpbrew switch php-7.0.11 phpbrew use php-7.0.11 php -v
そのあと
php -i|grep intl
をすれば、無事intlが入ってました。
そして【その2】のCakePHPのインストールをしてブラウザから確認をしようとしたのですが、、
これがうまくいきませんでした。
アクセスしようとすると、
Parse error: syntax error, unexpected '.', expecting '&' or variable(T_VARIABLE) in ~~functions.app
と出てきました。
理由はよくわからないんですけど(ちゃんと勉強しないとですね)
エラーの通り,$argsの前の ... を消してみたらエラーは消えました。
これでうまく行けばよかったのですが、
今度は違うエラーが出ました。
これやっちゃダメでした。
CakePHP7が認識されていなかったってわかった時に若干大丈夫なのかな
って思ってたんですけどやっぱダメでしたね。
MVCを作ってブラウザからアクセスしようとしたらエラー吐かれました。
消した...を元に戻しました。
(全部戻せたのかわからないんだけど大丈夫なのかな。。)
細かいエラーメッセージは忘れましたが、
bootstrap.phpの
version_compare(PHP_VERSION, '5.6.0') < 0
がエラーを吐いてました。
phpが5.5.9だよ
って内容ですね。
しかし、上でやったようにphp 7.0.11は入れたし、
php -v
を実行してもちゃんとphp 7.0.11になってたんですね。
ここで詰まって、ダウンロードの仕方とかコマンドの設定がおかしかったのかな、、、
と思い、色々調べたり試行錯誤しました。
様々なサイトをみても「これだ!」というのは見つけられませんでした。
そこで試しに適当なphpファイルを作って
<?php echo PHP_VERSION; ?>
をしてみるとやっぱりphpは5.9.9。
これはちゃんとphp 7を認識してくれていないのかなと思い、たどり着いたのが下のサイト
How to upgrade a PHP workspace to version 7? - Cloud9 Support - Cloud9 Community
英語のサイトですね。大学入ってから何もしてないので読むのが辛いですね。
ここのanswer通りに
sudo add-apt-repository ppa:ondrej/php -y sudo apt-get update -y sudo apt-get install php7.0-curl php7.0-cli php7.0-dev php7.0-gd php7.0-intl php7.0-mcrypt php7.0-json php7.0-mysql php7.0-opcache php7.0-bcmath php7.0-mbstring php7.0-soap php7.0-xml php7.0-zip -y sudo mv /etc/apache2/envvars /etc/apache2/envvars.bak sudo apt-get remove libapache2-mod-php5 -y sudo apt-get install libapache2-mod-php7.0 -y sudo cp /etc/apache2/envvars.bak /etc/apache2/envvars
を実行して、もう一度ブラウザからアクセスしてみると、、
今度はうまくいきました。
どうやら、installするだけじゃなく、apacheに指定してあげないとダメみたいですね。
エラーに書いてる事を素直に受け止めて、php7がちゃんと指定されていないことに気づけば一瞬で解決できたことですね。。。
エラーはちゃんと対処しないとダメですね。
プログラミングは気づかなくて沼にハマると本当に抜け出せなくて辛いですね( ;∀;)
もっと頑張ろう。。