SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

php4の動作環境を作る(CGIとして実行)

問題

php4のシステムを動かす必要があり、環境を作りたいのですが、簡単ですか?

答え

以下、CGIとして動作させる例。

php4を用意する

php4がない環境の場合はまずコンパイルから。

php4.4.9はこちらでダウンロード可能 → https://museum.php.net/php4/

CGI版として動かすので、apacheのモジュールは作らなくてよい。 --enable-fastcgi だけ指定。

php4は、openssl 1.0以上に対応していないので、ssl関連のオプションを除外。

php4は、ldapなど有効にするとコンパイルが大変になるオプションがあるのでなるべくオプションを除外。

prefixつけないと /usr/local/bin などに入ってくるので、php4用の場所を指定する。(アンインストールの時はこのディレクトリを削除すればよい)

例)
'./configure' \
 '--prefix=/usr/local/php4.4.9' \
 '--enable-fastcgi' \
 '--with-libdir=lib64' \
 '--enable-zend-multibyte' \
 '--enable-mbstring' \
 '--enable-mbstr-enc-trans' \
 '--enable-mbregex' \
 '--with-zlib' \
 '--enable-iconv' \
 '--enable-bcmath' \
 '--with-regex=php' \
 '--with-mysql' \
 '--with-curl' \
 '--with-mcrypt' \
 '--enable-memory-limit' \
 "$@"

make して make install する。

Apacheの設定

ubuntuだったら a2enmod cgi、a2enmod actions する。

手動で設定するなら、以下のようなScriptAliasを設定して、

                ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
                <Directory "/usr/lib/cgi-bin">
                        AllowOverride None
                        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                        Require all granted
                </Directory>

VirtualHostなどで以下のような設定をして、

        <Directory /var/www>
                Action php4-cgi /cgi-bin/php4-cgi
                Options FollowSymLinks
                AllowOverride All
                Require all granted
                <FilesMatch \.php$>
                        SetHandler php4-cgi
                </FilesMatch>
                #AddHandler php-cgi .php
        </Directory>

/usr/lib/cgi-bin/ に php を置く。

cp /usr/local/php4.4.9/bin/php /usr/lib/cgi-bin/php4-cgi

apache 再起動

service apache2 restart

動いた

関連するメモ

コメント