MODXを動かしたい on FreeBSD その2


作成日:2007/5/20
その1からの続き。
fastcgiのインストール
phpの実行を早くしてくれるfastcgi2.4.0をインストール。
% tar zxvf fcgi-2.4.0.tar.gz % cd fcgi-2.4.0 % ./configure --prefix=/home/hoge/root % make % make install % rehash
インストール完了。
phpで使うモジュールのインストール
ここからはPHPに使うモジュール達のインストールが続く。
まずはzlib 1.2.3。
% tar zxvf zlib-1.2.3.tar.gz % cd zlib-1.2.3 % ./configure --shared --prefix=/home/hoge/root % make % make install % rehash
freetype 2.3.0。
% tar zxvf ./freetype-2.3.0.tar.gz % cd freetype-2.3.0 % ./configure --prefix=/home/hoge/root % make % make install % rehash
libjpeg 6b。
% tar zxvf jpegsrc.v6b.tar.gz % cd jpeg-6b/ % ./configure --enable-shared --prefix=/home/hoge/root % make % make install % rehash
libpng 1.2.15。
% tar zxvf libpng-1.2.15.tar.gz % cd libpng-1.2.15 % ./configure --prefix=/home/hoge/root % make % make install % rehash
gd 2.0.33。
% tar zxvf gd-2.0.33.tar.gz % cd gd-2.0.33 % ./configure --with-jpeg --with-freetype --with-png --prefix=/home/hoge/root % make gcc -DHAVE_CONFIG_H -I. -I. -I. -I/home/hoge/root/include/freetype2 -I/home/hoge/root/include -I/usr/X11R6/include -g -O2 -MT gdkanji.lo -MD -MP -MF .deps/gdkanji.Tpo -c gdkanji.c -fPIC -DPIC -o .libs/gdkanji.lo gdkanji.c:30: error: conflicting types for 'libiconv' /usr/local/include/iconv.h:82: error: previous declaration of 'libiconv' was here gdkanji.c:30: error: conflicting types for 'libiconv' /usr/local/include/iconv.h:82: error: previous declaration of 'libiconv' was here make[2]: *** [gdkanji.lo] Error 1 make[2]: Leaving directory `/usr/home/hoge/src/gd/gd-2.0.33' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/home/hoge/src/gd/gd-2.0.33' make: *** [all] Error 2
libiconvが古いっぽい?
なので新しいlibiconv 1.11入れる。
% tar zxvf libiconv-1.11.tar.gz % cd libiconv-1.11 % ./configure --prefix=/home/hoge/root % make % make install % rehash
再度gdにリベンジ。
% ./configure --with-jpeg --with-freetype --with-png --prefix=/home/hoge/root % make % make install % rehash
というわけで一通りインストール完了。
mysqlのインストール
MODxが利用するDBのmysql 5.0.33をインストール。
% tar zxvf mysql-5.0.33.tar.gz % cd mysql-5.0.33 % ./configure --prefix=/home/hoge/root/mysql-5.0.33 --with-mysqld-user=hoge --with-charset=utf8 --with-extra-charsets=all % gmake …略… ha_innodb.o: In function `check_trx_exists(THD *)': ha_innodb.o(.text+0x502): undefined reference to `ut_dbg_zero' ha_innodb.o: In function `innobase_query_caching_of_table_permitted(THD *, char *, unsigned int, unsigned long long *)': ha_innodb.o(.text+0x5cf): undefined reference to `ut_dbg_zero' ha_innodb.o(.text+0x5da): undefined reference to `ut_dbg_zero' ha_innodb.o: In function `innobase_init(void)': ha_innodb.o(.text+0x91b): undefined reference to `ut_dbg_zero' ha_innodb.o(.text+0x9e6): undefined reference to `ut_dbg_zero' ha_innodb.o(.text+0xc50): more undefined references to `ut_dbg_zero' follow gmake[4]: *** [mysqld] Error 1 gmake[4]: Leaving directory `/usr/home/hoge/src/mysql/mysql-5.0.33/sql' gmake[3]: *** [all-recursive] Error 1 gmake[3]: Leaving directory `/usr/home/hoge/src/mysql/mysql-5.0.33/sql' gmake[2]: *** [all] Error 2 gmake[2]: Leaving directory `/usr/home/hoge/src/mysql/mysql-5.0.33/sql' gmake[1]: *** [all-recursive] Error 1 gmake[1]: Leaving directory `/usr/home/hoge/src/mysql/mysql-5.0.33' gmake: *** [all] Error 2
エラーでまくり。しかも原因がわからない。
そういやlighttpd入れるときにgccのバージョンが低すぎたので、新しいgcc3.4.6を入れた時にc++を外してコンパイルしたのがダメなのかも(MySQLはc++使ってる)。
なので既存のgccを使うように新しく入れたgccのパスを外す。
% setenv PATH /bin:/usr/bin:/usr/local/bin
リベンジ。
% make clean % ./configure --prefix=/home/hoge/root/mysql-5.0.33 --with-mysqld-user=hoge --with-charset=utf8 --with-extra-charsets=all % gmake % gmake install % rehash
インストール後の作業。
自働起動の設定は借りてる共用サーバの仕様に合わせている。
% cd ~/root % ln -s mysql-5.0.33 mysql % ./mysql/bin/mysql_install_db % cp ~/src/mysql/mysql-5.0.33/support-files/mysql.server ~/etc/rc.d/mysql5.server.sh % chmod 755 ~/etc/rc.d/mysql5.server.sh % cd ~/root/mysql/var % cp /home/hoge/src/mysql/mysql-5.0.33/support-files/my-medium.cnf my.cnf % cp my.cnf my.conf.org % vi my.cnf
my.cnfにbind-addressを追加。外から繋げないように127.0.0.1のみbindさせる。
追加するところはここあたり。
[mysqld] port = 3306 bind-address = 127.0.0.1 ←ここ socket = /tmp/mysql.sock
起動してmysql用のrootパスワードの変更。
(OSのrootユーザとは別)
% ~/etc/rc.d/mysql5.server.sh start % /home/hoge/root/mysql/bin/mysqladmin -u root password 'new-passwd'
インストール完了。
phpのインストール
ここでやっとphp 5.2.1のインストール。
mysqlの時に環境変数をいじってるので、phpの作業前に再度ログインしなおす。
% tar zxvf php-5.2.1.tar.gz % cd php-5.2.1 % ./configure --prefix=/home/hoge/root/php-cgi --with-config-file-path=/home/hoge/root/php-cgi/etc --with-mysqli=/home/hoge/root/mysql/bin/mysql_config --with-mysql=/home/hoge/root/mysql --enable-mbstring --enable-mbregex --with-zlib --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-fastcgi --enable-force-cgi-redirect --with-jpeg-dir --disable-ipv6 --without-sqlite --disable-pdo % make % make install
相変わらずコンフィグが超なげぇ。
でも、インストール完了。
APCのインストールその1
phpを実行を早くしてくれるソフト。
本来phpを実行するときは毎回ソースコードを読み込んで実行するんだけど、一度読み込んだソースをコンパイルしてキャッシュしてくれるらしい。
% tar zxvf APC-3.0.12p2.tgz % cd APC-3.0.12p2 % /home/hoge/root/php-cgi/bin/phpize Configuring for: PHP Api Version: 20041225 Zend Module Api No: 20060613 Zend Extension Api No: 220060519 Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable is set correctly and then rerun this script. %
autoconfが無いと怒られました。
autoconfのインストール
autoconf 2.61のインストール。
% tar zxvf autoconf-2.61.tar.gz % cd autoconf-2.61 % ./configure --prefix=/home/hoge/root % make % make install % rehash
インストール完了。
APCのインストールその2
もう一回APCのインストール。
% /home/hoge/root/php-cgi/bin/phpize % ./configure --prefix=/home/hoge/root/php-cgi --enable-apc-mmap --enable -apc -with-php-config=/home/hoge/root/php-cgi/bin/php-config % make % make install
インストール完了。
これで終了
一応この環境を用意したFreeBSD 4.10上でMODxを動かしています。
(APCとか絶対必要なわけじゃないけど、個人的にはお勧め)
細かい設定とかは省きまくりで、インストールの部分だけ記載してるので実は余り役に立たないかもしれない。

にしても結構面倒…レンタルサーバでphpとmysql使えますよーって所を借りるほうがどれだけ楽か。
ここまでして自力の環境構築にこだわるなんてマゾだな。自分なんだけど。