○ webサーバの管理

・WEBサーバを管理します
・proftpdとopensshでサーバにアクセスします
・suexecオプションを有効にしています
・最初にhttpd/phpのインストールを参照して下さい
・運営・管理は各自の考えをもとにお願いします

・ソースの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・Enterキーを省略します

・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます

○参照ファイル

最初の設定 (Xen)
proftpdのインストール
httpd/phpのインストール

○仮設定

:User apache
:Group apache
:DocumentRoot /home/www/htdocs
:一般ユーザ sola



○apacheサーバの管理

○仮想設定のユーザー権限

・(注意) ログインshellに/sbin/nologinを設定している場合、
・パスワードを設定するとFTPログインできるようになります


ユーザ名 ftpログイン sshログイン 通常のログイン
:管理者 root NO YES YES
:一般ユーザ sola YES YES YES
:openssh (chroot) ユーザ umi YES (sftp) NO NO
:proftpd専用ユーザ apache YES NO NO
:httpdユーザ apache NO NO NO

○ディレクトリのパーミッション

・suexecオプションを有効にしています
・複数の一般ユーザが存在する場合は、proftpd専用ユーザ・OpenSSH(chroot)を利用します
・buildディレクトリはDSOの作成に使われるのでパーミッションに注意します

・新規のファイルは、sshでログインしてユーザ・グループを一括変更します


home/www/htdocs home/www/cgi-bin home/sola/public_html
ディレクトリ (apache apache 711) (apache apache 711) (sola sola 711)
一般ファイル (apache apache 640)
(sola sola 644)
CGIスクリプト
(apache apache 750) (sola sola 751)
CGIライブラリ
(apache apache 640) (sola sola 644)
読込みデータ (apache apache 640)
(sola sola 644)
書込みデータ (apache apache 640)
(sola sola 644)

○オーナー変更のコマンド例

# chown apache:apache file
特定のファイルまたはディレクトリのみ変更
# chown -R apache:apache /home/www
サブディレクトリ、ファイルまで全て変更

○パーミッション変更のコマンド例

# chmod 600 file
パーミッションを600に設定します
# chmod g-w,o-rwx file
※注 664→640 755→750になります
# chmod -R g-w,o-rwx /home/www
サブディレクトリ、ファイルまで全て変更

○一括変更コマンドの例

・ディレクトリ777 一般ファイル666 CGIファイル777と仮定
・より厳しいパーミッションの場合は変更されません
・クライアント側で変更する場合です

・一般ユーザ(/home/user)のディレクトリの場合

$ cd /home/user/public_html
[root@jupiter:/home/user/public_html]
$ find -type f -print0 | xargs --null chmod g-w,o-w
$ find -type d -print0 | xargs --null chmod g-rw,o-rw
$ find -name '*.pl' -print0 | xargs --null chmod g-w,o-rw
$ find -name '*.cgi' -print0 | xargs --null chmod g-w,o-rw

・DocumentRootディレクトリの場合

$ cd /home/www/htdocs
[root@jupiter:/home/www/htdocs]
$ find -type f -print0 | xargs --null chmod g-w,o-rwx
$ find -type d -print0 | xargs --null chmod g-rw,o-rw

○selinuxへの対応

# cd ~
[root@jupiter:~]
# restorecon -RFv /home/www

○ログ・ローテーション

・/etc/logrotate.d/httpdでバックアップを作ります
・httpdを再起動しています

/var/log/httpd/*log  {
    nodateext
    missingok
    notifempty
    sharedscripts
    postrotate
    /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
    endscript
}

:logrotationの確認

[root@jupiter:~]
# logrotate -f /etc/logrotate.d/httpd

・うまくいかない場合、設定ファイルを修正します
・ただし、var/lib/logrotate.statusに前回rotateした日付が設定されます
・日付をエディタでweeklyなら1週間前に設定し、再トライします

○httpd のレスポンスコード

response-code

○ Copyright(c) 528p.com All Rights Reserved.