TOP  >  スタッフブログ  >  最新エントリー 

当サイトをTOKYOPenにアップグレードしました。

カテゴリ : 
XOOPS
2012-1-13 13:39
これまでXOOPS Cube Legacy2.1.xを使っていたのですが、先ほど当社で開発中のTOKYOPenにアップグレードしました。

TOKYOPenはもともとXOOPS Cube Legacy2.1系をベースに開発されたホダ塾ディストリビューションがベースになっているため、それほど苦労することなくアップグレードできました。

いくつか発生した問題をメモ的にかいておきますと
・日本語がEUC-JPで直書きされてて文字化け→文字コード変換
・Smartyプラグインが見つからなくて真っ白→html/class/smarty/pluginに追加してたプラグインをxoops_trust_path/libs/smartypluginsへ移動
というあたりがメインでしたね。

TOKYOPenは自分たちで開発してるので、できて当たり前といえば当たり前ですが、エラーメッセージを見ながらひとつひとつ対処してけばちゃんと動くようになってよかったです。

11月19日 OSC2011 Tokyo/FallでXOOPS Cubeの新しい風にふれてみませんか

カテゴリ : 
XOOPS
2011-11-14 13:38
最近XOOPS Cube界隈がまた活気づいてきてます!

XOOPS Cube Legacy2.2が正式リリースされたり…
XOOPS Cube Legacy2.2をベースとしたパッケージPack2011の開発がはじまったり…
RYUSでは、XOOPS Cube Legacy2.1をベースとしたTOKYOPenを開発したり…
勉強会も開かれ始めてますよね。

さて、そんないろんな動きがあるXOOPS Cubeですが、もちろん今週末に開催されるオープンソースのお祭り、オープンソースカンファレンス2011 Tokyo/Fallにも参加してます!

オープンソースカンファレンス2011 Tokyo/Fall

XOOPSセッションは19日(土曜)16:15から

おそらく当日は開発者の皆さん、ユーザの皆さんがXOOPSのブースやこのセッションに多数集まると思います。

ぜひ会場に来て、XOOPS Cubeの新しい風を感じてみてください!

XOOPS Cube Legacy2.1ベースのCMS「TOKYOPen」開発中です!

カテゴリ : 
XOOPS
2011-10-25 17:13
現在、RYUSではXOOPS Cube Legacy2.1をベースにして、あらたなCMS「TOKYOPen」を開発しています。

TOKYOPen

先週開催されたXOOPS Cubeサタデーラボでデモを少しみなさんに見てもらったのですが、わりと好評だったようで、さらに開発がんばっていこうとおもってるところです。

このTOKYOPenについての情報は主にfacebookやtwitterで公開することが多いと思いますので、是非facebook, twitterもチェックしてくださいね。

TOKYOPen facebookページ
TOKYOPen twitter

XOOPSサイト大解剖! #002 サイクルベース名無し

カテゴリ : 
XOOPS
2011-10-20 11:58
XOOPSを使って作られているサイトがどのようなモジュールを使っているか紹介します。
今回、ご紹介するのは自転車レビューサイトの「サイクルベース名無し」です。


サイクルベース名無し:自転車レビューサイト
http://cbnanashi.net/cycle/

日本最大のユーザー参加型自転車レビューサイト。サイクルパーツ・ウェア・ツールなどの使用感・インプレが投稿されています。

使われているモジュール

about : pico
http://xoops.peak.ne.jp/md/...

パーツレビュー、お知らせ、など汎用的に利用: newbb
http://xoopscube.jp/module/...

Contact: inquirysp
http://www.xugj.org/modules...

あなたのパーツ見せてください!: myalbum
http://xoops.peak.ne.jp/md/...

XOOPSサイト大解剖! #001 すぎなみ子育てサイト

カテゴリ : 
XOOPS
2011-9-16 10:49
XOOPSを使って作られているサイトがどのようなモジュールを使っているか紹介します。
今回、ご紹介するのは杉並区役所運営の「すぎなみ子育てサイト」です。

すぎなみ子育てサイト

http://www.suginami-kosodat...

使われているモジュール

子育てNAVI・特集・カラムなど: pico
http://xoops.peak.ne.jp/md/...

掲示板: yybbs
http://www.kuri3.net/module...

食育: weblog(d3blog)
http://www.kuri3.net/module...

