ApacheでWebサーバを作ろう!
ここでは、Apacheのインストール手順を掲載しています。
※CentOS 7のサポートは2024年6月をもって終了していますが、旧コンテンツとしてこちらのページは残しておきます。
Apacheとは…?
Apacheはオープンソースで開発されているWebサーバ(HTTPサーバ)です。HTTPとはHyperText Transfer Protocolの略で、Webページで使われるHTMLや画像ファイルのデータ(コンテンツ)を送受信するためのルールのことです。
CentOS 7では、標準でインストールされているため、インストール作業は不要です。
Apacheのインストール
[root@co7 ~]# yum -y install httpd
インストール:
httpd.x86_64 0:2.4.6-99.el7.centos.1
依存性関連をインストールしました:
apr.x86_64 0:1.4.8-7.el7 apr-util.x86_64 0:1.5.2-6.el7_9.1
httpd-tools.x86_64 0:2.4.6-99.el7.centos.1 mailcap.noarch 0:2.1.41-2.el7
完了しました!
Apacheの設定
[root@co7 ~]# vi /etc/httpd/conf/httpd.conf
ServerAdmin root@localhost
↓
ServerAdmin ************@gmail.com (管理者のメールアドレス)
#ServerName www.example.com:80
↓
ServerName mhserv.info:80 (取得したドメイン)
<Directory "/var/www/html">
Options Indexes FollowSymLinks
↓
Options Includes ExecCGI FollowSymLinks
AllowOverride None
↓
AllowOverride All
Order allow,deny
Allow from all
</Directory>
DirectoryIndex index.html
↓
DirectoryIndex index.html index.htm index.php index.cgi index.shtml
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
CustomLog logs/access_log combined
↓
CustomLog logs/access_log combined env=!no_log
SetEnvIf Request_URI "default\.ida" no_log
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 Request_URI "xmlrpc\.php" no_log
SetEnvIf Request_URI "zero_vote" no_log
SetEnvIf Request_URI "sumthin" no_log
SetEnvIf Request_URI "~akirin" no_log
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(css)$" no_log
#LANのネットワークアドレスを指定
SetEnvIf Remote_Addr 192.168. no_log
AddDefaultCharset UTF-8
↓
#AddDefaultCharset UTF-8
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
↓
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
#AddHandler cgi-script .cgi
↓
AddHandler cgi-script .cgi .pl
セキュリティ対策のため、以下を最後尾に追記し、Apacheのバージョンを非表示にします。
元々は設定ファイルの中に書いてあったのですが、いつの間にかなくなってしまったようですね。
ServerTokens ProductOnly
ServerSignature Off
コンテンツの圧縮転送
コンテンツを転送するときに、サーバ側で圧縮して転送する"mod_deflate"というモジュールもがあります。
以下のように入力をすることで、設定された形式のファイルに対し圧縮転送を行うことが出来ます。
[root@co7 ~]# vi /etc/httpd/conf.d/deflate.conf
<IfModule mod_deflate.c> SetOutputFilter DEFLATE # Mozilla4系などの古いブラウザで無効、しかしMSIEは除外 BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html # gifやjpgなど圧縮済みのコンテンツは再圧縮しない SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary SetEnvIfNoCase Request_URI _\.utxt$ no-gzip # htmlやcssなどは圧縮 AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/atom_xml AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/x-httpd-php </IfModule>
Perlへのシンボリックリンクの作成
CGIによって実行場所が/usr/bin/perlだったり/usr/local/bin/perlだったりするので、それに対応するため、シンボリックリンクを張ります。
[root@co7 ~]# ln -s /usr/bin/perl /usr/local/bin/perl
[root@co7 ~]# whereis perl
perl: /usr/bin/perl /usr/local/bin/perl /usr/share/man/man1/perl.1.gz
次は通信を暗号化しましょう。
参考にしたサイト様
今回新しく登場したコマンド
- ln
- whereis
[広告]
トップページ
CentOS 7
○準備
○仮想化準備(VMware)
○仮想化準備(Hyper-V)
○仮想化準備(Proxmox)
○基本操作
○導入
○セキュリティ対策
○Dynamic DNS
○NTPサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○DNSサーバ
○ブログシステム
○オンラインストレージ
○その他