1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CentOSにPHP5.3系とMySQL4.0系を入れる

Last updated at Posted at 2015-09-30

運用中本番環境と同規模の環境を構築したい人生だった

ただしサーバのrootはおろかconsole接続もできないものとする

運用中本番環境について

判明している大まかな条件は下表のとおり。

module version
OS Kernel 2.4.29-rc2 #1 SMP Thu May 8 15:42:53 JST 2008 i686
apache 不明 Apache API Version:19990320
MySQL 4.0.24-standard-log
php 5.3.19
phpMyAdmin phpMyAdmin 2.7.0-pl1
見る人が見れば分かる。おっと全裸になるなよ。

結構な時間や手間をかけて、debian3.1(sarge)や、CentOS3.9で上記環境再現に挑戦するもことごとく失敗。
かなり真理に近づいたけど、libXML2のコンパイルでコケるので、Kernel 2.4.xでの実現は色々とムリと判断。妥協する。現実は無情である。
Linux centos 2.6.18-406.el5 #1 SMP Tue Jun 2 17:26:20 EDT 2015 i686
それほど大きな差にはならないと思いたい。

実際に開発環境を作る

OSインストール

VMWare上に構築するよー。OSのISOをここから取り寄せる。
しかしnetinstallerだとVMWareの自動インストーラーが反応しないようだ。仕方ないのでCUIインストールウィザードで入れる。この辺の詳細は割愛。今回は最小パッケージ構成にした。インストール元はftpを選択する。

インストール元FTP設定情報
server:ftp.riken.jp
directory:Linux/centos/5.11/isos/i386/

rootでログイン後、即

一般ユーザー追加とsudo権限追加
$ adduser <一般ユーザー名>
$ passwd <パスワード>
$ cd /usr/sbin
$ ./visudo

一度パッケージを全更新しておく。
sudo yum update

ソースからrpmを作る

rpm製造はrootで作業をするものではないらしい。うっかり環境汚染するからだろうね。そのため、以下をユーザー権限で実行する。

checkinstallの実行環境変数設定とビルドを実施
$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}  
$ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
$ wget http://asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz
$ sudo yum install rpm-build gcc gcc-c++ glibc glibc-devel
$ tar zxvf ./checkinstall.tar.gz
$ cd ./checkinstall-1.6.2
$ ./configure
$ make
$ make install

これで
$ sudo /usr/local/sbin/checkinstall
が使えるようになる。
今後、checkinstallで作成したrpmは/home/<user>/rpmbuild/RPMSに保存される。

php5.3.19のrpm密造

ソースのダウンロードと展開
$ wget http://museum.php.net/php5/php-5.3.19.tar.gz
$ tar zxvf ./php-5.3.19.tar.gz
$ cd ./php-5.3.19
phpのビルドに必要なモジュール一式のインストール
$ sudo yum install http-devel libxml2-devel openssl-devel 
$ sudo yum install freetype 
$ sudo yum install gdbm-devel libXpm-devel libjpeg-devel libpng-devel freetype-devel
$ sudo yum install curl-devel libmcrypt-devel libxslt-devel

phpのビルド用に使わないけどMySQL5.0.95を入れておく。本番環境のPDOドライバが5系のため。理不尽である。

$ sudo yum install mysql mysql-devel
本番環境と同じオプションでconfigureとmake
$ ./configure --with-apxs2  --disable-ipv6 --enable-mbstring --enable-mbregex --with-gd --with-zlib  --with-mcrypt --without-pgsql --enable-libxml --enable-xml --enable-dom --with-xsl --with-sqlite --with-mysql --with-pdo-mysql --with-pcre-regex --with-openssl --with-curl --with-iconv --enable-json --enable-pdo --with-pdo-sqlite --without-pdo-odbc --enable-exif --disable-fileinfo --enable-gd-jis-conv --enable-sqlite-utf8 --enable-zend-multibyte --with-db1 --with-gdbm
$ make
$ sudo /usr/local/sbin/checkinstall

php-5.3.19-1.i386.rpmの密造完了。まだここではインストールしない。

wwwサーバ周辺を準備する

apache2(httpd)を入れる
$ sudo yum install httpd
$ sudo /sbin/chkconfig httpd on
自家製php5.3.19を入れる
$ sudo rpm -i --force ./php-5.3.19-1.i386.rpm

httpdとの依存関係が解消できないので 新しいほうで強制上書き する。あとはphpハンドラを書いて終了。

/etc/httpd/conf/httpd.conf
AddType application/x-httpd-php .php

httpdをroot以外で動かす

httpd用のユーザを追加する
$ sudo /usr/sbin/groupadd httpd
$ sudo /usr/sbin/useradd -g httpd -d /var/empty/httpd -s /sbin/nologin httpd
/etc/httpd/conf/httpd.conf
User httpd
Group httpd
最後の仕上げ
$ sudo /bin/chown -R httpd:httpd /var/www/
$ sudo /etc/init.d/httpd restart

MySQL4.0を入れる

MySQL5をアンインストール
$ sudo yum remove mysql

依存モジュールが有ると警告されるが強気で全部消す。

MySQL4を入手
$ wget ftp://ftp.pbone.net/mirror/mirror.cheetaweb.com/MySQL/4.0/MySQL-server-4.0.24-0.i386.rpm
$ wget http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.0/MySQL-shared-compat-5.0.96-1.rhel5.i386.rpm
$ sudo rpm --test -ihv MySQL-shared-compat-5.0.86-1.rhel5.i386.rpm
$ sudo rpm -ivh MySQL-shared-compat-5.0.86-1.rhel5.i386.rpm
$ sudo rpm -ivh MySQL-server-4.0.24-0.i386.rpm

こちらを参考にした。
古いMySQLは公式で配られていないので注意すること。
こちらなどを参考にする。

phpMyAdminを入れる

本番環境のphpMyAdminは2.7.0-pl1だが、見つけられなかったので2.11.11.3を入れる。

$ wget wget https://files.phpmyadmin.net/phpMyAdmin/2.11.11.3/phpMyAdmin-2.11.11.3-all-languages.tar.gz --no-check-certificate
$ sudo tar zxvf phpMyAdmin-2.11.11.3-all-languages.tar.gz
$ sudo mv phpMyAdmin-2.11.11.3-all-languages myadmin
$ sudo mv myadmin /var/www/html 

色々不穏なエラーが出ているが、一通り動いたのでミッションコンプリート。

詰まったらこの辺でも探して頑張ろう。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?