FuelPHPのブログチュートリアルを、Macのローカル上に作成した。
ちょっと前の話なので細部は怪しいけど、作成した手順を残しておく。
このチュートリアルははじめてのフレームワークとしてのFuelPHPを書かれた方の記事。最近、紙版が出た。ほしい。
1. FuelPHPのインストール
ホームディレクトリ直下にworkディレクトリを置き、FuelPHPをインストールする、という方式でいく。
FuelPHPインストール用のコマンド、oilをインストールしておく。
curl get.fuelphp.com/oil | sh
ホームディレクトリ直下にworkディレクトリを作成。
mkdir ~/work
workディレクトリ下にFuelPHPをインストールする。
workディレクトリ内に移動。
cd work
oilコマンドではFuelPHPの最新版がインストールされる。
oil create blog
バージョンを確認してみよう。
cd blog
php oil -v
以下が表示され、FuelPHP1.7.2がインストールされたことがわかる。
Fuel: 1.7.2 running in “development” mode
FuelPHPの1系では1.7が最終安定版になるらしい。
つまり、長く使い続けれるぞ。
2. Apacheの設定
続いて、ブラウザからFuelPHPにアクセスする。
MacにはApacheがデフォルトでインストールされているので、これを使うのが楽。
以前の記事で紹介してたのでそちらを参照。
ApacheのドキュメントルートにFuelPHPのpublicディレクトリのシンボリックリンクを設定する、という方法でいく。
Apacheのドキュメントルートに移動。
cd /Library/WebServer/Documents
シンボックリンクを設定する。
sudo ln -s ~/work/blog/public blog
localhost/blogアクセスしてみる。
以下のエラーが表示された。
Fuel\Core\PhpErrorException [ Error ]:
date_default_timezone_get(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone ‘UTC’ for now, but please set date.timezone to select your timezone.
FuelPHPの方でtimezoneを設定してやる。
vim ~/work/blog/fuel/app/config/config.php
default_timezonという部分を修正する。
デフォルトではコメントアウトされていて、nullが設定されているので以下のように変更。
'default_timezone' => 'Asia/Tokyo',
再びlocalhost/blogへアクセス。
Welcome!と出ればOK。
ただ、これだけだとFuelPHPのトップページ以外にアクセスると、404 Not Foundとなってしまう。
ApacheでFuelPHPを動かすには、mod_rewrite機能を有効にしなければならない。
ただ、このmod_rewrite機能を有効にする方法は環境によって違ってくる。
自分もよくわからん!公式を各自で読んでみてくれ!
とりあえず今回は、MacのデフォルトのApacheを使う場合ということで。
Apacheの設定ファイルを編集。
sudo vim /private/etc/apache2/httpd.conf
自分は以下で動いた。
(本来はDirectoryをちゃんとblogのみに設定するべきかも)
<Directory "/Library/WebServer/Documents"> Options Indexes FollowSymLinks MultiViews AllowOverride All Allow from all Order allow,deny Allow from all </Directory>
重要なところはAllowOverrideをAllにすること。
デフォルトは(おそらく)Noneで、これは.htaccessを無効にしてしまうので、有効にする。
ただもう一つ、OptionsにFollowSymLinksを追加したかどうかが思い出せない。
これがデフォルトで存在しなくてFuelPHPが動かなかったらつけてみて。
設定したら再起動しておく。
これでトップ画面以外も表示されるはず。
sudo /usr/sbin/apachectl restart
うろ覚えだな〜
3. MySQLのインストール
さて、FuelPHPが無事に動くようになった。
ブログチュートリアルの記事を再度見てみるとMySQLを使うとのこと。
MacにはデフォルトでMySQLは入ってないのでHomebrewでインストールしておく。
以下でインストールされるはず。
もっと詳しくはこちらのサイトを参照。
brew install mysql
MySQLを起動する。
mysql.server start
自分はここでエラーが出てMySQLを起動できなかった。
Homebrewでインストールする前に手動でインストールしたMySQLが残ってたせいだったのだが。
その時の忘備録を一切残してないので、上記のコマンドで無事起動できることを、願っている。
MySQLの初期設定を行う。
以下のコマンドでrootのパスワードなどを設定できる。
mysql_secure_installation
rootユーザでログインしてみる。
mysql -u root -p
せっかくなので、ブログチュートリアル用のDBを作成しておく。
CREATE DATABASE `fuel_blog` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
このへんもうろ覚え・・・
4. FuelPHPのブログチュートリアル
ようやく本題。
まずはFuelPHPの設定ファイルを編集していく。
vim ~/work/blog/fuel/app/config/config.php
以下の部分をコメントアウトを削除し、ORMパッケージを有効にする。
ORMパッケージはDBを簡単に作成・削除できるもの。
'always_load' => array( 'packages' => array( 'orm', ), ),
続いてデータベース接続用の設定ファイルを編集。
vim ~/work/blog/fuel/app/config/development/config.php
passwordの****部分に、先ほど設定したMySQLのrootユーザのパスワードを設定する。
return array( 'default' => array( 'connection' => array( 'dsn' => 'mysql:host=localhost;dbname=fuel_blog', 'username' => 'root', 'password' => '****', ), ), );
さあ、ブログを作成するぞ。
oil generateコマンドで一発だ。
cd ~/work/blog
php oil generate scaffold post title:varchar[50] body:text
controllerやmodel,viewにmigration用のファイルが、一気に作成される。
原理はまだわかってない!
続いて作成されたmigration用ファイルからDBにテーブルを作成する。
php oil refine migrate
以下のように出れば成功。
失敗した場合、MySQLとの接続ができてない可能性があるので見直す。
Performed migrations for app:default:
001_create_posts
localhost/blog/postにアクセスする。
よし表示されたぞ!
POSTしても問題なさそうだ!
これにてブログチュートリアルをMacローカル環境に作成完了。
コメント