ベリラボ

OSS(オープンソースソフトウェア) を主体とした技術検証と小ネタなど

akelos fedora framework PHP

Fedora 8 で akelos のチュートリアル (その1)

投稿日:

PHP のフレームワークをFedora 8で試してみました。試行錯誤しながら動かしたメモです。OS設定の変更ができる権限(いわゆる root)を持っていることを中心に書いていますが、レンタルサーバ等でOS設定変更不可な環境でも参考になるように追記しています。

主な環境:

OS: Fedora release 8 (Werewolf)
php: 5.2.4
mysql: 5.0.45
apache: 2.2.8
subversion: 1.4.4
上記全て yum よりrpmパッケージで導入し独自コンパイルはなし。

http://xxxxx/book
http://xxxxx/author
でアクセスすることを前提。
akelos自身の導入とアプリケーション作成は、一般ユーザで行うことを前提。

【PHPの設定変更】

# vi /etc/php.ini
allow_call_time_pass_reference = On

↑デフォルトのOffからOnに変更。
akelosは、Onが前提のようです。Offのままだと色々なところでWarnningが出ます。


レンタルサーバ等で/etc/php.iniが変更不可の場合、.htaccess にこの設定をいれることで対応可能です。
また、コマンドラインで setup/migrate/generate 等のコマンドを実行するとき、

$ php --define allow_call_time_pass_reference=on ./script/setup -d ~/booklink

のようにコマンドラインオプションを付ける必要もあります。

【akelos、アプリケーション用のユーザ作成】

# groupadd -g 20000 webgroup
# useradd -u 20001 -g webgroup -G webgroup webuser

【akelos インストール】

# su - webuser
# svn co http://svn.akelos.org/trunk/ akelos

【booklinkアプリケーションのsetup】

$ cd ~/akelos/
$ ./script/setup -d ~/booklink


レンタルサーバ等の場合、ここで以下の設定追加。
$ vi ~/booklink/public/.htaccess
php_flag allow_call_time_pass_reference on

【apacheのVirtualHost追加】

# vi /etc/httpd/conf/httpd.conf
以下、追記する。
<virtualhost >
ServerAdmin webmaster@XXXXXXXX.jp
DocumentRoot /home/webuser/booklink/public
ServerName XXXXXXXX
ErrorLog logs/XXXXXXXX-error_log
CustomLog logs/XXXXXXXX-access_log combined

</virtualhost >
<directory >
Options Indexes FollowSymLinks
AllowOverride All
</directory>


# service httpd configtest < ---- apache設定ファイル文法確認
# service httpd start <---- apacheの起動

【booklink用 mysql データベース作成】

$ mysql -u root -p
CREATE DATABASE booklink;
CREATE DATABASE booklink_dev;
CREATE DATABASE booklink_tests;
GRANT ALL ON booklink.* TO bermi@localhost IDENTIFIED BY "pass";
GRANT ALL ON booklink_dev.* TO bermi@localhost IDENTIFIED BY "pass";
GRANT ALL ON booklink_tests.* TO bermi@localhost IDENTIFIED BY "pass";
flush privileges;
quit;
$ mysqlshow -u root -p

ここで作成したデータベースが表示されることを確認する。

【booklink用 configディレクトリの権限設定】

$ chmod a+rwx ~/booklink/config
↑誰でも読み書き実行できる設定

【ウェブインストーラでbooklink設定】
Webブラウザで、http://XXXXXXXX/ にアクセスし、データベースのユーザ/パスワードを入れる。その他の項目は、デフォルトから変更なし。

【booklink データベース構造定義】
$ cd ~/booklink/
$ vi app/installers/booklink_installer.php
以下、記述

< ?php

class BooklinkInstaller extends AkInstaller
{
function up_1(){

$this->createTable(‘books’,
‘id,’. // the key
‘title,’. // the title of the book
‘description,’. // a description of the book
‘author_id,’. // the author id. This is how Akelos will know how to link
‘published_on’ // the publication date
);

$this->createTable(‘authors’,
‘id,’. // the key
‘name’ // the name of the author
);
}

function down_1(){
$this->dropTables(‘books’,’authors’);
}
}

?>

【booklink データベースインストーラ実行】

$ cd ~/booklink
$ ./script/migrate Booklink install

【booklink(book/author) スキャフォールド】

$ cd ~/booklink
$ ./script/generate scaffold Book
$ ./script/generate scaffold Author

【実行時アクセスディレクトリ権限設定】

$ cd ~/booklink/app/views/
$ find . -type d -exec chmod a+rwx {} \;
$ cd ~/booklink/app/locales/
$ find . -type d -exec chmod a+rwx {} \;

※ここでは取り急ぎざっくり権限設定しています。本番環境ではもうちょっと考慮する必要ありかも。

【booklink実行確認】
Webブラウザから http://XXXXXXXX/book にアクセス。
追加、更新、削除でエラーとならないこと。
Webブラウザから http://XXXXXXXX/author にアクセス。
追加、更新、削除でエラーとならないこと。

今回はここまで、次回は続きをやります。

-akelos, fedora, framework, PHP

執筆者:


  1. […] 前回は、akelos導入、チュートリアル用のbooklinkをセットアップをしてbook/authorの追加、更新、削除までやりましたが、今回は、book/authorの関連付けです。 […]

comment

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

Fedora 8 で akelos のチュートリアル (その2)

前回は、akelos導入、チュートリアル用のbooklinkをセットアップをしてbook/authorの追加、更新、削除までやりましたが、今回は、book/authorの関連付けです。 【book/a …

no image

その rpm いつインストールしたんだっけ?

rpm をいつ入れたかを見たいときは、以下のコマンドで表示できます。 $ rpm -qa –last このコマンド は、rpm をインストールした日付、時刻を新しいものの順番で表示してくれます。 も …

no image

fetchmail + procmail でメール転送

どこかのメールサーバに届いたメールをなにも考えず全部別のメールサーバに転送したい場合の設定をgoogle、Technoratiで検索したらなかなかみつからなかったのでまとめてみました。 .forwar …