終電23時11分って早くね?

都内のIT企業で働くカラオケ大好きエンジニアの雑記

【自宅サーバ構築記録】yumでApacheをインストール(ついでにPHPも)

ちょっと時間が空いてしまいましたが、
当初掲げていた目標は

ApachePHPMysqlでWebアプリ作って、
なんとなく外部に公開したいなーー
っていうゆるい目標を1つの軸に持ちつつやりたいと思います。

ということなので、
ちょこちょこやっていきます。

Apacheをインストール

[root@luffy ~]# yum -y install httpd

Apacheの設定・・・の前に
Apacheインストール直後の状態だと、

[root@luffy www]# ls -l /var/www/
合計 16
drwxr-xr-x 2 root root 4096  8月 14 02:30 2013 cgi-bin
drwxr-xr-x 3 root root 4096  8月 14 16:59 2013 error
drwxr-xr-x 2 root root 4096  8月 14 02:30 2013 html
drwxr-xr-x 3 root root 4096  8月 14 16:59 2013 icons

というような具合に、/var/www/いかにhtmlというフォルダが作成され、
そのフォルダ以下がドキュメントルートというような扱いが想定されています。

が!

いくつかのドメインをVirtualHostによって私は扱いたかったのでその想定で設定していきます。

/var/www/virtualhost/domain1.com/
/var/www/virtualhost/domain2.com/

フォルダ構造的にはこんな感じ。wwwいかにvirtualhostフォルダをつくりその中にドメインごとのフォルダを配置して管理するような想定です。

Apacheの設定

[root@luffy~]# vi /etc/httpd/conf/httpd.conf 
ServerTokens OS
↓
ServerTokens Prod #エラーページなどでOS名を表示しないようにする

DocumentRoot "/var/www/html"
↓
#DocumentRoot "/var/www/html" #基本的にVirtualHostでディレクティブを指定した運用にするので、コメントアウト。

<Directory "/var/www/html">
↓
#<Directory "/var/www/html"> #上と同様

    Options Indexes FollowSymLinks
↓
#    Options Indexes FollowSymLinks #上と同様

    AllowOverride None
↓
#    AllowOverride None #上と同様

    Order allow,deny
    Allow from all

</Directory>
↓
#    Order allow,deny
#    Allow from all

#</Directory> #上と同様

ServerSignature On
↓
#ServerSignature On #エラーページでサーバー情報を表示しないようにする

<Directory "/var/www/icons">
    Options Indexes MultiViews
    ↓
    Options MultiViews ← iconsディレクトリのファイル一覧を表示しないようにする
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

AddDefaultCharset UTF-8
↓
#AddDefaultCharset UTF-8 #文字化け対応でコメントアウト

[root@ruffy ~]# rm -f /etc/httpd/conf.d/welcome.conf ← テストページ削除

[root@ruffy ~]# rm -f /var/www/error/noindex.html ← テストページ削除


■Virtualhostの設定

[root@ruffy ~]# vi /etc/httpd/conf.d/virtualhost.conf

NameVirtualhost *:80

# バーチャルホスト未定義のホスト名でアクセスがあった場合、アクセスを拒否
<VirtualHost *:80>
    ServerName any
    <Location />
        Order deny,allow
        Deny from all
    </Location>
</VirtualHost>

# domain1.com用の設定
<VirtualHost *:80>
    ServerName domain1.com
    DocumentRoot /var/www/virtualhost/domain1.com/html
    ErrorLog logs/domain1.com/error_log
    CustomLog logs/domain1.com/access_log combined env=!no_log

    <directory />
        Options -MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </directory>

</VirtualHost>


# domain2.com用の設定
<VirtualHost *:80>
    ServerName domain2.com
    DocumentRoot /var/www/virtualhost/domain2.com/public
    ErrorLog logs/domain2.com/error_log
    CustomLog logs/domain2.com/access_log combined env=!no_log
    <Directory "/">
        Options -MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>


Apacheの起動

[root@ruffy ~]# service httpd start

[root@ruffy ~]# chkconfig httpd on


PHPのインストール

[root@ruffy ~]# yum -y install php php-mbstring php-gd php-mcrypt php-xml


ってな感じでApache(とPHP)の設定は完了です。