区からのお知らせ: bulletin
http://xoops.peak.ne.jp/md/...

サイト更新情報: whatsnew
http://linux.ohwada.jp/modu...

イベントカレンダー: piCal
http://xoops.peak.ne.jp/md/...

お問い合わせ: liaise
http://linux.ohwada.jp/modu...

サイトマップ: sitemap
http://xoops.peak.ne.jp/md/...

XOOPS Cubeサタデーラボのfacebookページあります

カテゴリ : 
XOOPS
2011-7-19 11:05
告知してませんでしたが、XOOPS Cubeサタデーラボのfacebookページあります

熱心な参加者の皆さんにささえられて、今度の土曜(2011/07/23)で第17回目になるXOOPS Cubeサタデーラボですが、facebookページがあるのご存知ですか?

けっこう前につくってたんですが、ryus.co.jp でお知らせするのをすっかり忘れてました(^^;

■Facebookでサタラボ最新情報を入手しませんか?


ちょっと今回は実験的に参加申込もfacebook ページからできるようにしてみました。

# 今回は更に実験的に、ATNDでも受け付けてます。

どこでもお好みの方法で申込していただければと思ったんですが、あちこちで申込できるとかえってどこで申込したらいいか迷いますかね?

モジュールを一括アップデートしてくれる超便利なプリロード:RapidModuleUpdate

カテゴリ : 
XOOPS
2011-3-1 12:49

XOOPS Cubeにありそうでなかった機能の一つが、「モジュール一括アップデート」機能です。 モジュールのアップデートを行うとなると、個々のモジュールのアップデートページで ひとつひとつ対応していくことになります。 決まった作業なのに、手作業とは手間ですね。 そこで、モジュールアップデート作業を自動で処理できるようなプラグイン(プリロード)を作りました。

RapidModuleUpdateは、モジュール一括アップデート機能をモジュール管理に追加するプラグイン(プリロード)です。 まずは、そのでも動画をごらんください。30秒で終わります。

このように、RapidModuleUpdateは複数のモジュールアップデート作業を自動化し、なんとも手間いらずです。

インストールの方法も簡単です。FTPでRapidModuleUpdate.class.phpを/preloadフォルダに置くだけで完了です。 あとは、管理者権限でログインして、「モジュール管理」を開いてみてください。 上の動画にあったような一括アップデートのチェックボックスが出ているはずです。

RapidModuleUpdateダウンロード


CentOSのPHP5.1をPHP5.2にアップグレードする方法

カテゴリ : 
PHP
2011-2-22 16:03

CentOSのPHPのデフォルトバージョンは5.1です。なので、PHP5.2にアップデートすることがよくあるので備忘録として手順をまとめておきます。

手順

とりあえずサーバを停止

sudo /etc/init.d/httpd stop
sudo /etc/init.d/mysqld stop

リポジトリを追加する。

sudo vi /etc/yum.repos.d/utterramblings.repo
[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

アップデートをかける。

sudo yum update php -y

実際はここではまりました。ハマった詳細は後述。

リポジトリをOFFにする。enabledを0に書き換えます。

sudo vi /etc/yum.repos.d/utterramblings.repo
[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

サーバを起動する。

sudo /etc/init.d/httpd start
sudo /etc/init.d/mysqld start

はまったところ

yum update phpで次のようなエラーが出てアップデートできずはまりました。

$ sudo yum update php
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons:' ftp.yz.yamagata-u.ac.jp'
 * base:' ftp.yz.yamagata-u.ac.jp'
 * extras:' ftp.yz.yamagata-u.ac.jp'
 * updates:' ftp.yz.yamagata-u.ac.jp'
Excluding Packages from CentOS-5 - Base
Finished
Setting up Update Process
Resolving Dependencies
--> Running transaction check
--> Processing Dependency: php = 5.1.6-27.el5_5.3 for package: php-devel
---> Package php.x86_64 0:5.2.16-jason.1 set to be updated
--> Processing Dependency: php-common = 5.2.16-jason.1 for package: php
--> Processing Dependency: php-cli = 5.2.16-jason.1 for package: php
--> Running transaction check
---> Package php-cli.x86_64 0:5.2.16-jason.1 set to be updated
--> Processing Dependency: php-common = 5.1.6-27.el5_5.3 for package: php-pdo
--> Processing Dependency: php-common = 5.1.6-27.el5_5.3 for package: php-ldap
--> Processing Dependency: php-common = 5.1.6-27.el5_5.3 for package: php-mbstring
--> Processing Dependency: php-common = 5.1.6-27.el5_5.3 for package: php-gd
--> Processing Dependency: php-common = 5.1.6-27.el5_5.3 for package: php-mysql
---> Package php-common.x86_64 0:5.2.16-jason.1 set to be updated
---> Package php-devel.x86_64 0:5.2.16-jason.1 set to be updated
--> Running transaction check
---> Package php-gd.x86_64 0:5.2.16-jason.1 set to be updated
---> Package php-ldap.x86_64 0:5.2.16-jason.1 set to be updated
---> Package php-mbstring.x86_64 0:5.2.16-jason.1 set to be updated
---> Package php-mysql.x86_64 0:5.2.16-jason.1 set to be updated
--> Processing Dependency: libmysqlclient.so.16(libmysqlclient_16)(64bit) for package: php-mysql
--> Processing Dependency: libmysqlclient.so.16()(64bit) for package: php-mysql
---> Package php-pdo.x86_64 0:5.2.16-jason.1 set to be updated
--> Running transaction check
--> Processing Dependency: libmysqlclient.so.15()(64bit) for package: mysql-connector-odbc
--> Processing Dependency: libmysqlclient.so.15()(64bit) for package: perl-DBD-MySQL
--> Processing Dependency: libmysqlclient.so.15()(64bit) for package: mysql-server
--> Processing Dependency: libmysqlclient.so.15()(64bit) for package: libdbi-dbd-mysql
--> Processing Dependency: libmysqlclient.so.15(libmysqlclient_15)(64bit) for package: mysql-connector-odbc
--> Processing Dependency: libmysqlclient.so.15(libmysqlclient_15)(64bit) for package: perl-DBD-MySQL
--> Processing Dependency: libmysqlclient.so.15(libmysqlclient_15)(64bit) for package: mysql-server
--> Processing Dependency: libmysqlclient.so.15(libmysqlclient_15)(64bit) for package: libdbi-dbd-mysql
--> Processing Dependency: libmysqlclient_r.so.15()(64bit) for package: mysql-connector-odbc
--> Processing Dependency: libmysqlclient_r.so.15()(64bit) for package: mysql-server
--> Processing Dependency: libmysqlclient_r.so.15()(64bit) for package: MySQL-python
--> Processing Dependency: libmysqlclient_r.so.15(libmysqlclient_15)(64bit) for package: mysql-connector-odbc
--> Processing Dependency: libmysqlclient_r.so.15(libmysqlclient_15)(64bit) for package: mysql-server
--> Processing Dependency: libmysqlclient_r.so.15(libmysqlclient_15)(64bit) for package: MySQL-python
---> Package mysql.x86_64 0:5.1.52-jason.1 set to be updated
--> Running transaction check
---> Package mysql-server.x86_64 0:5.1.52-jason.1 set to be updated
---> Package mysqlclient15.x86_64 0:5.0.91-1.jason.1 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================================================================================================
 Package                                          Arch                                      Version                                             Repository                                         Size
========================================================================================================================================================================================================
Updating:
 php                                              x86_64                                    5.2.16-jason.1                                      utterramblings                                    3.8 M
Installing for dependencies:
 mysqlclient15                                    x86_64                                    5.0.91-1.jason.1                                    utterramblings                                    2.0 M
Updating for dependencies:
 mysql                                            x86_64                                    5.1.52-jason.1                                      utterramblings                                    3.5 M
 mysql-server                                     x86_64                                    5.1.52-jason.1                                      utterramblings                                     13 M
 php-cli                                          x86_64                                    5.2.16-jason.1                                      utterramblings                                    2.6 M
 php-common                                       x86_64                                    5.2.16-jason.1                                      utterramblings                                    522 k
 php-devel                                        x86_64                                    5.2.16-jason.1                                      utterramblings                                    557 k
 php-gd                                           x86_64                                    5.2.16-jason.1                                      utterramblings                                    348 k
 php-ldap                                         x86_64                                    5.2.16-jason.1                                      utterramblings                                     63 k
 php-mbstring                                     x86_64                                    5.2.16-jason.1                                      utterramblings                                    1.4 M
 php-mysql                                        x86_64                                    5.2.16-jason.1                                      utterramblings                                    280 k
 php-pdo                                          x86_64                                    5.2.16-jason.1                                      utterramblings                                    169 k

Transaction Summary
========================================================================================================================================================================================================
Install       1 Package(s)
Upgrade      11 Package(s)

Total size: 28 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test


Transaction Check Error:
  file /etc/my.cnf from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/man/man1/my_print_defaults.1.gz from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/man/man1/mysql.1.gz from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/man/man1/mysql_config.1.gz from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/man/man1/mysql_find_rows.1.gz from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/man/man1/mysql_waitpid.1.gz from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/man/man1/mysqlaccess.1.gz from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/man/man1/mysqladmin.1.gz from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/man/man1/mysqldump.1.gz from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/man/man1/mysqlshow.1.gz from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/charsets/Index.xml from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/charsets/cp1250.xml from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/czech/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/danish/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/dutch/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/english/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/estonian/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/french/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/german/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/greek/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/hungarian/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/italian/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/japanese/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/korean/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/norwegian-ny/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/norwegian/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/polish/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/portuguese/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/romanian/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/russian/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/serbian/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/slovak/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/spanish/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/swedish/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
  file /usr/share/mysql/ukrainian/errmsg.sys from install of mysql-5.1.52-jason.1.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386

Error Summary
-------------

どうやらこれは、mysql.x86_64とmysql.i386がコンフリクトしているとのことのようです。 mysql.i386を使ってない場合、yum removeしていいとのことでした。

mysqlのどもパッケージは入っているか確認します。

$ yum list installed | grep mysql
libdbi-dbd-mysql.x86_64                   0.8.1a-1.2.2                 installed
mysql.i386                                5.0.77-4.el5_5.4             installed
mysql.x86_64                              5.0.77-4.el5_5.4             installed
mysql-connector-odbc.x86_64               3.51.26r1127-1.el5           installed
mysql-server.x86_64                       5.0.77-4.el5_5.4             installed
php-mysql.x86_64                          5.1.6-27.el5_5.3             installed

.i386なのはmysql.i386だけでした。次に、yum remove(アンインストール)するまえに本当に、使ってないか確認します。

$ mysql --version
mysql  Ver 14.14 Distrib 5.1.52, for redhat-linux-gnu (x86_64) using readline 5.1

i386は使われていなく、x86_64が使われていることが分かりましたので、yum removeします。

$ sudo yum remove mysql.i386
Loaded plugins: fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package mysql.i386 0:5.0.77-4.el5_5.4 set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================================================================================================
 Package                                     Arch                                       Version                                                   Repository                                       Size
========================================================================================================================================================================================================
Removing:
 mysql                                       i386                                       5.0.77-4.el5_5.4                                          installed                                       7.9 M

Transaction Summary
========================================================================================================================================================================================================
Remove        1 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : mysql                                                                                                                                                                            1/1 

Removed:
  mysql.i386 0:5.0.77-4.el5_5.4    

アンインストールされたようです。

一応、yum list installedでremoveされたか確認します。

$ yum list installed | grep mysql
libdbi-dbd-mysql.x86_64                   0.8.1a-1.2.2                 installed
mysql.i386                                5.0.77-4.el5_5.4             installed
mysql.x86_64                              5.0.77-4.el5_5.4             installed
mysql-connector-odbc.x86_64               3.51.26r1127-1.el5           installed
mysql-server.x86_64                       5.0.77-4.el5_5.4             installed
php-mysql.x86_64                          5.1.6-27.el5_5.3             installed

この後、再度 yum update phpをしたらうまくPHPがアップデートされました。


トラブル解決2件:SSHにログインできない& svn upできない

カテゴリ : 
技術全般
2010-12-1 13:09

SSHにログインしようとするとToo many authentication failuresと言われる

MacのターミナルでSSHにログインしようとすると次のようなメッセージが出てログインできません。

Received disconnect from XXX.XXX.XXX.XXX: 2: Too many authentication failures for *username*

このように解決しました

Macのターミナルを起動

$ ssh-add -D
$ open ~/.ssh/config
# お使いのエディタがあればそれでひらいてください。
# configファイルが無ければ作ってください。テキストでいいです。

configファイルの最初に以下の行を追加

IdentitiesOnly yes

svn upするとsvn: access to '*url*' forbiddenと言われる

svn upしようとすると、svn: access to '*url*' forbiddenと言われて、アップデートが失敗しました。 他のマシンで同じようにsvn upしたらできたので、問題が起きたPCの問題だと分かりました。

このように解決しました

前回、svn upしたユーザが違っていたのが問題だったようです。 前回ユーザ suin で sudo svn up していたのに、今回は root で svn up しようとしました。 そこで、suinユーザで sudo svn up したら、問題なくアップデートできました。


mainfile.phpをサイトごとに切り替える開発テクニック

カテゴリ : 
XOOPS
2010-11-1 17:40

mainfile.phpはXOOPSの設定ファイルで、XOOPSのパスやデータベースのアカウント情報などが書かれています。これらの設定情報は、当然 環境に依存しています。

開発フローを、開発→ステージング→プロダクションという流れでやる場合、同じサイトが少なくとも3つ以上できてしまいます。そうすると、mainfile.phpも複数できあがるわけです。ところが、XOOPS Cube Legacyはサイトプロフィールという概念がないため、mainfile.phpの取り扱いは悩ましいものがあります。(他のCMS、Drupalなどではあると聞いています。)

複数のmainfile.php問題を解決する方法はいくつか考えられます。

1. どの環境もそっくりの環境にする

XOOPS_ROOT_PATHなどはdirname(__FILE__)で解決し、データベースのアカウント情報はどのサーバでも共通のものにするという手法です。 ただ、この方法だとチームで開発に取り組む場合、あまりうまくいきません。SVNで管理しているサイトだと、お互いのmainfile.phpを上書きしあう心配があります。

2. mainfile.phpはSVNで管理しない

mainfile.phpは環境依存が強いため、SVNでは管理しないようにしておく方法があります。こうしておくと、チームでお互いのmainfile.phpを上書きする心配もありません。ところが、この方法では、リポジトリにmainfile.phpがないのが欠点になります。mainfile.phpが無いので、チェックアウトしてきても直ぐに動かせません。また、そのサイト全体で使われている定数をmainfile.phpに書いておくことがありますが、定数をいちいち手動で追加しなければなりません。(本来、環境依存ではない定数は、/settings/definition.phpに書くべきですが。)

そこで、今回紹介するのは、mainfile.phpをサイトごとに切り替える方法です。

まず、サイトごとのmainfile.phpを適当に名前を変更して、settingsの下に置きます。 例えば、今ローカル環境にあるmainfile.phpは開発環境なので、名前をmainfile.dev.phpに変えて、settingsに移動します。

.
├── mainfile.php
├── settings
│   ├── mainfile.dev.php
│   ├── mainfile.stag.php
│   └── mainfile.prod.php
(略)

次に、XOOPS_ROOT_PATHに空のmainfile.phpを作り、そこに下のコードをコピペします。

<?php

require XoopsProfiler::getProfile();

class XoopsProfiler
{
	// ホスト名 => ファイル名
	protected static $map = array(
		'suinasia.local' => 'mainfile.dev.php', // 開発
		'stag.suin.asia' => 'mainfile.stag.php', // ステージング
		'suin.asia'      => 'mainfile.prod.php', // プロダクション
	);

	public static function getProfile()
	{
		$xoopsRootPath = dirname(__FILE__);
		$serverName = $_SERVER['SERVER_NAME'];
		$ds = DIRECTORY_SEPARATOR;

		if ( !isset(self::$map[$serverName]) )
		{
			trigger_error("Profile not found.");
			die;
		}

		$mainfile = self::$map[$serverName];
		$path = $xoopsRootPath.$ds.'settings'.$ds.$mainfile;

		return $path;
	}

}

あとは、$map配列のところを適宜書き換えるだけです。 配列のキーはホスト名で、値はそのホストで使うmainfile.phpになります。

上のコードを少し書き換えれば、開発環境でも複数のデータベースを簡単に切り替えたり、いろいろ応用できると思います。


RYUS運営サイト
うさぎにもできるXOOPS Cube入門♪ TOKYOPen
お客様事例
XOOPS Cubeサタデーラボ
XOOPS Cube Link
XOOPS Cube Official Web Site