こんにちは。でんすけ(@notgeek_densuke)です。
最近、PHPのフレームワークのひとつ、FuelPHPを勉強しているのですが、
最初のインストールからちょいちょいつまづいたので、
つまづきポイントをメモ代わりにまとめます。
これからFuelPHPを始める予定の方はお気を付けくださいませ。
スポンサーリンク
FuelPHPのインストールでつまづく
まずは、FuelPHPのインストール。
日本語版ドキュメントもあるのでありがたいですね。
こんな手順が載ってます。
# oil を Web からクイックインストールします $ curl get.fuelphp.com/oil | sh # oil が、たった今、インストールされました。Sites ディレクトリで blog プロジェクトを作ります $ cd Sites/ $ oil create blog
で、その通りにやろうとすると
curlの実行の時点で、こんな感じのエラーが出ます。
sh: line 1: syntax error near unexpected token `newline' sh: line 1: `<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">'
えー、なんじゃそりゃ。
正解はこちら。
$ curl https://get.fuelphp.com/oil | sh
httpsじゃないとうまく動かないという罠。
日本語版ドキュメントでは、FuelPHP 1.8 ではhttpsで説明されてますが、
1.7、1.9のドキュメント通りにやるとエラーになります。
直しといてよ・・・。
oilコマンドでつまづく
で、続いて。
実際に、httpsでインストールが完了したタイミングでは、何の反応もないまま処理が終了します。
なので、インストールできたのか、できてないのか、よくわからん。
ということで、試しにoilコマンドを実行してみることに。
$ oil
すると、こんな反応が返ってきます。
This is not a valid Fuel installation so Oil is a bit lost. http://fuelphp.com/docs/installation/instructions.html
え、なにかが足りてないっぽい?
なにこれ、インストール失敗してる?
と思って色々調べまくってしまったのですが、なんてことはない。
僕の勘違いでした。
ドキュメントに手順が書いてありますよね。
# oil が、たった今、インストールされました。Sites ディレクトリで blog プロジェクトを作ります $ cd Sites/ $ oil create blog
「create プロジェクト名」を付ければよかったわけです。
すると、プロジェクトディレクトリが作られて、テンプレートらしきファイルたちが作成されるわけです。
単純に何もないところで「oil」コマンドだけ実行しても何もできないよ、ということです。
logディレクトリの権限設定でつまづく
で、無事にFuelPHPのインストールが完了したので、
Apacheなりのサーバの設定も終わらせて、
とりあえずブラウザで初期画面でも表示させてみるかー、
と実行してみた結果。
ええぇぇーー!
まだ何も触ってもないのにエラーとかどういうこと・・・
エラーを読んでいると、どうやらログファイルの出力先が存在しないとのこと。
いや待って、ディレクトリ自体は確かに存在しているんですけど。。
と思ったら、実はディレクトリの権限が足りてないという結論に。
ブラウザ経由で実行される=第三者に実行されるものなので、
ファイルの書き込みが許可されていないといけないわけです。
ということで、こういうことをしてあげます。
$ chmod 777 (プロジェクトディレクトリ)/fuel/app/logs $ ls -ld (プロジェクトディレクトリ)/fuel/app/logs # 出力結果の先頭が「drwxrwxrwx」みたいになってればOK
「log」ディレクトリに書き込み権限を与えてやればいいのですね。
これ、最初から777の権限でディレクトリ作ってくれればいいのになぁ。
初期画面でエラー出るって、心折れるわ。
タイムゾーンの設定でつまづく
よし、今度こそブラウザで画面表示だ!
と思って再度実行すると・・・
ま た エ ラ ー か !
お兄さん怒るよ。
今度はタイムゾーンの設定が必須だよ、みたいなことを言われてます。
これ、「fuel/app/config/config.php」ファイルのタイムゾーンの設定を書き直せば解決するっぽい。
$ vi fuel/app/config/config.php # // 'default_timezone' => null, # となっているところを # 'default_timezone' => 'Asia/Tokyo', # などに変更する
こんなの、デフォルトで適当なタイムゾーンに設定しとくか、
対話形式でタイムゾーン聞くとか、
なんかできんかったんかいね?
全部設定し終わったら、ようやく初期画面が表示できました。
Welcome!
まとめ
ということで、FuelPHPの初期インストールでハマる4つのポイントでした。
環境によって動作が違うかもしれないので、みんながみんなハマるわけではないかもしれませんが、少なくとも僕の環境ではハマりました。
・インストールURLはhttpsで
・oilコマンドは手順に沿って
・ディレクトリ権限気を付ける
・タイムゾーンの設定をする
開発の出だしでハマるのって萎えるので、
同じようなことでハマる人が一人でも少なくなりますように。
それではまたー。
コメント
コメントはありません。