某大学生のらくがきのーと

大学三回生です。調べた事をまとめたり、日記も書くかもしれません。

cakePHPの環境構築から開発開始までまとめ

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-7.0.11が入っていることを確認.

php -v

そのあと

php -i|grep intl

を実行しintl拡張が入っていることを確認.
下記を実行しapacheがphp7.0を使うように設定(?)

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

phpmyadminをインストール

phpmyadmin-ctl install

「phpMyAdminのログインとセットアップ」
ログイン:
 Cloud9のIDと同じIDでログインする。パスワードは最初は設定されていないので空欄。
設定:
 「一般設定」の「サーバ接続の照合順序」: utf8_general_ci
外観の設定:
 「言語」を「日本語」
ユーザパスワードの設定:
 「ユーザ」タブを開いて該当ユーザIDの「特権を編集」リンクをクリック。
 下の方へスクロールすると、「パスワードを変更する」とあるのでそこでパスワードを入れ、
 右下に見える「実行」ボタンをクリックする。

composerのインストール

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

cakePHPのインストール

php composer.phar create-project --prefer-dist cakephp/app 作成したいプロジェクトの名前

必要なライブラリ類をプロジェクトにインストール

cd 作成したプロジェクトの名前
composer install

ブラウザから確認

https://ワークスペース名−ユーザID.c9users.io/プロジェクト名

configフォルダのapp.phpを開き、データベース設定を記載する

プロジェクトフォルダ\configにあるapp.phpファイルを開き、「Datasources」という文字列を検索。
(私の場合217行目にありましたが、その時点のバージョンにより数行の変動があると思います。)
そこから12行程度下までスクロールさせると 'username' => という記載が見つかるのでそこから下を修正。

'username' => 自分のDBユーザ名
'password' => パスワード
'database' => データベース名
'timezone' => '+09:00',


bootstrup.phpも修正する
同じフォルダにあるbootstrup.phpを開き、「timezone」と記載された行を文字列検索する。

date_default_timezone_set('UTC');

と記載されいますので、UTCAsia/Tokyoに変更。

date_default_timezone_set('Asia/Tokyo');

cloud9上でのcakePHP3.4の環境構築

どうもダンテです。
今回はブログを始めようと思うきっかけになった
icloud 9上でのCakePHP3.4の環境構築」
について色々詰まってしまったのでまとめておきたいと思います。

まず、CakePHP3をしようとしたのは新しく始めたバイトで必要になったからです。
そこでドットインストールのCakePHP3入門の通りにしようとしたのですが、
こちらではローカル開発環境を使っていて、cloud9は使ってませんでした。
そこで他のサイトを検索して、下記のサイトを参考にさせていただきました。
(ブログの作法とかよくわかってないんですけど、URLはっつけちゃっていいんですかね。)

Cloud9でCakePHP3【その1】 | トライスターソリューションズ

Cloud9でCakePHP3【その2】 | トライスターソリューションズ


でも、今最新のCakePHPは多分3.4なんで、このサイトの通りではダメでした。

まず、
intl拡張が入ってなかったので、下記のサイトを参考にphp7.0.11とかそこらへん周辺を入れました。

Cloud9 で PHP 7 コピペ用 - Qiita

コードは下記の通りにしました。

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がちゃんと指定されていないことに気づけば一瞬で解決できたことですね。。。
エラーはちゃんと対処しないとダメですね。
プログラミングは気づかなくて沼にハマると本当に抜け出せなくて辛いですね( ;∀;)
もっと頑張ろう。。

初めまして。

某大学の3回生です。

 

開発環境を構築したり、色々検索したりしたあと、メモっとかないと忘れちゃうんで自分用にブログを始めました。

はてなブログのこともよくわかんない。

 

日記書いたりするかな。