使ったことなかったのでメモ。

ApacheでRewriteする場合、

%{QUERY_STRING}とかで引っ掛けて正規表現に一致したクエリは%変数に格納される。

Rewrite先URLの末尾を?にしとくとそこで終わりと判断してくれる。つまりクエリパラメータ無いよ、ってできる。

まとめると。

http://hoge.jp/top.do?user=hoge

http://hoge.jp/hoge/
にRedirectする場合

RewriteCond %{QUERY_STRING} user=([a-z]+)
RewriteRule ^/top.do$ /%1/? [R]

みたいな感じで書ける。

BigBOSS曰く
「RewriteはWebエンジニアにとっての常識事項である」


エンジニア失格ということですね。わかります。
すいませんでした。
AD

[メモ] VMwareでLAMP+Javaサーバ

テーマ:
kohei氏が
サーバ構築の練習(LAMP編)
なんてことをやっていたのでついかっとなってやった.公開はしていない.

というわけで,VMware使ってLAMP+Java環境を作ってみた.
VMware Player,CentOS4.6,LAMP環境ってとこはkohei氏のと同じなので,省略.
エントリに書いてなかったこととか追加でやったことだけにしといて,
メインはJava環境についてやったことを書くことにします.

◆SSH接続設定


もうVMware PlayerとゲストOS(今回はCentOS 4.6)は入ってる前提で.
JDKはwgetとかで落とせないので,サイトからダウンロードしてくる必要があるけども
CentOSがCUI環境だったらホストの方で落として送ったほうが手っ取り早い.

・VMwareの設定


VMwareがインスコされてるフォルダにあるvmnetcfg.exeを起動.
「ホスト仮想ネットワークの割当て」タブ
→VMnet8の「>」ボタン
→「サブネット」メニューと「NAT」メニューをクリックしてサブネットとゲートウェイの値をチェック

戻って今度は「DHCP」タブでVMnet8の設定を削除

次に「NAT」タブ→「編集」ボタン→「ポートの転送」ボタン→「受信TCPポート」の「追加」ボタン
項目はSSHとHTTPの二つ追加する.
「ホストのポート」,「ポート」にはSSHでは22,HTTPでは80を入力.転送先のIPはゲストOSに割り振られたもの.

・CentOSの設定



# vi /etc/sysconfig/network-scripts/ifcfg-eth0
↓中身
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.120.255
IPADDR=192.168.120.7 ゲストOSのIP
NETMASK=255.255.255.0

NETWORK=192.168.120.0 サブネット
ONBOOT=yes
TYPE=Ethernet

※もちろん値は一例なんで.


# vi /etc/sysconfig/network
↓中身
NETWORKING=yes
HOSTNAME=ホスト名
GATEWAY=192.168.120.2 ゲートウェイ

※ゲートウェイ間違えるとゲストOSからネットにつながんなくなるので気をつけましょう.


# vi /etc/resolv.conf
↓中身
search ドメイン名を指定
nameserver 192.168.120.2 ゲートウェイ


ネットワークの再起動

# service network restart


一応これでホストからSSH接続できる.注意点としては,ホストorゲストどっちかでファイアウォール動いてるとできないかも.ゲストの方は

# /etc/rc.d/init.d/iptables stop

で止めとく.

◆インストールの準備



# yum install autoconf libtool doxygen gcc-c++ openldap-devel db4-devel expat-devel pkgconfig openssl-devel


◆APRインストール


Apacheだけでいいのかも知れんけど.一応APRもいれとく.

# cd /usr/local/src
# wget http://archive.apache.org/dist/apr/apr-1.2.8.tar.gz
# tar xvzf apr-1.0.0.tar.gz
# ./configure
# make
# make instal

# wget http://archive.apache.org/dist/apr/apr-util-1.2.8.tar.gz
# cd /usr/local/src
# tar xvzf apr-util-1.0.0.tar.gz
# ./configure --with-apr=/usr/local/apr
# make
# make install


◆MySQLインストール


