*

MacのApacheにてFuelPHPのブログチュートリアル環境作成

公開日: : Apache, FuelPHP

FuelPHPのブログチュートリアルを、Macのローカル上に作成した。
ちょっと前の話なので細部は怪しいけど、作成した手順を残しておく。

このチュートリアルははじめてのフレームワークとしてのFuelPHPを書かれた方の記事。最近、紙版が出た。ほしい。

目次

  1. FuelPHPのインストール
  2. Apacheの設定
  3. MySQLのインストール・設定
  4. 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ローカル環境に作成完了。

参考

FuelPHP 1.7.2のブログチュートリアル

MAC::Apacheのmod_rewriteを使おうとしてはまった

FuelPHPのoil createでエラーが出る件

ad

関連記事

no image

Call to a member function order_by() on a non-object[FuelPHP入門]

FuelPHPで簡易ブログシステムを作ってる。 すると以下のエラーが出た。 Call to a

記事を読む

no image

FuelPHP1.7でリダイレクト(Redirect)[FuelPHP入門]

Webサービスある程度できてドメインとったけどまだ公開できない・・・ データ足りないし、デザインや

記事を読む

no image

Apache2.2におけるバーチャルホスト(複数ドメイン)のディレクトリ

自分のローカル環境は(無意味に)バーチャルホストで運用している。 プロジェクトを新しく作るごとにバ

記事を読む

no image

FuelPHP1.7でローカル環境と本番環境を分けてエラーを出さない

FuelPHPの開発環境と本番環境を分けたい。 ローカルではエラーが出た時に詳細なエラーを表示

記事を読む

no image

FuelPHP1.7のページネーション[FuelPHP入門]

新年一発目。昨年のうちにWEBサービス作って公開したかったけど無理でした。 1月中だ!1月中に

記事を読む

no image

FuelPHPで外部ファイル・画像をAssetで読み込む

FuelPHP では Assetクラスを利用して外部ファイルや画像を読み込む。 目次

記事を読む

no image

FuelPHP でURL指定してアクセスしたら「Not Found」[FuelPHP入門]

Ubuntu12.10のEclipseに Rictyを設定し\(バックスラッシュ)を表示でも少し書い

記事を読む

no image

FuelPHPのDB接続の設定

久しぶりに FuelPHPに戻ってこれた。 FuelPHPでデータベースの接続を設定する場合の話。

記事を読む

no image

WordPress用サーバを高速化チューニングするときの参考サイトまとめ(Nginx,FastCGI,PHPアクセラレータ,リバースプロキシ)

WordPressを動かす高速・軽量サーバを作る場合、みんながどんなサーバ構成にしているかを自分用に

記事を読む

no image

EclipseのプロジェクトにFuelPHPのディレクトリを設定

タイトルこれであってるのかな。 やりたいこと ・FuelPHPのプロジェクトを作りたい(Ec

記事を読む

ad

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

PAGE TOP ↑