OverView
- さくらVPSにWEBサーバ機能をもたせ、今後いろいろなサイトを構築する
同時にPHPの動作環境も設定する - httpdのインストールと設定
- phpのインストールと設定
- WEBサーバにユーザ毎のディレクトリを作成する
httpdとphpのインストール
# yum -y install httpd php php-mbstring
httpd.confの設定
# vi /etc/httpd/conf/httpd.conf
ServerTokens OS ↓ ServerTokens Prod ← エラーページ等でOS名を表示しないようにする #ServerName www.example.com:80 ↓ ServerName tryerror.net <Directory "/var/www/html"> ... Options Indexes FollowSymLinks ↓ Options Includes ExecCGI FollowSymLinks ← CGI,SSIの許可 AllowOverride None ↓ AllowOverride All ← .htaccessの許可 # # For a single logfile with access, agent, and referer information # (Combined Logfile Format), use the following directive: # SetEnvIf Request_URI "default\.ida" no_log ← 追加(wormからのアクセスをログに記録しない) SetEnvIf Request_URI "cmd\.exe" no_log ← 〃 SetEnvIf Request_URI "root\.exe" no_log ← 〃 SetEnvIf Request_URI "Admin\.dll" no_log ← 〃 SetEnvIf Request_URI "NULL\.IDA" no_log ← 〃 SetEnvIf Remote_Addr 202.11.2 no_log ← 追加(内部からのアクセスをログに記録しない) SetEnvIf Remote_Addr 127.0.0.1 no_log ← 追加(自ホストからのアクセスをログに記録しない) CustomLog logs/access_log combined env=!no_log ← 上記以外のアクセスをログに記録する ServerSignature On ↓ ServerSignature Off ← エラーページでサーバー情報を表示しないようにする AddDefaultCharset UTF-8 ↓ #AddDefaultCharset UTF-8 ← コメントアウト(文字化け対応) #AddHandler cgi-script .cgi ↓ AddHandler cgi-script .cgi .pl ← CGIスクリプトに.plを追加 <Directory "/var/www/icons"> Options Indexes MultiViews ↓ Options MultiViews ← iconsディレクトリのファイル一覧を表示しないようにする AllowOverride None Order allow,deny Allow from all </Directory> UserDir disable ↓ #UserDir disable ← #を追加(コメントアウト) #UserDir public_html ↓ UserDir public_html ← 行頭の#を削除(コメント解除) AliasMatch ^/tryerror(.*) /home/tryerror/public_html/$1 ←tryerrorユーザはhttp://ホスト名/tryerror/ もしくはhttp://ホスト名/~tryerror/でアクセスできるように。 AliasMatch ^/userdir/([^/]+)/(.*) /home/$1/public_html/$2 ←その他ユーザはhttp://ホスト名/userdir/ユーザ名/ もしくはhttp://ホスト名/~ユーザ名/でアクセスできるように。 <Directory /home/*/public_html> AllowOverride All Options IncludesNoExec ExecCGI FollowSymLinks <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory>
phpの初期設定
# vim /etc/php.ini error_reporting = E_ALL display_errors = On log_error = On [Date] date.timezone = Asia/Tokyo
ユーザディレクトリの作成
上述のhttpd.confの編集にてLinuxユーザ毎に/home/ユーザ名/public_htmlというディレクトリを用意し、
その配下に置いたwebファイルを公開するように設定済み。
新規ユーザ追加時、自動でpublic_htmlフォルダができるようにする。
# mkdir /etc/skel/public_html
すでに作成済みのユーザについては手動でディレクトリを作成。
その際、所有者とパーミッションに気を付ける。(特にapacheユーザに実行権がないとpermission errorとなる)
mkdir /home/tryerror/public_html chown tryerror:tryerror /home/tryerror/public_html chmod 711 /home/tryerror