RedHat Linux 7.3/8.0/9 におけるPukiWikiの導入手順

手順

  • 前提
    • http://localhost/pukiwiki/ で利用できるようにする。
      # cd /var/www/html/
      # tar fxvpz pukiwiki1.3.4.tar.gz
      # ln -s pukiwiki1.3.4 pukiwiki
      # chown -R apache.apache pukiwiki
      # cd pukiwiki
      # ln -s pukiwiki.php index.php
      ※1.4.4以降のPukiWikiには、index.phpファイルが同梱されています。このため、index.phpという名前でpukiwiki.phpへのリンクを作成する必要がありません。(最後の行が不要です)
  • 環境設定
    # vi pukiwiki.ini.php

/etc/php.ini(設定ファイル: PHP 4.0 の場合)

Red Hat
version
キー修正前修正後説明
7.3file_uploadsOffOnアップロードできるようにする
short_open_tagOn
register_globalsOn
8.0file_uploadsOn
short_open_tagOffOn<?のタグを受け付けるようにする
register_globalsOff必要ならば修正
  • 設定ファイルの反映について
    • PHP の起動時に読み込まれます。
    • PHPのサーバーモジュール版では、このファイルは、Web サーバーの起動時に一度だけ読み込まれます。
    • CGIとCLI版では、起動する度にこのファイルが読み込まれます。

      ということなので、既にApacheが稼動していて、変更が反映されない場合には、restartしてみて下さい。

  • short_open_tag

    PukiWiki 1.3.3 以降を適用すると、Off でも稼動するようになります。

RedHat Linux 8.0/9 での考慮点

PHPmbstringを有効にしていないので、自力でリビルドして対処する。ソースを取得して、リビルドした上で、再導入して当座を凌ぐ。かと言って、有効じゃなくても BracketName での日本語の取り扱いは、問題ありません。現状だと #lookup で被害を被ります。

SRPMの取得

RedHatCD-ROMファイル名
8.04枚目php-4.2.2-8.0.5.src.rpm
96枚目php-4.2.2-17.src.rpm

ビルドオプションの変更

# rpm -i php-4.2.2-XXX.src.rpm
# cd /usr/src/redhat/SPECS
# vi php-4.2.2-XXX.spec
--with-ldap=shared \
--enable-mbstring \
--enable-mbstr-enc-trans \
--with-mysql=shared,%{_prefix} \

上の --enable-mbstring \--enable-mbstr-enc-trans \ の2行を追加する。

ビルドに必要なパッケージのインストール

フルインストールしていない方などは、以下のパッケージが必要になるので、別途インストールする。

  • bzip2-devel-1.0.2-5
  • freetype-devel-2.1.2-7
  • gd-devel-1.8.4-9
  • httpd-devel-2.0.40-11
  • imap-devel-2001a-15
  • libjpeg-devel-6b-21
  • libpng-devel-1.2.2-8
  • mysql-devel-3.23.54a-4
  • net-snmp-devel-5.0.6-8.80.2
  • postgresql-devel-7.2.3-5.80
  • pspell-devel-0.12.2-14
  • unixODBC-devel-2.2.2-3

ビルドの実行

# rpmbuild -ba php-4.2.2-8.0.5.spec
# cd ../RPMS/i386

/usr/src/redhat/RPMS/i386 には、以下の RPM が完成している。

RedHat 8.0
php-4.2.2-8.0.5.i386.rpm
php-devel-4.2.2-8.0.5.i386.rpm
php-imap-4.2.2-8.0.5.i386.rpm
php-ldap-4.2.2-8.0.5.i386.rpm
php-manual-4.2.2-8.0.5.i386.rpm
php-mysql-4.2.2-8.0.5.i386.rpm
php-odbc-4.2.2-8.0.5.i386.rpm
php-pgsql-4.2.2-8.0.5.i386.rpm
php-snmp-4.2.2-8.0.5.i386.rpm
RedHat 9
php-4.2.2-17.i386.rpm
php-debuginfo-4.2.2-17.i386.rpm
php-devel-4.2.2-17.i386.rpm
php-imap-4.2.2-17.i386.rpm
php-ldap-4.2.2-17.i386.rpm
php-manual-4.2.2-17.i386.rpm
php-mysql-4.2.2-17.i386.rpm
php-odbc-4.2.2-17.i386.rpm
php-pgsql-4.2.2-17.i386.rpm
php-snmp-4.2.2-17.i386.rpm

導入

オプションを変更しただけなので、そのまま強制的に導入してしまって対処する。本来は、このビルドオプションが有効となるもののみ導入すればよいわけですが。

# rpm -ivh --force php-*.rpm
Preparing...                ########################################### [100%]
   1:php                    ########################################### [ 11%]
   2:php-devel              ########################################### [ 22%]
   3:php-imap               ########################################### [ 33%]
   4:php-ldap               ########################################### [ 44%]
   5:php-manual             ########################################### [ 56%]
   6:php-mysql              ########################################### [ 67%]
   7:php-odbc               ########################################### [ 78%]
   8:php-pgsql              ########################################### [ 89%]
   9:php-snmp               ########################################### [100%]

/etc/php.iniでmbstringセクションを有効にする。

PHP4.3.0を導入する場合の手順

上記の手順に沿ってPHPmbstringを有効にしても,日本語処理がうまくいかない場合がある。(原因は不明)現在PHPの最新版は4.3.0だが,付属のRPM化するパッチは正常に動作しない。よって,RPMに頼らずに無理やりソースから導入する場合の手順を示す。

PHP関連のRPMを削除する。GUIからパッケージ追加削除ツールを使うか,以下のコマンドラインを用いる。

# rpm -qa | grep php|xargs rpm -e

ソースを入手する。必要なファイルは,httpd-2.0.44.tar.gz及びphp-4.3.0.tar.gzの二つ。まずApache2のソースを展開する。

# tar xvzf httpd-2.0.44.tar.gz

PHP4.3.0のソースを展開し,コンパイルする。

# tar xvzf php-4.3.0.tar.gz
# ./configure --enable-mbstring --enable-mbstr-enc-trans \
 --enable-mbregex --enable-zend-multibyte --with-pgsql \
 --with-apxs2=/usr/sbin/apxs --without-gd
# make

このままではインストールできないので,httpd-2.0.44/build/instdso.sh*1を/usr/lib/httpd/build/にコピーする。

# cp /usr/local/src/httpd-2.0.44/build/instdso.sh /usr/lib/httpd/build

インストールする。

# make install

/etc/httpd/conf/httpd.confを編集し,以下の行を足す。

Addtype application/x-httpd-php .php

/usr/local/lib/php.iniの[mbstring]セクションを編集する。コメントを生かし,mbstring.http_outputをEUC-JPにする。

Apacheを再起動する。

/etc/init.d/httpd restart

PHP 4.2.2 と 4.3.1 との比較 (ext/mbstring/)

  • mbfilter.c
  • mbfilter_ja.h
  • mbfilter_ja.c

が大幅に修正されています。この修正により、肥大化が収まったのでしょうかね?

RedHat 9 となっても、PHP 4.3.x の採用は見送られているのが現状ですが、ぜひ、導入したいものです。


*1 これは、RedHat 9では対応されています。このinstdso.shが無ければ、そもそも、Apacheの DSOもビルドできません。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-12-05 (月) 02:52:16
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.296 sec.

OSDN