MacのApacheにてFuelPHPのブログチュートリアル環境作成
FuelPHPのブログチュートリアルを、Macのローカル上に作成した。
ちょっと前の話なので細部は怪しいけど、作成した手順を残しておく。
このチュートリアルははじめてのフレームワークとしてのFuelPHPを書かれた方の記事。最近、紙版が出た。ほしい。
目次
- FuelPHPのインストール
- Apacheの設定
- MySQLのインストール・設定
- 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ローカル環境に作成完了。
参考
ad
関連記事
-
Call to a member function order_by() on a non-object[FuelPHP入門]
FuelPHPで簡易ブログシステムを作ってる。 すると以下のエラーが出た。 Call to a
-
FuelPHP1.7でリダイレクト(Redirect)[FuelPHP入門]
Webサービスある程度できてドメインとったけどまだ公開できない・・・ データ足りないし、デザインや
-
Apache2.2におけるバーチャルホスト(複数ドメイン)のディレクトリ
自分のローカル環境は(無意味に)バーチャルホストで運用している。 プロジェクトを新しく作るごとにバ
-
FuelPHP1.7でローカル環境と本番環境を分けてエラーを出さない
FuelPHPの開発環境と本番環境を分けたい。 ローカルではエラーが出た時に詳細なエラーを表示
-
FuelPHP1.7のページネーション[FuelPHP入門]
新年一発目。昨年のうちにWEBサービス作って公開したかったけど無理でした。 1月中だ!1月中に
-
FuelPHPで外部ファイル・画像をAssetで読み込む
FuelPHP では Assetクラスを利用して外部ファイルや画像を読み込む。 目次
-
FuelPHP でURL指定してアクセスしたら「Not Found」[FuelPHP入門]
Ubuntu12.10のEclipseに Rictyを設定し\(バックスラッシュ)を表示でも少し書い
-
FuelPHPのDB接続の設定
久しぶりに FuelPHPに戻ってこれた。 FuelPHPでデータベースの接続を設定する場合の話。
-
WordPress用サーバを高速化チューニングするときの参考サイトまとめ(Nginx,FastCGI,PHPアクセラレータ,リバースプロキシ)
WordPressを動かす高速・軽量サーバを作る場合、みんながどんなサーバ構成にしているかを自分用に
-
EclipseのプロジェクトにFuelPHPのディレクトリを設定
タイトルこれであってるのかな。 やりたいこと ・FuelPHPのプロジェクトを作りたい(Ec