アーカイブ : 2013年 3月

PHP5.4とec-cube

ec-cubeはPHP5.4系を意識した修正は行われていないなぁ、という事で。

エラーレベルの話。
PHP5.4.0からはE_ALLにE_STRICTが含まれるようになっている。
ということで、管理画面の統計など、ちょっとしたタイミングでエラーが出てくる。

/data/class/SC_Initial.php内には

function setErrorReporting() {
error_reporting(E_ALL & ~E_NOTICE);
// PHP 5.3.0対応
if (error_reporting() > 6143) {
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
}
}

と記載があるが、とりあえずコイツにE_STRICTを加えて

function setErrorReporting() {
error_reporting(E_ALL & ~E_NOTICE);
// PHP 5.3.0対応
if (error_reporting() > 6143) {
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT);
}
}

ってすればエラーは出なくなる。

PHP5.5 beta1も出てきているみたいだし、更新して使えなくなる(or 使い勝手が悪くなる)
という事は多く出てきそうですね…。

macでPHP開発環境の構築

久しぶりの更新になってしまいましたが、備忘録なので仕方ないということで。

MacBook Proを購入しまして。
各種アプリ開発環境はサクッとインストールしたのですが、
PHP開発環境はeclipseを入れたくらいのものでした。

Mac自体がapache、mysql、postgresql、その他もろもろ入れられるので
自鯖で開発できるようにしたかったんです。

HomebrewでPHPのバージョン切り替えも簡単にできる感じで
(できればmysqlとかapacheもバージョン変えられるといいなと思ってる所ですが)
開発できれば色々と楽になるかな、と。

ということで、いろいろ調べつつ実行。

【とりあえずHomebrewの基本的なことを調べる】
Homebrewってのは、linuxで言うyumみたいなパッケージ管理システムのひとつ。
yumとの違いは、yumが既にビルドされているパッケージをインストールするのに対して
HomebrewはinstallコマンドでDL後にビルドしてインストールするらしい。
macではHomebrewとかMacPortsというパッケージ管理システムが多用されるみたい。

MacPortsはデフォルトでMac内に入っているアプリを依存関係として使用してくれない
らしく、既にインストールされているapacheも別の場所に再度入れて…みたいな事を
してしまうらしい。
ので、今回はHomebrewで。

前提として(?)Xcodeだけではなくてcommand line tools for Xcodeが必要なので、
app storeやらmacのサイトやらで入手する必要がある。
command line tools for Xcodeは、以前はXcode内に同梱されていたようなのだが
今は別梱らしいので、それも探して入れないといけなくなったらしい。
こういう細かい事は、Homebrewのインストール後に英語で注意書きが出るから
それを読めば大丈夫。

Homebrewのインストール自体は非常に簡単で、ターミナルから

ruby -e “$(curl -fsSkL raw.github.com/mxcl/homebrew/go)”

と入力するだけ。
その後

brew doctor

は走らせておく必要があるみたい。

ちなみに、Homebrewを使っていろいろインストールした際のキャッシュとかDLしたものは、
/Library/Caches/Homebrew/内に入るみたい。
で、その後はbrewコマンドでHomebrewを使ってパッケージを入れることになる。
例えば、

brew install wget

とか

brew uninstall wget

みたいな。

【apacheやらmysqlやらpostgresqlやら】
apacheはとりあえずmacに最初から入っているものを使用。
(面倒なので。)
必要に迫られることがあれば何か考えることにする。

sudo apachectl start

とかで起動して、http://localhostとかで動いたかどうか確認。
configは、/private/etc/apache2/httpd.confにある。

mysqlはHomebrewでインストール。
ターミナルを起動して、

brew install mysql

と打つだけ。
その後はどうするか(英語で)表示されるので、その通りに

unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

とかでデータベースの構築。
(/usr/local/varディレクトリがないとmysql_install_dbでエラーが起きるかも?)

mysql.server start

でmysql起動。

postgresqlもHomebrewでインストール。
mysqlとほぼ同様なので、詳細は割愛。

brew install postgresql
initdb /usr/local/var/postgres -E utf8
pg_ctl -D /usr/local/var/postgres -l logfile start

という感じ。

PHPは後日で。5.1系のインストールができないかどうか悩んでいるところなので。
5.2系〜5,4系までは問題なくインストールできたんだけどね。