2012年11月19日月曜日

BSDの寄り道#3 WordPress の導入

WordPressをOpenBSD上で動作させ、ブログのサーバーとして稼働し始めた。

バックエンド(と言うのかな、ブログデータの管理を指す)に MySQL を立ち上げ、root では無いユーザーを定義(アカウントは内緒にするのが一般的でしょう)。
で、WordPress で使う database を定義しておき、あとは WordPress のインストーラ任せ。

参考にしたのはこちら 「WordPress_のインストール

レンタルサーバーでは無いので、「MySQL クライアントの利用」を参照し、順番に設定していった。

で、現在、「OpenBSDを使う!」が動き出している。このページを使って OpenBSD そのもののインストールや、各種アプリケーションの導入について、ここよりも詳しく紹介していきたいと思う。



2012年11月13日火曜日

BSDの寄り道#2 apache2 + PHP5

OpenBSD+Apache2+PHP5 の場合、apache2 の httpd.conf に PHP モジュールの設定をすると、以下のメッセージが出力される場合がある。
# apachectl2 start
/usr/local/sbin/httpd2:/usr/local/lib/php-5.3/libphp5.so: undefined symbol 'ap_block_alarms'
/usr/local/sbin/httpd2:/usr/local/lib/php-5.3/libphp5.so: undefined symbol 'ap_unblock_alarms'
:
:
:
/usr/local/sbin/httpd2:/usr/local/lib/php-5.3/libphp5.so: undefined symbol 'ap_reset_timeout'
/usr/local/sbin/httpd2:/usr/local/lib/php-5.3/libphp5.so: undefined symbol 'ap_unblock_alarms'
httpd2: Syntax error on line 117 of /etc/apache2/httpd2.conf: Cannot load /usr/local/lib/php-5.3/libphp5.so into server: Cannot load specified object

これは PHP5 が Apache1.3用に Build されている為、ライブラリの参照に失敗しているようだ。
対策として、OpenBSD の Package ではなく Ports でのインストールを行う事とし、その際に FLAVOR を set する。具体的には、
# FLAVOR='ap2' ; export FLAVOR
# make
# make install
/usr/local/lib/php-5.3/ にある libphp5.so を httpd.conf に登録
LoadModule php5_module /usr/local/lib/php5-3/libphp.so
AddType application/x-httpd-php .php .phtml

# apachectl2 start
#

上記のように、FLAVOR環境変数で ap2 (apache2オプションなんだろね) という設定を有効にしてから build する。
この後、php で書かれたコンテンツが正常に表示される事を確認した。メデタシ

参照: OpenBSD FAQ 8 - 一般的な質問

BSD系の寄り道

OpenBSDを使った自宅サーバーを構築中。
初めは NetBSD6.0 を使っていたが、何故か一晩でダウンする現象に見舞われ、OpenBSD5.2に入替え、現在は問題無し。
さらに、夜中のHDD音がうるさいので、32GBのSSD に交換し、無音サーバーになった。
※厳密には、ファン音が微かに聞こえるのだが、これは無視出来る程度。

OpenBSD はサーバー構築中に 5.2 がリリースされたので、snapshot からリリース版に速攻で移行した。

現在は apache2.22 が稼働中。ブログ機能を追加する為に、PHP5, MySQL, WordPress をインストール作業中。ところどころに落とし穴有り(ハマっている最中)。

2012年5月1日火曜日

gcc SH2クロス開発環境

arm Linux 構築用の環境も作成していかなければならないのだが、SH2Aモジュールの為のクロス開発環境も必要なので、ここにメモを残しておく。

開発環境は Windows上の Cygwin を使う。Ubuntu 等のLinuxネイティブ環境上で作るのも良いが、今使っているPC上には Cygwin しか動かしていないので、この環境をメインとする。

gcc 4.5.0
binutlis 2.20
ライブラリは newlib(1.18.0)
ターゲット:sh-hitachi-elf , v850-nec-elf の2種類
オプション:--disable-nls --enable-languages=c --with-gmp=/usr/local --enable-multilib --enable-interwork --with-newlib --with-headers=../newlib-1.18.0/newlib/libc/include

上記にあるように、gmp も Cygwin にインストールしてある。また、mpfr, mpc も同様。これらは gcc4以上を構築する場合は必須。

作成する方によっては、インストール先ディレクトリをターゲット単位に分けて PATH を追加している例も多いと思う。 が、手元の環境では --prefix=/usr/local で全部放り込んでいる。 1) Cygwin なので、環境構築に失敗したら、また最初から作り直せば良いと考えている 2) PATH を追加していく必要が無い というのがメリットか。

このような適当な環境構築であっても、CQ出版の雑誌付録の V850 / SH2A 基板で使うアプリケーションをビルドするには問題無い。