Stop in /usr/ports/www/apache22
カテゴリー: General
2014-05-24
今回
仮想OSのFreeBSD32 7.x 32bit(VirtualPC)を
新規にVirtualboxにFreeBSD 9.x 64bit (Virtualbox)に変更することになりました
なぜ最新の10.xをいれないかというと
ホスト先のさくらインターネットが version 9だからです
portupgradeするとエラーでストップ
最新のportsにしてもエラー
portupgrade -N apache22
...
Stop in /usr/ports/www/apache22
pkg install -f m4
pkg install -f apr
pkg install -f gettext
portupgrade -N apache22
よくわからないけど直った。
どうやら、ほかのパッケージの不具合でmakeできなかったらしい。
追記
CGIが動かない
portsを使わないでbuildした場合はうごいていたので比較して
サーバーログをみると
suexec failure: could not open log file, referer: http://
SUEXEC_LOGFILE=/var/log/httpd/suexec.log から
SUEXEC_LOGFILE=/var/log/httpd-suexec.log
に
ファイル名を変更してみたら解決した。
/etc/pkgtools.cof
これをwwwにおいて
アクセス権 700 に設定し
アクセスして
サーバーエラーがでれば、suexecが機能していない
【結論】
試行錯誤の結論としては portsの設定をがんばるより
FreeBSDでは、apacheとPHPは公式からソースコードもってきて
自分で makeしたものをいれたほうが時間の節約になるし
portsの設定の変更に振り回されないで済む
tar xvf apache_2.2.X.tar.gz
仮想OSのFreeBSD32 7.x 32bit(VirtualPC)を
新規にVirtualboxにFreeBSD 9.x 64bit (Virtualbox)に変更することになりました
なぜ最新の10.xをいれないかというと
ホスト先のさくらインターネットが version 9だからです
portupgradeするとエラーでストップ
最新のportsにしてもエラー
portupgrade -N apache22
...
Stop in /usr/ports/www/apache22
pkg install -f m4
pkg install -f apr
pkg install -f gettext
portupgrade -N apache22
よくわからないけど直った。
どうやら、ほかのパッケージの不具合でmakeできなかったらしい。
追記
CGIが動かない
portsを使わないでbuildした場合はうごいていたので比較して
サーバーログをみると
suexec failure: could not open log file, referer: http://
SUEXEC_LOGFILE=/var/log/httpd/suexec.log から
SUEXEC_LOGFILE=/var/log/httpd-suexec.log
に
ファイル名を変更してみたら解決した。
/etc/pkgtools.cof
## WITH_NAME=yes --> Makefile: .if ${PORT_OPTIONS:MNAME} MAKE_ARGS = { #: 'www/apache*' => [ 'WITH_MPM=prefork', 'WITH_SUEXEC=yes', 'WITH_OPENSSL_PORT=yes', 'WWWOWN=www', 'WWWGRP=www', 'SUEXEC_UIDMIN=500', 'SUEXEC_GIDMIN=500', 'SUEXEC_DOCROOT=/home', 'SUEXEC_USERDIR=www', 'SUEXEC_SAFEPATH=/usr/local/bin:/usr/bin:/bin', 'SUEXEC_LOGFILE=/var/log/httpd-suexec.log', ], #: 'www/dummy-stok' => [ ], #: 'www/mod_php5' => [ 'WWWOWN=www', 'WWWGRP=www', ], #: # portupgarade -f php5 # cd /usr/ports/lang/php5-extensions && make install 'lang/php5*' => [ 'WITH_CGI=yes', 'WITH_ZTS=yes', # 'WITH_APACHE=yes', # 'WWWOWN=www', # 'WWWGRP=www', 'PHP_MODNAME=dom', 'PHP_MODNAME=exif', 'PHP_MODNAME=gd', # zlib ,png jpeg 'PHP_MODNAME=iconv', 'PHP_MODNAME=mbstring', 'PHP_MODNAME=mysql', 'PHP_MODNAME=openssl', 'PHP_MODNAME=pdo', 'PHP_MODNAME=pdo_mysql', 'PHP_MODNAME=soap', 'PHP_MODNAME=sqlite', # --enable-sqlite-utf8 'PHP_MODNAME=sqlite3', 'PHP_MODNAME=tidy', 'PHP_MODNAME=xmlrpc', 'PHP_MODNAME=xsl', ], #: }
これをwwwにおいて
アクセス権 700 に設定し
アクセスして
サーバーエラーがでれば、suexecが機能していない
test_suexec_cgi |
#!/bin/sh #!/usr/local/bin/bash printf "Content-Type: text/plain\n\n" printf "It works!! CGI by suexec" |
【結論】
試行錯誤の結論としては portsの設定をがんばるより
FreeBSDでは、apacheとPHPは公式からソースコードもってきて
自分で makeしたものをいれたほうが時間の節約になるし
portsの設定の変更に振り回されないで済む
tar xvf apache_2.2.X.tar.gz
./configure --prefix=/usr/local/apache-2.2 \ --enable-suexec \ --with-suexec-caller=www \ --with-suexec-userdir=www \ --with-suexec-docroot=/home \ --with-suexec-logfile=/usr/local/apache-2.2/logs/suexec_log \ --with-suexec-safepath="/usr/local/bin:/usr/bin:/bin" \ --with-included-apr \ --with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr \ --with-mpm=worker \ --enable-rewrite=shared \ --enable-speling=shared \ --enable-ssl --with-ssl=/usr/local/ssl \ --enable-proxy \ --enable-proxy_ajp \ --enable-proxy-http \ --enable-proxy-balancer \ --enable-headers \ --enable-cache \ --enable-disk-cache \ --enable-file-cache \ --enable-mem-cache \ --enable-expires \ --enable-status \ --enable-auth-ldap ### /usr/local/bin/apr-1-config ## error --with-ldap #\ # --enable-mods-shared="all ssl ldap cache proxy authn_alias \ # mem_cache file_cache authnz_ldap charset_lite \ # dav_lock disk_cache rewrite speling" #echo find ./src/modules/standard/ -name "mod_*.c" echo type: gmake echo type: gmake install echo type: ln -s /usr/local/apache-2.2/bin/apachectl /usr/local/sbin/apachectl echo type: /usr/local/apache-2.2/bin/apachectl start if ! test -e /usr/local/sbin/my_apachectl ; then ln -s /usr/local/apache-2.2/bin/apachectl /usr/local/sbin/my_apachectl fi |