PHP+MySQL+Nucleus on Panther

  • 投稿日:
  • by
  • カテゴリ:

最近巷ではWikiblogが流行っているらしい!
ということで「blogってどんなもんだろう?」ということで使ってみることにする。

そして、どうせOSX使ってるんだからPanther上で動かしてみよう!という試みである。 これはつまりどういうことかというと、プロバイダーにスペース借りなくてもMacをWebサーバとして使えるということである (GlovalなIPは必要)。 WikiとblogについてはWiki 遊びのお砂場さんRYOBLOGさんにわかりやすくまとめられている。

さて、blogにもいろんな種類があるらしいが、ここではNucleusというオープンソースのblogを取り上げる。
理由は特になし。なんとなく。
(追記:自宅サーバー公開がうまくいかず、借りてるサーバに乗せようとしたら必要なシステム要件を満たしていないことが後日判明。当サイトはMovable Typeで動いてます・・・)

システム要件

NucleusはPHP+MySQL上で動作する。 データをデータベースの形でため込み、 MySQLで読み出してPHPで動的にhtml書き出す感じである。 そこで当然、サーバ上にはPHPとMySQLがインストールされていることが必要となる。

Apache起動・設定

PHPやら何やら言う前に、Apache(Webサーバ)が起動していないとサイトを見ることすらできないので、 「システム環境設定」→「共有」で「パーソナルWeb共有」にチェックを入れる。

動作確認は

% ps ax|grep httpd

として、/usr/sbin/httpdとかいう行が表示されればOK。

次にPHPを使ったりできるようにApacheの設定をいじる。
外部からアクセスしたときに、 自分のホームディレクトリ下の「サイト」ディレクトリ(= ~/Sites/)が見えるようにする。

/etc/httpd/httpd.conf を編集する。 これは管理者権限が必要なので、ターミナル上で動くviなどのエディターを使うか、 通常のエディターを使う場合は次の方法で編集する→管理者権限でのファイル編集

編集内容は以下の通り。

  • DocumentRoot "/Library/WebServer/Documents"という行を
    DocumentRoot "/Users/ユーザー名/Sites"
  • <Directory "/Library/WebServer/Documents">という行を
    <Directory "/Users/ユーザー名/Sites">
  • ScriptAlias /cgi-bin/ "/Library/WebServer/CGI-Executables/"という行を
    ScriptAlias /cgi-bin/ "/Users/ユーザー名/Sites/cgi-bin/"
  • <Directory "/Library/WebServer/CGI-Executables">という行を
    <Directory "/Users/ユーザー名/Sites/cgi-bin/">に変更する

もちろん「ユーザー名」と2バイト文字で打ち込む訳ではなく、あなたのユーザー名に置き換える。

次にPHP、SSL、CGIを使えるようにする。
これも/etc/httpd/httpd.conf を、 超簡単 Mac OS XのローカルでCGI (SSIもPHPも)を参考に変更する。具体的には以下の通り。

  • Options ExecCGI Indexes FollowSymLinks MultiViews
    という行に「Include」という記述を加え、
    Options Includes ExecCGI Indexes FollowSymLinks MultiViews
    に。
  • #AddHandler cgi-script .cgi
    という行の行頭の「#」を外して(コメントアウトを外す)、以下のようにする。
    AddHandler cgi-script .cgi
    に。
  • #LoadModule ssl_module libexec/httpd/libssl.so
    #LoadModule perl_module libexec/httpd/libperl.so
    #LoadModule php4_module libexec/httpd/libphp4.so
    の三行の「#」を外し、以下のようにする。
    LoadModule ssl_module libexec/httpd/libssl.so
    LoadModule perl_module libexec/httpd/libperl.so
    LoadModule php4_module libexec/httpd/libphp4.so
  • #AddModule mod_ssl.c
    #AddModule mod_perl.c
    #AddModule mod_php4.c
    の三行の「#」を外し、以下のようにする。
    AddModule mod_ssl.c
    AddModule mod_perl.c
    AddModule mod_php4.c
  • 以下の2行を付け加える。
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

設定の変更を有効にするため
% sudo apachectl restart
としてApacheを再起動する。

PHPインストール

Pantherには既にPHP4.3.2が入っている。 これが動作するように設定するだけで、一応動くようにはなる。 しかし調べてみるとこのままだと日本語の扱いがうまくないらしく、 設定を変える必要がある模様。

