サーバー設定 2日目 続き
Apache2.4.3導入
Apache最新版を公式サイトからダウンロードしましょう
Apacheインストール
$ wget http://ftp.tsukuba.wide.ad.jp/software/apache//httpd/httpd-2.4.3.tar.gz
$ tar xzf httpd-2.4.3.tar.gz
$ cd httpd-2.4.3
$ ./configure --prefix=/usr/local/apache --enable-mods-shared=all --enable-so --enable-ssl --enable-rewrite --enable-usertrack --enable-asis --enable-cache --enable-mem-cache --with-mpm=worker --with-ssl=/usr/local/openssl --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --disable-ipv6
(正直なところconfigureは殆ど要らない気がします。後ででも設定出来ます。aprとopenssl関係だけは必須でしょうか。mod_asisはprobe対策する人だけ。)
$ make
$ sudo paco -D make install
インストール完了。
いつものlibパス通し
$ sudo touch /etc/ld.so.conf.d/apache.conf
$ sudo vi /etc/ld.so.conf.d/apache.conf
/usr/local/apache/lib
$ sudo ldconfig
Apache自体のパスも通します
$ sudo ln -s /usr/local/apache /usr/local/httpd
$ sudo touch /etc/profile.d/apache.sh
$ sudo vi /etc/profile.d/apache.sh
# apache path Setting
export APACHE_HOME=/usr/local/httpd
export PATH=$APACHE_HOME/bin:$PATH
しかしこれではまだhttpdとしては機能しない
HTTPDとして機能させるために
$ sudo cp /build/rpm/httpd.init /etc/init.d/httpd
$ sudo vi /etc/init.d/httpd
#httpd=${HTTPD-/usr/sbin/httpd} (コメントイン)
httpd=${HTTPD-/usr/local/apache/bin/httpd} (インストールしたパスを追加)
#pidfile=${PIDFILE-/var/run/${prog}.pid} (コメントイン)
pidfile=${PIDFILE-/usr/local/httpd/logs/${prog}.pid} (インストールしたパスを追加)
lockfile=${LOCKFILE-/var/lock/subsys/${prog}}
RETVAL=0
# check for 1.3 configuration
check13 () {
# CONFFILE=/etc/httpd/conf/httpd.conf (コメントイン)
CONFFILE=/usr/local/apache/conf/httpd.conf (インストールしたパスを追加)
以前のバージョンまでと変わってるので見落としがちだが
pidfile=${PIDFILE-/usr/local/httpd/logs/${prog}.pid}
を追加しないとパスがわからないからstopしてくれない
これで
$ sudo service httpd start
httpd を起動中: [ OK ]
$ sudo service httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]
問題なく作動するはずだ
後は自動起動させるために
# chkconfig httpd on
でOKなはず
サーバー設定 2日目
rvmを公式から入れたらバージョンが1.15とか言う死ぬほど古いバージョンでしたので、Rubyをソースから入れてrvmを入れようと思いましたが、よくよく考えるとScientificLinuxで採用されているApacheのバージョンも些かアレでしたので、最新のApache2.4.3をソースから入れる事にしました。Nginxさんのことは暫く忘れます。
*Apache2.4.3を入れるの巻*
まずはApache2.4.3を入れるには最新のaprとapr-utilを入れないといけない。
からDLして入れる事となる。
でもその前にPacoを入れておくと便利かも。 Pacoはyumでepelからインストールできます。 それかソースから入れるとよろし。
apr & apr-util インストール
apr
$ wget http://ftp.riken.jp/net/apache//apr/apr-1.4.6.tar.gz
$ tar xvf apr-1.4.6.tar.gz
$ cd apr-1.4.6
$ ./configure ; make
$ sudo paco -D make install
apr-util
$ wget http://ftp.riken.jp/net/apache//apr/apr-util-1.4.1.tar.gz
$ tar xvf apr-util-1.4.1.tar.gz
$ cd apr-util-1.4.1
$ ./configure ; make
$ sudo paco -D make install
libのPATHを通す
$ cd /etc/ld.so.conf.d/
$ sudo touch lib.conf
$ sudo vi lib.conf
usr/local/apr/lib
$ sudo ldconfig
なお
$ paco -a
apr-1.4.6 apr-util-1.4.1 httpd-2.4.3 openssl-1.0.1c
のようにpacoで管理されてるものを確認することも出来る。
さて肝心のApacheなんだけど、多くの人がOpenSSLで怒られて、私も毎回のように怒られ、 多分みなさんも怒られると思うので、ここは大人しくソースから最新のものを入れておきましょう。
OpenSSLインストール
$ wget http://artfiles.org/openssl.org/source/openssl-1.0.1c.tar.gz
$ tar xvf openssl-1.0.1c.tar.gz
$ cd openssl-1.0.1c
$ ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared
$ make
$ paco -D make install
これでOpenSSLのインストールは完了。 しかしながらやはり色々やんなきゃいけない。
OpenSSLのlib、PATH通し
$ sudo touch /etc/ld.so.conf.d/openssl.conf
$ sudo vi /etc/ld.so.conf.d/openssl.conf
/usr/local/openssl/lib
$ sudo ldconfig
$ sudo mv /usr/bin/openssl /usr/bin/openssl2 (既存のSSLをリネーム)
$ sudo ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
$ openssl version (バージョン確認)
OpenSSL 1.0.1c 10 May 2012
さて下準備が出来た所で本番のApache2.4.3のインストールと行きたい所ですが、 午前3時で睡魔が襲ってきたのでこれにて・・・
サーバー設定 1日目
さくらのVPSにて
CentOS6でアレしてたら色々と問題が出てきたのでScientificLinux6.3に入れ替え。
まずはバージョン確認
# cat /etc/redhat-release
Scientific Linux release 6.1 (Carbon)
# rpm -qa sl-release --qf '%{v}\n'
6.1
おおさくらよなんということだ
さくらのVPSはScientificLinux6.1なのでまずは最新の6.3にバージョンアップ
[公式WIKI]
https://www.scientificlinux.org/documentation/howto/upgrade.6x
バージョンアップ
# yum --releasever=6.3 update sl-release
# yum update
もう一度バージョン確認
# cat /etc/redhat-release
Scientific Linux release 6.3 (Carbon)
# rpm -qa sl-release --qf '%{v}\n'
6.3
おおすばらしきバージョンよ!
ユーザー追加
# useradd hoge
# passwd hoge
# usermod -G wheel hoge
# visudo (/etc/sudoersを編集する簡単コマンド)
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
コメントアウトしWheelグループにRootと同等の権限を
でも良いし
# User privilege specification
root ALL=(ALL) ALL
hoge ALL=(ALL) ALL
ユーザー追加という形式も取れる。
後はPAMの設定も(PAMについては各種学習サイトに詳しい)
# vi /etc/pam.d/su
auth required pam_wheel.so use_uid(コメントアウト)
# vi /etc/login.defs
SU_WHEEL_ONLY yes
最近は最初からこうなっていて設定不要な事も多い。
# sudo vi /etc/ssh/sshd_config
PORT ***** (激しくアタックが来るので#22以外に)
PermitRootlogin no (rootはログインさせないよ)
MaxAuthRties * (認証回数制限)
AllowUsers hoge (hogeさんだけしか認証しない AllowGroupsもある)
DenyUsers hogehoge (hogehogeさんは認証しない)
LoginGraceTime * (*秒以内に認証しないとセッション切る)
TeraTerm等でSSHの認証キーをGenerateする。公開キーと秘密キーの二つが出来るはず。
TeraTerm等のSSHクライアントからパスワード認証でサーバーへ接続を行う。
そしてSCPでhome下にid_rsa.pubキーを送り込む。
(MacのターミナルでもTeraTermでもPuTTYでも一番楽な方法のはず)