日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
2024年11月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

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
##  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



PR

[PR]