メイン

apache アーカイブ

2006年08月25日

Mac OSX * Apache2 * tomcat5 * mod_jk2

AjaxするにはなにかとJSP2.0だといいっぽいので、Tomcat4.1.18からTomcat5.5.17へバージョンアップ。ついでに MacデフォルトWebサーバであるApache1.3.33をApache2.2.3へアップグレード。さらにこの2つをmod_jk2で連携させる。結構ハマる感じなので、後を考えてログ。


■Tomcat5.5.17インストール
ここの左の[Download]からTomcat 5.x(今回は5.5.17)を選んで、Coreのzip版を選んでDL。tar.gz版だと何故か正常に解凍できない不具合があるっぽい。
これは普通に解凍後、/usr/localに置けばよい。
/bin/startup.shしてからlocalhost:8080にアクセスして正しく気持ち悪い猫がでてくれば、とりあえずよい。


■Apache2.2.3インストール
ここからUnix Sourceのhttpd-2.2.x.tar.gz(今回は2.2.3)をDL。/usr/localに移動させて,解凍。その後

$ sudo ./configure $ sudo make $ sudo make install

とやれば勝手に/usr/local/apache2というディレクトリにインストールしてくれる。
オプション無しで勝手にやってくれるようになったようだ。
bin/apachectl startとやってlocalhostにアクセスして

It works!

と表示されれば、よい。TOPページがすごく手抜きになった気が。。


■Tomcat5とApache2を連携させるj2のインストール。
ここからJK2 2.0.4 Source Release zipを落として、適当な場所に解凍。

そしてjk2作成用のディレクトリまで移動してconfigure。。。

$ cd /[解凍したディレクトリ]/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2 $ ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-tomcat50=/usr/local/tomcat5

とやると、libaprが無いと言われるが、/usr/local/apache2/libにlibapr.soという空のファイルを作る
事でこのエラーは回避できるようだ。

$ cd /usr/local/apache2/lib $ pwd /usr/local/apache2/lib $ vi libapr.so

としてとりあえず中身を何も書かず保存。そして再度

$ sudo ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-tomcat50=/usr/local/tomcat5

とやると今度はちゃんと出来るはず。その後

$ sudo make

までやる。そうすると

$ /[解凍したディレクトリ]/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/build/jk2/apache2

にmod_jk2.soというファイルが出来ているはず。それを

$ sudo cp mod_jk2.so /usr/local/apache2/modules/

とする。さらに

$ /[解凍したディレクトリ]/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/conf

にworkers2.propertiesというファイルがあるので、これを

$ sudo cp workers2.properties /usr/local/apache2/conf/

して、httpd.confにLoadModule jk2_module modules/mod_jk2.soという行を追加する。後は、Tomcatのwebapps/jsp-examplesをexamplesに変えて(もしくは、workers2.propertiesを直接変更する)、Tomcat⇒Apacheと再起動してブラウザで localhost/examples/が見れれば完了。


■jk_2を使ったwebappsの登録。
/usr/local/apache2/conf/workers2.propertiesを開き、新規に作るwebappsのディレクトリ名を

[uri:/[ディレクトリ名]/*] info=[ディレクトリの解説] context=[ディレクトリまでのパス] debug=0

(例)
[uri:/hoge/*]
info=hoge is hoge
context=/hoge
debug

として、Tomcat⇒Apacheと再起動すればよい。httpd.confやserver.xmlをいじる必要は無い。
便利になったけど、jk2は公式サポートしなくなったらしい。。



2006年08月29日

Mac OSX * Apache2 * php5

Mac OSXに入れたApache2でphpを実行するためのステップをログ。

■ステップ1
本家のここからソースを落とし、適度に/usr/localとかに移動して解凍。


■ステップ2
ここを参考に

$ cd php-5.x.x $ ./configure \ > --with-apxs2=/usr/local/apache2/bin/apxs \ > --with-mysql \ > --enable-mbstring \ > --enable-mbregex \ > --prefix=/usr/local/php5

とやるも、mysqlのヘッダーファイルが見つかりませんよと言われてエラーが出るので,今度は

$ ./configure \ > --with-apxs2=/usr/local/apache2/bin/apxs \ > --with-mysql=/usr/local/mysql \ > --enable-mbstring \ > --enable-mbregex \ > --prefix=/usr/local/php5

と明示的に指定してやると、できた。この後は

$ make $ sudo make install

をやればよい。
このconfigureの際のオプションが鬼門らしく、最初php4を入れようとして

$ ./configure \ --with-apxs2=/usr/local/apache2/bin/apxs \ --enable-roxen-zts \ --enable-zend-multibyte \ --with-pgsql \ --with-mysql \ --enable-track-vars \ --enable-mbstring \ --enable-mbregex \ --with-gd \ --with-png-dir=/opt/local/lib \ --with-jpeg-dir=/usr/local/lib \ --with-zlib-dir=/usr/local/lib \ --with-zlib

等とやってみたが、何度もlibpng not foundというエラーが出まくった。
ちなみにDarwinPorts経由でlibpngは/opt/local/libに入ってるのに見つけてくれなかった。
なので5を入れてみた。4でもwith-png-dirオプションを外してみると出来るのかもしれない。


■ステップ3
Apache用のphpモジュールが出来ているのを確認。

$ ls /usr/local/apache2/module/ libphp5.so

■ステップ4
PHPの設定ファイル php.ini を適切な場所にコピーする。

$ cp php.ini-dist /usr/local/php5/lib/php.ini


■ステップ5
デフォルトでインストールの際にApache2の設定ファイルにLoadModuleを書き込んでくれるらしいので、確認

$ vi /usr/local/apache2/conf/httpd.conf LoadModule php5_module modules/libphp5.so


■ステップ6
同httpd.confの最後に以下を追加して、再起動。
適当なphpファイルをhtdocs配下に置いて動作確認で完了。



AddType application/x-httpd-php .php .html
AddType application/x-httpd-php-source .phps

DirectoryIndex index.html index.php index.cgi index.shtml


Apache2 * /Users/*/Sites的な事

Mac OSXにデフォルトに代わってApache2.xを入れた時、80ではすぐ上がるようになるが、デフォルトApacheの如く/Users/*/Sitesを表示させるためにはもう一捻りする。

httpd.confの最後の方の

# User home directories # Include conf/extra/httpd-userdir.conf <= これ

のコメントアウトを外し

# User home directories Include conf/extra/httpd-userdir.conf

とする。
そしてこのInclude元である[Apache_home]/conf/extra/httpd-userdir.confを開き、下記のように編集する。

# Settings for user home directories # # Required module: mod_userdir

#
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received. Note that you must also set
# the default access control for these directories, as in the example below.
#
#UserDir public_html
UserDir /Users/*/Sites

#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
#
<Directory /Users/*/Sites>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

これでApacheに再起動かけると、デフォルトApacheの如く/Users/*/Sitesを表示できるようになる。



About apache

ブログ「what a bringdown」のカテゴリ「apache」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。

前のカテゴリはajaxです。

次のカテゴリはGoogle Earthです。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。