kohei氏がwgetしてきてビルドしてたんで,逆にyum使ってみる.

# yum install mysql-server

これだとMySQL4なので,5にうp

# yum --enablerepo=centosplus update mysql

日本語対応させとく.

# vi /etc/my.cnf
[mysqld]のとこに追加↓
default-character-set=sjis
skip-character-set-client-handshake

utf8でもいいかも.

◆J2SEインストール


今回は1.5で.

# yum install rpm-build gcc-java
# cd /usr/local/src
# wget http://www.jpackage.org/jpackage.asc
# rpm --import jpackage.asc
# mkdir /usr/src/redhat
# mkdir /usr/src/redhat/SPECS
# mkdir /usr/src/redhat/SOURCES
# wget http://mirrors.sunsite.dk/jpackage/1.7/generic/non-free/SRPMS/java-1.5.0-sun-1.5.0.14-1jpp.nosrc.rpm
# rpm -ihv java-1.5.0-sun-1.5.0.14-1jpp.nosrc.rpm

↑JDKでは最新が15みたいだけど,こっちは15が見当たらなかった.あったら15でやっていいと思う.
JDKは上で書いたようにhttp://java.sun.com/j2se/1.5.0/download.jsp
から非rpm版をダウンロードして/usr/src/redhat/SOURCESにおく.上で落としたやつとバージョンあわせること.もうSSH接続設定したのでWinSCPとか使うと良い.


# cd /usr/src/redhat/SPECS
# rpmbuild -ba java-1.5.0-sun.spec
# cd /usr/src/redhat/RPMS/i586
# rpm -ihv java-1.5.0-sun-1.5.0.12-1jpp.i586.rpm
# rpm -ihv java-1.5.0-sun-devel-1.5.0.12-1jpp.i586.rpm

↑もしかしたらrpmでインスコするときにlibXp.so.6がないとか言われるかも.そしたら先に

# yum install xorg-x11-deprecated-libs

をやっとく.

◆Tomcatのインストール


今回は5で.
Tomcat入れる前に,JPackageリポジトリを追加しとく.

# cd /etc/yum.repos.d/
# wget http://www.jpackage.org/jpackage.repo
# vi /etc/yum.repos.d/jpackage.repo
↓中身
[jpackage-rhel]の enabled=0 を enabled=1 に変更
# yum install tomcat5 tomcat5-admin-webapps
# vi /usr/share/tomcat5/conf/tomcat-users.xm
→"manager"roleの垢を作る
# /etc/init.d/tomcat5 start

起動したら,http://localhost:8080/manager/htmlにアクセスしてbalancerをundeployにしとく.
※localホストはSSH接続のときに設定した名前orIPにするのを忘れずに
最後に自動起動設定にしとく.

# chkconfig --add tomcat5
# chkconfig tomcat5 on


◆Antのインストール


今回は1.7で.

# cd /usr/src
# wget http://www.meisei-u.ac.jp/mirror/apache/dist/ant/binaries/apache-ant-1.7.0-bin.tar.gz

/usr/share/antに解凍してPATHに追加しとく.

◆でっていう


LAMPも全部yumでyouやっちゃいなよとか言っても,CentOS4.6とかだとyumでそのままApache2.2とかPHP5.2とか入れられないんでっていう.
PHPはリポジトリを追加して入れることができるけど,Apache2.2は面倒になって諦めた.黙ってkohei式でやるのが賢いと思います.

◆参考


・SSH接続
http://nhh.mo-blog.jp/ttt/2005/11/vmware_natssh_3905.html
http://www.trekdevel.net/archives/96
・APR
http://memorva.jp/memo/linux/apache.php
・MySQL,Java環境
http://wcm-japan.wetpaint.com/page/CentOS4%E3%81%ABApache2.2%E3%81%A8Tomcat5.5?t=anon
感謝!

補足その1:不要サービス停止
http://afexcel.seesaa.net/article/93682438.html とか
http://kajuhome.com/fedora_access.shtml とか
補足その2:PHPをyumで
http://www.kfactory.net/?p=833
AD