Memo

メモ > サーバ > 構築: Webサーバ設定 > Apache

Apache
※Webサーバを構築して、サーバにブラウザからアクセスできるようにする。 ※IPアドレスでアクセスしたときはIPアドレスもしくはサーバ名だけが表示されるページにアクセス、 ドメインを指定してアクセスしたら対応するページにアクセス…とすると管理しやすいかも。 「IPアドレス + /phpmyadmin/」などへの無差別アクセスと攻撃下調べの影響も、若干軽減できる。 ※バーチャルホストが不要な案件でも、後々検収環境が追加されたりを想定して、常にバーチャルホストにしておくといいかも。 バーチャルホストの設定方法は Etcetera.txt を参照。 ※バーチャルホストにした場合、access_log にサブドメインが残らないのでページを判別しづらい。 (リファラには表示されるが、外部からアクセスされたときなどはダメ。) サブドメイン名を記録するか、サブドメインごとにログファイルを分けておいた方が良さそう。 ※PHP5.6を使うならApacheは2.4をインストールする。詳細は Programming.txt を参照。 なお Amazon Linux 2 の場合でも、Extrasリポジトリではなく通常の手順でインストールできる。 Amazon Linux2でLAMP環境を構築 - Qiita https://qiita.com/RayDoe/items/fb3e0ef69b9b4132e7f7 Amazon Linux 2にLAMP環境インストール - Qiita https://qiita.com/cherubim1111/items/4a89856e743f287c599f ■インストール Webサーバー構築(Apache) http://centossrv.com/apache.shtml
# yum -y install httpd … httpdをインストール。(PHP5.6を使うならApacheは2.4をインストールする。) # vi /etc/httpd/conf/httpd.conf … httpdの設定ファイルを編集。
#ServerTokens OS ServerTokens Prod … エラーページなどでOS名を表示しないようにする。 #ServerName www.example.com:80 ServerName refirio.net:80 … サーバー名を指定。(コメントアウトしておかないと、サーバ起動時に警告が表示される。 Webサーバが複数ある場合は「ServerName web1.refirio.net:80」など。 初期値のままでも問題なさそう。) <Directory "/var/www/html"> #AllowOverride None AllowOverride All ….htaccessを許可する場合。 #LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined … 長すぎるURI(414エラー)をログに記録しない場合。 LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D %{X-Forwarded-For}i %{X-Forwarded-Proto}i %v" combined … 処理時間やプロキシのIPなども記録する例。 # # 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 192.168.1 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 … UTF-8以外でページを作成する場合はコメントアウト。(文字化け対策。)
# rm -f /etc/httpd/conf.d/welcome.conf … テストページを削除。 # chown apache. /var/www/ … 公開用ディレクトリの所有者をapacheに変更。 # chmod 775 /var/www/ … apacheグループのユーザに読み書き実行を許可。 # chown apache. /var/www/html/ … ドキュメントルートの所有者を「apache」に変更。 # chmod 775 /var/www/html/ … apacheグループのユーザに読み書き実行を許可。 # ll /var/www/ … ドキュメントルートの所有者を確認。 合計 24 drwxr-xr-x 2 root root 4096 10月 5 11:45 cgi-bin drwxr-xr-x 5 apache apache 4096 9月 27 17:43 html # service httpd configtest … 設定ファイルの構文をチェック。 Syntax OK # systemctl start httpd … httpdを起動。 # systemctl enable httpd … httpdの自動起動を設定。 # httpd -v … httpdのインストールを確認。
■ファイヤーウォール設定(iptablesを使用している場合の設定)
# vi /etc/sysconfig/iptables … ファイヤーウォールを設定。(80ポートを開ける。)
#HTTPを許可 -A MY-FIREWALL -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# service iptables restart … ファイヤーウォールを再起動。
■動作確認
# vi /var/www/html/index.html … テストページ作成。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>テスト</title> </head> <body> <p>テスト。</p> </body> </html>
http://refirio.net/ のようにブラウザからアクセスを確認。

Advertisement