Silexのドキュメントを読み進めていくと、「silex.pharを実行すればsilexのバージョン確認やアップデートが可能」というフレーズを見つけたので早速試してみたところ、幾つかエラーが発生したので、その解決方法を記録しておきます。
Permission denied
Bash:
-
$ ./silex.phar
-
-bash: ./silex.phar: Permission denied
silex.pharを実行可能ファイルのように実行しようとすると起きました。
実行権限がありませんね。chmod で7xxにしましょう。(実は関係なかったんですが...↓)
No such file or directory
Bash:
-
$ ./silex.phar
-
./silex.phar: line 1: ?php: No such file or directory
-
./silex.phar: line 3: =: command not found
-
./silex.phar: line 5: syntax error near unexpected token `'phar','
-
./silex.phar: line 5: `if (in_array('phar', stream_get_wrappers()) && class_exists('Phar', 0)) {'
実行権限を直しても、ファイルが見つからないというエラーです。
そういえば、pharはphpの独自形式なので直接シェルでは実行できないですね。
php ./silex.phar と打つ必要がありました。chmodいらなかった。
PHP Warning: PHP Startup: apc.shm_size now uses M/G suffixes
Bash:
-
$ php ./silex.phar
-
PHP Warning: PHP Startup: apc.shm_size now uses M/G suffixes, please update your ini files in Unknown on line 0
表題のエラーです。環境はMac OS X 10.6 / php 5.3.4 / homebrew派です。
エラーにしっかりと書いてありますが、「現在apc.shm_sizeはM/Gの接尾辞を使います、iniファイルを更新してください」とのこと。
M/Gというのは、メガとギガの単位ですね。
/etc/php.iniを見てみると、たしかに単位が抜けていました。Silex関係なかったですね^^;
TEXT:
-
[apc]
-
extension="/usr/local/Cellar/apc/3.1.6/apc.so"
-
apc.enabled=1
-
apc.shm_segments=1
-
apc.shm_size=64
-
apc.ttl=7200
-
apc.user_ttl=7200
-
apc.num_files_hint=1024
-
;apc.mmap_file_mask=/tmp/apc.XXXXXX
-
apc.enable_cli=1
apc.shm_sizeを64から64Mにして保存し、apacheに設定を反映させると、
Bash:
-
$ php ./silex.phar
-
Silex version ef49998 2011-05-11 18:49:27 +0200
ちゃんと出ました。
ちなみに4月中旬くらいに配布されていたsilex.pharにはこの機能はないようです。@brtriverさんのSilexを試してみた - ぷぎがぽぎという記事でSilexに興味を持ったので、Silexを使い始めましたが、@brtriverさんのgithubにあったお問い合わせフォームのサンプルコードに含まれていたsilex.pharをそのまま使い続けていたら、バージョン番号は出てきませんでした。最新版のsilex.pharに置き換えたらバージョン番号が出てきましたので、最近できた機能のようですね。