CentOS-4.2上にweb-cpを入れてウハウハになるメモ

現在進行形で構築中のサーバについての一時メモです。
細かく更新される可能性があります。

■OSの導入
 CentOS-4.2を選定。
 ServerCDから最小パッケージでInstall。

■web-cpインストール前の処理
▼OSのインストール後、rootで入り、ユーザを作っておく。

> useradd <任意のユーザー名>
> passwd <任意のユーザー名>

2回、任意のパスワードを入力。
これによってsshから作業できるようになり、実質的にサーバにはノータッチでも大丈夫。
私の場合はこの後、sshで外部から作成したアカウントでアクセスしている為、suコマンドで適当にユーザ名変更。

yumが物取ってくる先を変更する
 変更:mirror.centos --> ftp.riken.jp/Linux

> vi /etc/yum.repos.d/CentOS-Base.repo
<vi上で>
:%s /mirror.centos.org/ftp.riken.jp\/Linux/g

 viの置換コマンドですっきり変換。

▼必要なパッケージのinstallとかアップデート確認とか。

> yum check-update
> yum update
> yum install httpd mysql mysql-server php sendmail bind vsftpd openssl php-mysql webalizer postgresql dovecot quota mod_ssl spamassassin squirrelmail mailman php-pgsql

これでwebcpに必要な基本的な物は入る。後は任意で他に必要な物を入れる。

MySQL設定
まずサービスを起動。

> /sbin/service mysqld start

そしてwebcp用ユーザを追加。

> mysql -u root
mysql> GRANT ALL PRIVILEGES ON *.* TO webcp@localhost IDENTIFIED BY '<WebCPで使うパスワード>' WITH GRANT OPTION;
  -> \q

これにより、webcpというユーザーがlocalhostからのみフルアクセスが出来るようになる。

PHPの設定

> vi /etc/php.ini
magic_quotes_gpc Offをmagic_quotes_gpc Onに変更。

php.iniは長いので、viのexモードで/<検索文字列>すると良い。勿論、先ほどのように置換しても良いが。

■web-cpのインストール
▼ユーザーとグループの作成

> /usr/sbin/groupadd webcp
> /usr/sbin/useradd -s /sbin/nologin -g webcp -d /home/webcp -c "webcp user" webcp

sshでログインしてたら、なんかsuになっても/usr/sbin等にパスが通っていない為(というかwheelグループに所属するように作らなかった俺が悪い気がしますが)こうしました。

▼ダウンロードとコードの移動
CentOS上というかFedora/RHEL由来のOSでは、基本的にwebcp-0.6以降しか動かないようなので、cvsから取ってくる。

> cd /root
> cvs -d :pserver:guest@cvs.web-cp.net:/usr/local/cvsroot login
> cvs -d :pserver:guest@cvs.web-cp.net:/usr/local/cvsroot checkout webcp-0.6

cvsにログインする際、パスワードを求められる。空で返して良い。
2個目のコマンドで、どっさりファイルが落ちてくる。待つ。
ダウンロード終了後、以下のコマンドでwebcp本体を移動。

> mv webcp-0.6/webcp/* /home/webcp -fR
> chown webcp:webcp /home/webcp -R
> chown root:root /home/webcp/server -R
> chmod 755 /home/webcp/server/webcp.php
> chmod 755 /home/webcp/server/data -R

DL終了後、/home/webcpにデータを動かしたりchownしたりchmodしたり。

▼initファイルのコピー

> cp /home/webcp/server/webcp-init.php /etc/init.d/webcp
> chmod 755 /etc/init.d/webcp

サービスの起動に必要。

▼ログファイルとかpidファイル回り。

> touch /var/log/webcp.log
> chown webcp.webcp /var/log/webcp.log
> chmod 600 /var/log/webcp.log
> mkdir -p /var/run/webcp
> chown webcp:webcp /var/run/webcp

webcp.logとか。

▼起動。

> /sbin/service webcp start

mysql回りで色々怒られるけど全て無視。

■http-cpのコンフィグ
httpd.confの編集

cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd-cp.conf
vi /etc/httpd/conf/httpd-cp.conf

* Listen 80 を Listen 81 に変更
* User apache を User webcp に変更
* Group apache を Group webcp に変更
* DocumentRoot "/var/www/html" を DocumentRoot "/home/webcp/web" に変更
* ErrorLog logs/error_log を ErrorLog logs/webcp_error_log に変更
* CustomLog logs/access_log combined を CustomLog logs/webcp_access_log combined に変更
* Include conf.d/.conf* を Include conf.d/php.conf に変更

httpd-cpの編集

> cp /etc/init.d/httpd /etc/init.d/httpd-cp
> vi /et/init.d/httpd-cp

* 全ての /etc/httpd/conf/httpd.conf を /etc/httpd/conf/httpd-cp.conf に変更
* 全ての pidfile: /var/run/httpd.pid を pidfile: /var/run/httpd-cp.pid に変更
* 全ての /var/lock/subsys/httpd を /var/lock/subsys/httpd-cp に変更
* /usr/sbin/httpd を /usr/sbin/httpd-cp に変更
* prog=httpd を prog=httpd-cp に変更
* 全ての CONFFILE=/etc/httpd/conf/httpd.conf を CONFFILE=/etc/httpd/conf/httpd-cp.conf に変更
* CONFFILE=/etc/httpd/conf/httpd-cp.conf を、RETVAL 表記のある行の直下に移動
* OPTIONS="-f $CONFFILE" を CONFFILE=/etc/httpd/conf/httpd-cp.conf の直下に追加。

httpd-cpバイナリのコピー

> cp /usr/sbin/httpd /usr/sbin/httpd-cp

単にCopyコマンドしているだけ。

iptablesに設定追加

> iptables -I INPUT -p tcp --dport 81 -j ACCEPT

iptables動かしていなければ設定の必要無し。

httpd-cpサービスの起動

> service httpd-cp start

▼Quotaの有効化

> /etc/fstab to enable quotas

* / もしくは /home のマウントポイントについて設定している行の defaults という表示を defaults,usrquota に変更

▼再マウント

> mount -o remount / or mount -o remount /home_

▼Quotaチェック

> quotacheck -cvugamf

▼QuotaをONにする

> quotaon -a

▼vsftpdのコンフィグ

> vi /etc/shells ( nano /etc/shells )

* 一番最後の行に /bin/false を追加。

▼vsftpdの起動

> service vsftpd start

これで、http://自分のIPアドレス:81/で初期設定が出来るようになる。