ということで、設定を変更するついでにPHPの最新バージョン4.3.4をインストールすることにする。

  1. http://www.php.net/downloads.phpから、php-4.3.4.tar.gzをダウンロード
  2. 適当な場所で展開
    % tar -zxvf php-4.3.4.tar.gz
  3. % cd php-4.3.4
  4. % ./configure --enable-cli --with-apxs --with-mysql --with-xml --enable-mbstring --enable-mbstr-enc-trans(一行で)
    --disable-cliだと文句を言われたのでenableに
  5. % make
  6. % sudo make install
  7. うまくいったら、phpを有効にするためapacheを再起動
    % sudo apachectl restart

以上。

MySQLインストール

現時点(Dec '03)での最新バージョンは4.0.17。

  1. http://www.mysql.com/downloads/mysql-4.0.htmlの「Mac OS X Package Installer downloads」から「Standard」のmysql-standard-4.0.17.dmgをdownload
  2. mysql-standard-4.0.17.pkgMySQLStartupItem.pkgが入っているので、 両方ともダブルクリックでインストール
  3. % cd /usr/local/mysql
    これらは /usr/local/mysql にインストールされる
  4. sudo chown -R mysql /usr/local/mysql/*
    所有権変更
  5. sudo /Library/StartupItems/MySQL/MySQL start
    デーモン起動
  6. /usr/local/mysql/bin/mysql test
    として、動作しているか確認
    mysql>
    と出たら動作しているので「exit;」と入力して出る
  7. bin/mysqladmin -u root password '任意のパスワード'
    として、管理者パスワードを変更する。この作業をしないと後がうまくいかない。

MySQLStartupItem.pkgはOS起動時にMySQLも起動したりするもの(たぶん)で、5でデーモン起動に使っているもの。

Nucleusインストール・設定

Necleus CMS JapanNecleusマニュアルを参考に作業を進める。

まずNecleus本体を、上記サイトのNeucleus本体のダウンロードよりdownloadする。 ここでは「Nucleus v2.0(日本語版フルパッケージ)」を選ぶ。 ファイル名は031214_nucleus_2_euc-jp.zip(Dec '03現在)。

ファイルは勝手に解凍され(されなければ % unzip ファイル名 で解凍)、ja_nucleus_2_euc-jpというフォルダができるので、 中身を ~/Sites/ (つまりホームディレクトリ下の「サイト」フォルダのこと)に置く。 この場所は、これでなければならないというわけではないのでお好きに変更可能。

  1. % cd ~/Desktop
    (解凍されていなければ
    % unzip 031214_nucleus_2_euc-jp.zip
  2. % cp ja_nucleus_2_euc-jp/* ~/Sites/

config.phpとmediaディレクトリの所有権を変更

  1. % cd ~/Sites
  2. % chmod 666 config.php
  3. % chmod 777 media

これでとりあえずインストールできたはず。
ということで動作確認する。

先程ファイルを ~/Sites/ に置いておいたので
http://localhost/~自分のユーザー名/install.php にアクセスする。 「Nucleus Install」という画面が出ればOK。
以下のように設定する(項目名はうろ覚え)。

  • MySQLログインデータ:MySQLサーバへのログイン情報。
    まだユーザを作ったりしていないはずなので、ユーザ名は「root」パスワードは 上で設定したパスワード、データベース名は好きな名前のものを作成すればいい
  • ディレクトリとURL: 「/Users/ユーザー名/Sites/」と「http://localhost/」
  • ユーザーデータ: サイトを編集する際にアクセスするときのユーザーを作成する。 好きな名前、パスワード等
  • Weblogデータ: 表示されるblogサイト名、その短縮名(英数字のみ)

入力が終了したら「インストールNucleus」とかそんな感じのところを押す。

すると「インストール完了」のメッセージとともに ~/Sites/config.php ファイルを変更すべき内容が表示されるので、 その通り変更する。 また、指示通り ~/Sites/にある install.phpinstall.sql を削除する。

これで http://localhost/nucleus/ にアクセスし、それっぽい画面が表示されたら設定終了 (この例は微妙にカスタマイズしてます)。
あとは好きにいじり倒してみよう!

まとめ

全体的な流れは以下の通り。

  • NucleusはPHP+MySQL上で動作する
  • 従ってPHPとMySQLのインストールが必要
  • その上でNucleus本体をインストール

この作業が終わっても、あくまで箱ができただけである。 この便利そうなツールを使いこなし、役に立ついいサイトを作りたいものですなー。

あと適当に書いているので、指摘、ツッコミ歓迎。
掲示板又はメールでお願いします。