masalibの日記

システム開発、運用と猫の写真ブログです

centos5.11でのWEBサーバー構築:(準備とapache)

今更ですが
centos5.11のWEBサーバー構築について記載します
備忘録です

方針

 ・apachemysqlphpのバージョンは固定にするために
  ソースからコンパイルする方式をとっている
 ・SQLServerにつなぐ必要があったのでmssqlもいれる
 ・バージョンは以下のとおり
 CentOS:5.11
   apache:2.2.29
   mysql:5.1.66
   php:5.3.21
(古いwww)
 ・sudoのコマンドは省略しています
  例)
   make install

本来はいかのようになります
   sudo make install

  困ったらsudoしてください

手順の概要

 1・準備
 2・apacheのインストール
 3・mysqlのインストール
 4・phpのインストール

1・準備

1-1・OSのインストール

centosのインストールは
http://ftp.riken.jp/Linux/centos/5/isos/x86_64/CentOS-5.11-x86_64-bin-DVD-1of2.iso
からダウンロードする

32ビットの場合は
http://ftp.riken.jp/Linux/centos/5/isos/x86_64/CentOS-5.11-x86_64-bin-DVD-1of2.iso
からダウンロードする

物理サーバーならDVDにする
VMサーバーやクラウドならこのままISOで使用する
なお2of2.isoは使わない

networkインストールという手があるが
DVDを落とすほうが楽なのでこちらにした


言語の設定:日本語
キーボードの設定:日本語

パーティション:すべて消してフォーマット

ネットワーク:環境によるので省略
マップ選択:アジア/東京
rootパスワード:passworddesuyo
インストールパッケージ:Desktop Gnodeをチェックはずす
            今すぐカスタマイズを選択する
アプリケーション:エディタをはずす
ベースシステム:ダイヤルネットワークサポートをはずす
開発:開発ツールを選択
ディスクトップは絶対にいれない!!)


1-2・SELINUXの停止

セキュリティ的にはよくないけど
FWは別に立てているので停止

vi /etc/selinux/config

SELINUX=enforcing
#  ↓↓↓↓
SELINUX=disabled #enforcingをdisabled変更

#設定を反映するため再起動
shutdown -r now
1-3・開発ライブラリのインストール
yum install libmcrypt-devel -y
yum install curl -y
yum install curl-devel -y
yum install libpng-devel -y
yum install gcc* -y
yum install libjpeg-devel -y
yum install ncurses-devel -y
yum install libxml2-devel -y
yum install libpng-devel -y
yum install vim-enhanced -y
yum install ntp* -y

いれておかないとコンパイルでこけます

1-4・yumの自動アップデートの停止

  方針と違うので停止

chkconfig yum-updatesd off
chkconfig --list |grep yum-updatesd

2・apacheのインストール

2-1・ソースのダウンロード解凍
cd /usr/local/src/
wget http://www.meisei-u.ac.jp/mirror/apache/dist//httpd/httpd-2.2.29.tar.gz
tar zxvf httpd-2.2.29.tar.gz

ダウンロードできなない場合は最新にすればダウンロードできます

2-2・コンパイル(configureとmake)
 cd httpd-2.2.29
 ./configure --prefix=/usr/local/apache2/ --enable-so --enable-rewrite--enable-ssl=/usr/local/openssl
make
make install
2-3・動作確認
 /usr/local/apache2/bin/httpd -v
2-4・ユーザーの設定
groupadd apache
useradd -g apache -d /var/empty/ -s /sbin/nologin apache

#useradd: warning: the home directory already exists.
#Not copying any file from skel directory into it.
#apacheユーザのホームディレクトリが作成済みのため。作成できなかった
#apacheユーザでログインできない
#問題なしという認識

vim /usr/local/apache2/conf/httpd.conf

User daemon
Group daemon
#  ↓↓↓↓
User apache
Group apache

起動するユーザーを変更
っていうかデフォルトはapacheだろ!!
毎回めんどくさいです

2-5・もろもろの設定変更
 vim /usr/local/apache2/conf/httpd.conf

 フォルダ一覧を表示させない
  Options Indexes FollowSymLinks
    ↓
  #Options Indexes FollowSymLinks

  もし外部に公開する場合は下記を明記する
  ServerName XXXXXXXXX.com
  (160行目付近)

2-6・ログ出力設定
mkdir /var/log/httpd
cd /var/log

chmod 755 httpd
chown apache:apache httpd

vi /usr/local/apache2/conf/httpd.conf

ErrorLog "/var/log/httpd/error.log"
#(190行目付近)

CustomLog "/var/log/httpd/access.log" common
#(225行目付近)

2-7・Vhostの設定
cd /usr/local/apache2/conf/extra
mkdir site-configs
vi /usr/local/apache2/conf/httpd.conf

最下部に以下を追加
Include conf/extra/site-configs/*

2-8・apacheの起動スクリプトの設定
cp /usr/local/src/httpd-2.2.29/build/rpm/httpd.init /etc/rc.d/init.d/httpd
chmod 755 /etc/rc.d/init.d/httpd

vi /etc/rc.d/init.d/httpd

3つ修正します

httpd=${HTTPD-/usr/local/apache2/bin/httpd}
pidfile=${PIDFILE-/usr/local/apache2/logs/httpd.pid}

check for 1.3 configuration
check13 () {
CONFFILE=/usr/local/apache2/conf/httpd.conf

再起動の設定を変更する

 chkconfig --add httpd
 chkconfig httpd on
 chkconfig --list httpd
2-9・rewrite_moduleの設定
service httpd start 
 cd /usr/local/src/httpd-2.2.29/modules/mappers
 /usr/local/apache2/bin/apxs -c mod_rewrite.c
 /usr/local/apache2/bin/apxs -ian rewrite mod_rewrite.la
 /usr/local/apache2/bin/apachectl graceful
2-10・OpenSSLをソースコードからインストール

最新バージョンを確認してからインストールしてください

 cd /usr/local/src
 wget -c http://www.openssl.org/source/openssl-1.0.1g.tar.gz
 tar zxvf openssl-1.0.1g.tar.gz
 cd openssl-1.0.1g
 ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl -fPIC
 make
 make install

この段階で手順がまじで長い!!
自動化したいが・・めんどくさい
いずれはしたい
っていうか
yumでインストールしたい!!