久しぶりにphpを使わなければいけなくなりました。といっても少しですけど。
普段はjava, objective-c, swift, ruby使いなのですが、phpでCI環境を整えることになったので色々と学習&メモ。
ちなみにぼくが最後にphpで開発したのはverson4の最後の時です。php好きじゃないんだけど、まあ、仕方ないっすねー(棒)。rubyは素晴らしい言語だけど、使える人が本当に少ないのが弱点。結局両方用意しないといけなくなってしまう。(愚痴なので気にしないでくださいw)
せっかくなのでrubyの視点からみたphpの感想もちょこちょこ記載していきたいと思います(怒らないでねw)
環境
- mac Yosemite
- vagrant1.6.5
開発はvagrantのcentos6.5で行います。macに入っているphpはext-mcryptとかいうライブラリがなくてシンボリックリンクはったり面倒なんで。
php5.5のinstall
まずはchefを使わないで普通にinstallして基礎から学習します。php久しぶりなんで。
(chefを使った管理は多分あとで書きます。どうせやる必要あるんで)
// yumを最新にupdate
sudo yum -y update
// epelのリポジトリを追加
sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
// remiのリポジトリを追加
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
// php install
sudo yum install --enablerepo=remi --enablerepo=remi-php55 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug
php -v
PHP 5.5.19 (cli) (built: Nov 13 2014 07:52:05)
install完了。次。
Composerをinstall
Composer
パッケージ管理ツールです。rubyでいうbundler、javaでいうgradle, movenのようなものです。
install
まずはchefを使わないで普通にinstall。勉強勉強。
curl -sS https://getcomposer.org/installer | php
#!/usr/bin/env php
All settings correct for using Composer
Downloading...
Composer successfully installed to: /Users/{username}/Documents/study/php/test/composer.phar
Use it: php composer.phar
OK、次。php composer.phar install
php composer.phar install
Composer could not find a composer.json file in /Users/{username}/Documents/study/php/test
To initialize a project, please create a composer.json file as described in the http://getcomposer.org/ "Getting Started" section
composer.jsonというファイルが必要らしい。アプリのフレームワークにはrailsをインスパイアしたフレームワークcakephpを使います。
{
"name": "example-app",
"repositories": [
{
"type": "pear",
"url": "http://pear.cakephp.org"
}
],
"require": {
"cakephp/cakephp": ">=2.4.9"
},
"config": {
"vendor-dir": "Vendor/"
}
}
cakeのサイトの説明をそのまま使います。もう一度実行。
php composer.phar install
Loading composer repositories with package information
Initializing PEAR repository http://pear.cakephp.org
Installing dependencies (including require-dev)
- Installing cakephp/cakephp (2.5.6)
Downloading: 100%
Writing lock file
Generating autoload files
Vendor以下に色々ある。まだよくわからないけど次。
プロジェクト作成
bakeコマンドでプロジェクトを作成。railsコマンドと同じかな。なんでcakeじゃないんだろうか。
Vendor/bin/cake bake project test
// something
warningでてるけどProject baked successfully!だからOKなのかな?無視して次。
testフォルダを発見。中に色々フォルダがある。うまくいったっぽい。でも、設定を変える必要があるらしい。
CAKE_CORE_INCLUDE_PATH を相対パスに変更
define(
'CAKE_CORE_INCLUDE_PATH',
ROOT . '/Vendor/cakephp/cakephp/lib'
);
準備完了。DBはmysqlを使います。
Mysql5.6をinstall
rpm -qa | grep mysql
mysql-libs-5.1.73-3.el6_5.x86_64
php-mysqlnd-5.5.19-1.el6.remi.x86_64
// delete mysql5.1
sudo yum remove mysql-libs-5.1.73-3.el6_5.x86_64
// add rpm
yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
// install mysql
yum install mysql mysql-devel mysql-server mysql-utilities
mysql --version
mysql Ver 14.14 Distrib 5.6.21, for Linux (x86_64) using EditLine wrapper
OK。長すぎるので分割して続きます。
参考サイト
この記事がお役にたちましたらシェアをお願いします