03 « 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 05

LAMPサーバ構築メモ(CentOS6.4+Apache+MySQL+PHP)  

RHEL6.4から約2週間で CentOS6.4がリリースされました。CentOS6の出始めの頃はリリース遅れがありましたが、ここのところ順調なようです。

早速、新規インストールの設定メモ。


========== マシン構成 ==========
VirtualBoxの仮想マシンにインストール

○仮想マシン構成
 メモリ:1024MB
 NIC1:NATアダプター
 NIC2:ホストオンリーアダプター

○ネットワーク構成(※ご自分の環境に書換えてください)
 ホスト名:  centos64
 IPアドレス: 192.168.56.201/24
 DNSサーバ: 192.168.100.1


========== CentOS6.4のインストール ==========
[Welcom to CentOS 6.4!]
Install or upgrade an existing system

[Disc Found]
SKIP

[CentOS6]
NEXT

[What language 〜]
Japanese(日本語)

[このシステム用の適切なキーボードを選択します]
日本語

[どちらのタイプのストレージデバイスにインストールしますか?]
基本ストレージデバイス

[ストレージでバイスの警告]
はい。含まれていません。どのようなデータであっても破棄してください
(※警告の通りです。ご注意下さい)

[ホスト名]
centos64.localdomain

[使用するタイムゾーン〜]
アジア/東京
「システムクロックでUTCを使用」のチェックを外す

[rootパスワード]
<パスワード>

[どのタイプのインストールをしますか?]
すべての領域を使用する

[ストレージ構成をディスクに書き込み中]
(データがすべて失われる旨の警告が表示されます)
データが削除されても問題がなければ「変更をディスクに書込む」を押します

[CentOSのデフォルトインストールは最小限インストールです。オプションとして追加の〜]
Minimal
「今すぐカスタマイズ」を選択して「次へ」

下記を選択して「次へ」
・ベースシステム>ネットワーキングツール
・ベースシステム>ベース
・開発>開発ツール

インストールが開始します

[おねでとうございます。CentOSのインストールが完了しました]
再起動してください


========== ネットワーク関連設定 ==========
・NIC1の設定(NATアダプター)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
---(下記を変更)---------------------------
ONBOOT=no
NM_CONTROLLED=yes
 ↓
ONBOOT=yes
NM_CONTROLLED=no
------------------------------

・NICの設定
vi /etc/sysconfig/network-scripts/ifcfg-eth1
---(HWADDRの行以外を削除して下記を追加)---------------------------
DEVICE=eth1
HWADDR=08:00:27:8D:82:99  ←【この行は残す】
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=192.168.56.201
NETMASK=255.255.255.0
------------------------------

・ネットワークサービス再起動
service network restart

・DNSサーバの設定
vi /etc/resolv.conf
---(全て削除して下記を追加)---------------------------
nameserver 192.168.100.1
------------------------------

・上記設定で sshログインができるようになります
ssh root@192.168.56.201


========== yumアップグレード ==========
yum -y upgrade


========== 不要サービスの停止 ==========
chkconfig --level 0123456 abrt-ccpp off
chkconfig --level 0123456 abrtd off
chkconfig --level 0123456 acpid off
chkconfig --level 0123456 atd off
chkconfig --level 0123456 auditd off
chkconfig --level 0123456 blk-availability off
chkconfig --level 0123456 cpuspeed off
chkconfig --level 0123456 haldaemon off
chkconfig --level 0123456 ip6tables off
chkconfig --level 0123456 kdump off
chkconfig --level 0123456 mdmonitor off
chkconfig --level 0123456 messagebus off
chkconfig --level 0123456 netfs off


========== SELinux無効設定 ==========
vi /etc/sysconfig/selinux
---(下記を変更)---------------------------
SELINUX=enforcing
 ↓
SELINUX=disabled
------------------------------

・OSを再起動します。
shutdown -r now


========== iptables設定 ==========
・オリジナルのコンフィグをバックアップします。
mv -i /etc/sysconfig/iptables /etc/sysconfig/iptables.org

・ssh と httpd のみ許可設定
vi /etc/sysconfig/iptables
---(下記を追加)---------------------------
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp -m multiport --dports 80,443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
------------------------------

・iptablesを再起動します
service iptables restart


========== NTP設定 ==========
・初回は手動で時間合わせをします。
ntpdate ntp.nict.jp

・オリジナルのコンフィグをバックアップします。
mv -i /etc/ntp.conf /etc/ntp.conf.org

・コンフィグを作成します。
vi /etc/ntp.conf
---(下記を追加)---------------------------
server ntp.nict.jp
server ntp.nict.jp
server ntp.nict.jp
------------------------------

・サービスを起動します。
service ntpd start

・自動起動設定をします。
chkconfig ntpd on

・10分ほど経過したら動作を確認します。
ntpq -p
---(このような表示があればOKです)---------------------------
*ntp-b2.nict.go. .NICT. 1 u 64 64 377 14.514 -2.500 10.347
+ntp-a3.nict.go. .NICT. 1 u 58 128 377 33.064 -12.271 21.193
+ntp-a2.nict.go. .NICT. 1 u 57 128 377 21.539 -4.624 11.474
------------------------------


========== Gmailリレー設定 ==========
・GmailのSMTP認証情報ファイルの作成
vi /etc/postfix/gmail
---(下記を追加)---------------------------
[smtp.gmail.com]:587 <Gmailのアドレス>:<Gmailのパスワード>
---------------------------
chmod 600 /etc/postfix/gmail
postmap /etc/postfix/gmail

・Postfixの設定
vi /etc/postfix/main.cf
---(下記を追加)---------------------------
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/gmail
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_use_tls = yes
------------------------------

・postfixを再起動します
service postfix restart

・root宛メールの送信先を変更します
vi /etc/aliases
---(下記を追加)---------------------------
root: <Gmailのアドレス>
---------------------------

・設定を反映させます。
newaliases

・メールが送信できる事を確認します
echo test | mail -s `hostname` root


========== リポジトリの追加(64bit) ==========
・RPMForge
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

・epal
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6

・remi
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi

vi /etc/yum.repos.d/remi.repo
---(下記を変更)---------------------------
[remi]
name=Les RPM de remi pour Enterprise Linux 6 - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/6/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/6/remi/mirror
enabled=0
 ↓
enabled=1
------------------------------


========== 各種ミドルウェアインストール ==========
※バージョンは2013年3月20日時点のものです。

・Apache(2.2.15-26)
yum -y install httpd-devel
yum -y install mod_ssl

・PHP(5.4.13-1)
yum remove php php-*
yum -y install php
yum -y install php-devel
yum -y install php-pdo
yum -y install php-mysql
yum -y install php-mbstring
yum -y install php-mcrypt
yum -y install php-gd
yum -y install php-pear
yum -y install php-pear-DB
yum -y install php-pear-Auth-*
yum -y install php-pecl-apc-devel
yum -y install zlib-devel

・MySQL(5.5.30-1)
yum -y install mysql-devel
yum -y install mysql-server

・memcached(1.4.15-2)
yum -y install memcached-devel
yum -y install php-pecl-memcache


========== リポジトリの無効化 ==========
vi /etc/yum.repos.d/rpmforge.repo
---(下記を変更)---------------------------
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge
mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
 ↓
enabled = 0
------------------------------

vi /etc/yum.repos.d/epel.repo
---(下記を変更)---------------------------
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
 ↓
enabled=0
------------------------------

vi /etc/yum.repos.d/remi.repo
---(下記を変更)---------------------------
[remi]
name=Les RPM de remi pour Enterprise Linux 6 - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/6/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/6/remi/mirror
enabled=1
 ↓
enabled=0
------------------------------


========= Apacheの設定 ==========
・不要なコンフィグを読込まないようにする
mv -i /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.org

・オリジナルのコンフィグをバックアップします。
mv -i /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org

・コンフィグを作成します。
vi /etc/httpd/conf/httpd.conf
---(下記を追加)---------------------------
httpd.conf
------------------------------

・起動
service httpd start

・自動起動設定
chkconfig httpd on


========== PHPの設定 ==========
・エラーログ出力先作成
mkdir /var/log/php
chown apache /var/log/php
chmod 755 /var/log/php

vi /etc/php.ini
---(下記を変更)---------------------------
expose_php = On
 ↓
expose_php = Off

;date.timezone =
 ↓
date.timezone = 'Asia/Tokyo'

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
 ↓
error_reporting = E_ALL & ~E_NOTICE

;error_log = php_errors.log
 ↓
error_log = "/var/log/php/php_errors.log"
------------------------------

・セッションの保存先をmemcacheに設定
vi /etc/php.d/memcache.ini
---(下記を変更)---------------------------
;session.save_handler=memcache
 ↓
session.save_handler=memcache

;session.save_path="tcp://localhost:11211?persistent=1&weight=1&timeout=1&retry_interval=15"
 ↓
session.save_path="tcp://localhost:11211"
------------------------------

vi /etc/httpd/conf.d/php.conf
---(下記を変更)---------------------------
php_value session.save_handler "files"
php_value session.save_path "/var/lib/php/session"
 ↓
#php_value session.save_handler "files"
#php_value session.save_path "/var/lib/php/session"
------------------------------


========== memcachedの設定 ==========
vi /etc/sysconfig/memcached
運用で様子をみて適度に変更
---(デフォルト値)---------------------------
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
------------------------------

・自動起動設定
chkconfig memcached on

・起動
service memcached start
service httpd restart


========== MySQLの設定 ==========
・ログの出力先作成
mkdir /var/log/mysql
chown -R mysql:mysql /var/log/mysql

・オリジナルのコンフィグをバックアップします。
mv -i /etc/my.cnf /etc/my.cnf.org

・コンフィグを作成します。
vi /etc/my.cnf
---(下記を追加)---------------------------
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
user=mysql
character-set-server = utf8
skip-character-set-client-handshake

slow_query_log=1
slow_query_log_file=/var/log/mysql/slow_query.log
long_query_time=1
min_examined_row_limit=1000

[client]
default-character-set = utf8

[mysqld_safe]
log-error=/var/log/mysql/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
------------------------------

・起動
service mysqld start

・自動起動設定
chkconfig mysqld on

・初期設定
mysql_secure_installation
 対話式で設定が始まります。
 rootにパスワードを設定する以外は、すべてエンターでOKです。
---------------------------
(略)
Set root password? [Y/n]
New password: <パスワード>
Re-enter new password:<パスワード>
(略)
---------------------------


========= ログローティション設定 ==========
・不要なログの削除
service httpd stop
rm -f /var/log/httpd/*
service httpd start

vi /etc/logrotate.d/httpd
---(全て削除し下記内容に変更)---------------------------
/var/log/httpd/*log /var/log/php/*log {
daily
missingok
dateext
rotate 60
sharedscripts
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
------------------------------

・確認します
logrotate -dv /etc/logrotate.d/httpd
---下記のような表示であればOKです---------------------------
reading config file /etc/logrotate.d/httpd
reading config info for /var/log/httpd/*log /var/log/php/*log

Handling 1 logs

rotating pattern: /var/log/httpd/*log /var/log/php/*log after 1 days (60 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/httpd/access_log
log does not need rotating
(略)
------------------------------

vi /etc/logrotate.d/mysql
---(下記を追加)---------------------------
/var/log/mysql/*log {
daily
missingok
dateext
rotate 60
sharedscripts
postrotate
if test -x /usr/bin/mysqladmin && \
/usr/bin/mysqladmin ping -u root -p<パスワード> &>/dev/null
then
/usr/bin/mysqladmin flush-logs -u root -p<パスワード>
fi
endscript
}
------------------------------

・パスワードを書いているのでパーミッション設定
chmod 600 /etc/logrotate.d/mysql

・確認します
logrotate -dv /etc/logrotate.d/mysql
---下記のような表示であればOKです---------------------------
reading config file /etc/logrotate.d/mysql
reading config info for /var/log/mysql/*log

Handling 1 logs

rotating pattern: /var/log/mysql/*log after 1 days (60 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/mysql/mysqld.log
log does not need rotating
(略)
------------------------------


========== 自動起動設定確認 ==========
chkconfig --list | grep :on

---下記のような表示であればOKです---------------------------
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
irqbalance 0:off 1:off 2:off 3:on 4:on 5:on 6:off
lvm2-monitor 0:off 1:on 2:on 3:on 4:on 5:on 6:off
memcached 0:off 1:off 2:on 3:on 4:on 5:on 6:off
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sysstat 0:off 1:on 2:on 3:on 4:on 5:on 6:off
udev-post 0:off 1:on 2:on 3:on 4:on 5:on 6:off
------------------------------

・システムを再起動後して各種サービスが自動起動している事を確認します。
shutdown -r now


========== サーバー用秘密鍵・自己証明書の作成(SSL用) ==========
・作成用ディレクトリに移動します
cd /etc/pki/tls/certs/

・オリジナルのMakeファイルをバックアップします
cp -ip Makefile Makefile.org

・サーバー用証明書有効期限を1年から10年に変更します
sed -i 's/365/3650/g' Makefile

・サーバー用秘密鍵・自己証明書の作成
make server.crt
---下記を入力---------------------------
Enter pass phrase:1234(←表示されません)
Verifying - Enter pass phrase:1234(←表示されません)
Enter pass phrase for server.key:1234(←表示されません)
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:<空エンター>
Locality Name (eg, city) [Newbury]:<空エンター>
Organization Name (eg, company) [My Company Ltd]:<空エンター>
Organizational Unit Name (eg, section) []:<空エンター>
Common Name (eg, your name or your server's hostname) []:centos64
Email Address []:<空エンター>
------------------------------

・サーバー用秘密鍵からパスワード削除
openssl rsa -in server.key -out server.key
---下記を入力---------------------------
Enter pass phrase for server.key:1234(←表示されません)
------------------------------

========== Apacheの設定(SSL) ==========
・SSL設定ファイルのオリジナルをバックアッップします
mv -i /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.org

・コンフィグを作成します。
vi /etc/httpd/conf.d/ssl.conf
---(下記を追加)---------------------------
ssl.conf
------------------------------

・httpd再起動
service httpd restart

・httpsで接続できることを確認(自己証明書なので警告が表示されます)


以上です。

Posted on 2013/03/20 Wed. 18:52 [edit]

category: サーバ

thread: Linux  -  janre: コンピュータ

TB: 0    CM: 0

20

LAPPサーバ構築メモ(CentOS6.3+Apache+PostgreSQL9.2+PHP)  

VirtualBox にLAPPサーバを構築したときのメモです。
(VirtualBoxの設定方法はこちら

○ネットワーク構成(※自分の環境に読替えてください)
 ホスト名:  lapp001
 IPアドレス: 192.168.56.201/24
 DNSサーバ: 192.168.100.1

○仮想マシン構成
 メモリ:1024MB
 NIC1:NATアダプター
 NIC2:ホストオンリーアダプター


========= CentOS6.3のインストール ==========
[Welcom to CentOS 6.3!]
Install or upgrade an existing system

[Disc Found]
SKIP

[CentOS6]
NEXT

[What language 〜]
Japanese(日本語)

[このシステム用の適切なキーボードを選択します]
日本語

[どちらのタイプのストレージデバイスにインストールしますか?]
基本ストレージデバイス

[ホスト名]
lapp001.localdomain

[使用するタイムゾーン〜]
アジア/東京
「システムクロックでUTCを使用」のチェックを外す

[rootパスワード]
<パスワード>

[どのタイプをインストールしますか?]
すべての領域を使用する

[ストレージ構成をディスクに書込み中]
(データがすべて失われる旨の警告が表示されます)
データが削除されても問題がなければ「変更をディスクに書込む」を押します

[追加ソフトウェアの選択]
Minimal
「今すぐカスタマイズ」を選択して「次へ」

下記を選択して「次へ」
・ベースシステム>ネットワーキングツール
・ベースシステム>ベース
・開発>開発ツール

インストールが開始します

[おねでとうございます。CentOSのインストールが完了しました]
再起動してください


以下は rootユーザでログインして設定します。


========= ネットワーク関連設定 ==========
・NIC1の設定(NATアダプター)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
---(下記を変更)---------------------------
NM_CONTROLLED="yes"
ONBOOT="no"
 ↓
NM_CONTROLLED="no"
ONBOOT="yes"
------------------------------

・NIC2の設定(ホストオンリーアダプター)
vi /etc/sysconfig/network-scripts/ifcfg-eth1
---(HWADDRの行以外を削除して下記を追加)---------------------------
DEVICE="eth1"
BOOTPROTO="none"
HWADDR="AB:CB:EF:01:23" ←【この行は残す】
NM_CONTROLLED="no"
ONBOOT="yes"
IPADDR="192.168.56.201"
NETMASK="255.255.255.0"
------------------------------

・ネットワークを再起動
service network restart

・上記設定で sshログインができるようになります
ssh root@192.168.56.201

・DNSサーバの設定
vi /etc/resolv.conf
---(全て削除して下記を追加)---------------------------
nameserver 192.168.100.1
------------------------------


========= yumアップグレード ==========
yum -y upgrade


========= 不要サービスの停止 ==========
chkconfig --level 0123456 abrt-ccpp off
chkconfig --level 0123456 abrt-oops off
chkconfig --level 0123456 abrtd off
chkconfig --level 0123456 acpid off
chkconfig --level 0123456 atd off
chkconfig --level 0123456 auditd off
chkconfig --level 0123456 cpuspeed off
chkconfig --level 0123456 haldaemon off
chkconfig --level 0123456 ip6tables off
chkconfig --level 0123456 kdump off
chkconfig --level 0123456 lvm2-monitor off
chkconfig --level 0123456 mdmonitor off
chkconfig --level 0123456 messagebus off
chkconfig --level 0123456 netfs off


========= SELinux無効設定 ==========
vi /etc/sysconfig/selinux
---(下記を変更)---------------------------
SELINUX=enforcing

SELINUX=disabled
------------------------------

・OSを再起動します。
shutdown -r now


========== iptables設定 ==========
・オリジナルのコンフィグのバックアップ
mv -i /etc/sysconfig/iptables /etc/sysconfig/iptables.org

・ssh と httpd のみ許可設定
vi /etc/sysconfig/iptables
---(下記を追加)---------------------------
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp -m multiport --dports 80,443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
------------------------------

・iptablesを再起動します
service iptables restart


========= NTP設定 ==========
・初回は手動で時間合わせをします。
ntpdate ntp.nict.jp

・コンフィグをバックアップします
mv -i /etc/ntp.conf /etc/ntp.conf.org

・コンフィグを設定します。
vi /etc/ntp.conf
---(全て削除して下記を追加)---------------------------
server ntp.nict.jp
server ntp.nict.jp
server ntp.nict.jp
------------------------------

・サービスを起動します。
service ntpd start

・自動起動設定をします。
chkconfig ntpd on

・動作を確認します。
ntpq -p
---このような表示があればOKです。---------------------------
remote refid st t when poll reach delay offset jitter
==============================================================================
ntp-a2.nict.go. .NICT. 1 u 26 64 1 8.929 1.125 0.000
ntp-a3.nict.go. .NICT. 1 u 25 64 1 6.050 -0.852 0.000
ntp-b2.nict.go. .NICT. 1 u 24 64 1 7.877 -0.638 0.000
------------------------------


========= Gmailリレー設定 ==========
・GmailのSMTP認証情報ファイルの作成
vi /etc/postfix/gmail
---(下記を追加)---------------------------
[smtp.gmail.com]:587 <Gmailのアドレス>:<Gmailのパスワード>
---------------------------
chmod 600 /etc/postfix/gmail
postmap /etc/postfix/gmail

・Postfixの設定
vi /etc/postfix/main.cf
---(下記を追加)---------------------------
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/gmail
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_use_tls = yes
------------------------------

・postfixを再起動します
service postfix restart

・root宛メールの送信先を変更します
vi /etc/aliases
---(下記を追加)---------------------------
root: <Gmailのアドレス>
---------------------------

・設定を反映させます。
newaliases

・メールが送信できる事を確認します
echo test | mail -s `hostname` root


========= リポジトリの追加(64bit) ==========
・postgreSQL9.2
rpm -ivh http://yum.postgresql.org/9.2/redhat/rhel-6.3-x86_64/pgdg-centos92-9.2-6.noarch.rpm

・RPMForge
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

・epal
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6

・remi
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi

vi /etc/yum.repos.d/remi.repo
---(下記を変更)---------------------------
[remi]
name=Les RPM de remi pour Enterprise Linux $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror
enabled=0
 ↓
enabled=1
------------------------------


========= 各種ミドルウェアインストール ==========
※バージョンは2013年2月16日時点のものです。

・Apache(2.2.15-15)
yum -y install httpd-devel
yum -y install mod_ssl

・PHP(5.4.11-1)
yum remove php php-*
yum -y install php
yum -y install php-devel
yum -y install php-pdo
yum -y install php-pgsql
yum -y install php-mbstring
yum -y install php-mcrypt
yum -y install php-gd
yum -y install php-pear
yum -y install php-pear-DB
yum -y install php-pear-Auth-*
yum -y install php-pecl-apc-devel
yum -y install zlib-devel

・PostgreSQL(9.2.3-2)
yum -y install postgresql92-devel
yum -y install postgresql92-server
yum -y install postgresql92-contrib

・memcached(1.4.15-2)
yum -y install memcached-devel
yum -y install php-pecl-memcache


========= リポジトリの無効化 ==========
vi /etc/yum.repos.d/rpmforge.repo
---(下記を変更)---------------------------
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge
mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
 ↓
enabled = 0
------------------------------

vi /etc/yum.repos.d/epel.repo
---(下記を変更)---------------------------
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
 ↓
enabled=0
------------------------------

vi /etc/yum.repos.d/remi.repo
---(下記を変更)---------------------------
[remi]
name=Les RPM de remi pour Enterprise Linux $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror
enabled=1
 ↓
enabled=0
------------------------------

vi /etc/yum.repos.d/pgdg-92-centos.repo
---(下記を変更)---------------------------
[pgdg92]
name=PostgreSQL 9.2 $releasever - $basearch
baseurl=http://yum.postgresql.org/9.2/redhat/rhel-$releasever-$basearch
enabled=1
 ↓
enabled=0
------------------------------


========= Apacheの設定 ==========
・不要なコンフィグを読込まないようにする
mv -i /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.org

・オリジナルのコンフィグをバックアップ
mv -i /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org

・コンフィグを作成
vi /etc/httpd/conf/httpd.conf
---(下記を追加)---------------------------
httpd.conf
---httpd.conf(ここまで)---------------------------

・起動
service httpd start

・自動起動設定
chkconfig httpd on


========= PHPの設定 ==========
・エラーログ出力先作成
mkdir /var/log/php
chown apache /var/log/php
chmod 755 /var/log/php

vi /etc/php.ini
---(下記を変更)---------------------------
expose_php = On
 ↓
expose_php = Off

;date.timezone =
 ↓
date.timezone = 'Asia/Tokyo'

error_reporting = E_ALL & ~E_DEPRECATED
 ↓
error_reporting = E_ALL & ~E_NOTICE

;error_log = php_errors.log
 ↓
error_log = "/var/log/php/php_errors.log"
------------------------------

・セッションの保存先をmemcacheに設定
vi /etc/php.d/memcache.ini
---(下記を変更)---------------------------
;session.save_handler=memcache
 ↓
session.save_handler=memcache

;session.save_path="tcp://localhost:11211?persistent=1&weight=1&timeout=1&retry_interval=15"
 ↓
session.save_path="tcp://localhost:11211"
------------------------------

vi /etc/httpd/conf.d/php.conf
---(下記を変更)---------------------------
php_value session.save_handler "files"
php_value session.save_path "/var/lib/php/session"
 ↓
#php_value session.save_handler "files"
#php_value session.save_path "/var/lib/php/session"
------------------------------


========= memcachedの設定 ==========
vi /etc/sysconfig/memcached
運用で様子をみて適度に変更
---(デフォルト値)---------------------------
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
------------------------------

・自動起動設定
chkconfig memcached on

・起動
service memcached start
service httpd restart


========= ログローティション設定 ==========
・不要なログの削除
service httpd stop
rm -f /var/log/httpd/*
service httpd start

vi /etc/logrotate.d/httpd
---(全て削除し下記内容に変更)---------------------------
/var/log/httpd/*log /var/log/php/*log {
daily
missingok
dateext
rotate 60
sharedscripts
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
------------------------------

・確認します
logrotate -dv /etc/logrotate.d/httpd
---下記のような表示であればOKです---------------------------
reading config file /etc/logrotate.d/httpd
reading config info for /var/log/httpd/*log /var/log/php/*log

Handling 1 logs

rotating pattern: /var/log/httpd/*log /var/log/php/*log after 1 days (60 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/httpd/access_log
log does not need rotating
(略)
------------------------------


========= postgreSQLの設定 ==========
・postgresユーザに切換えます
su postgres

・データベースクラスタの作成
/usr/pgsql-9.2/bin/initdb -E UTF-8 --no-locale -D /var/lib/pgsql/9.2/data

・rootユーザに戻ります
exit

・起動
service postgresql-9.2 start

・自動起動設定
chkconfig postgresql-9.2 on

・再度 postgresユーザに切換えます
su postgres

・データベース管理用ユーザ作成(スーパーユーザ)
createuser -Ps admin
------------------------------
Enter password for new role:<パスワード>
Enter it again:<パスワード>
------------------------------

・WEBアプリケーションからの接続用ユーザ作成(ログイン権限のみ)
createuser -Pl webapp
------------------------------
Enter password for new role:<パスワード>
Enter it again:<パスワード>
------------------------------

・データベースユーザの確認
psql -c '\du'
------------------------------
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
admin | Superuser, Create role, Create DB | {}
postgres | Superuser, Create role, Create DB, Replication | {}
webapp | | {}
------------------------------
データベースの作成等は adminユーザで行い、WEBアプリケーション(PHP)からの接続は webappユーザを使います。

・共有メモリの設定
vi /var/lib/pgsql/9.2/data/postgresql.conf
---(下記を変更)---------------------------
shared_buffers = 32MB # min 128kB
 ↓
shared_buffers = 256MB # min 128kB
------------------------------
「shared_buffers」の妥当な初期値はシステムメモリの25%、今回はメモリ1GBのサーバなので 256MBとしました。
参考:http://www.postgresql.jp/document/9.2/html/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-MEMORY

・ログの設定(処理が重くなるので本番サーバには設定しないのが吉)
vi /var/lib/pgsql/9.2/data/postgresql.conf
---(下記を変更)---------------------------
#log_duration = off
 ↓
log_duration = on

#log_line_prefix = '' # special values:
 ↓
log_line_prefix = '%m %u %d [%p] '

#log_statement = 'none' # none, ddl, mod, all
 ↓
log_statement = 'all' # none, ddl, mod, all
------------------------------

・ログディレクトリへのリンク作成
ln -s /var/lib/pgsql/9.2/data/pg_log /var/log/postgresql

・クライアント認証設定
vi /var/lib/pgsql/9.2/data/pg_hba.conf
---(下記を変更)---------------------------
# "local" is for Unix domain socket connections only
local all all trust
 ↓
local all all md5

# IPv4 local connections:
host all all 127.0.0.1/32 trust
 ↓
host all all 127.0.0.1/32 md5

# IPv6 local connections:
host all all ::1/128 trust
 ↓
#host all all ::1/128 trust
------------------------------

・設定を反映させるため再起動
service postgresql-9.2 restart


========== PostgreSQL(libpq) Version を合わせる ==========
PHPのPostgreSQLモジュールのみ9.2のライブラリを使ってコンパイルしますので、インストールしたphpと同じバージョンのソースを本家からダウンロードしておきます。(今回は5.4.11)

・適当な場所に展開
tar xvjf php-5.4.11.tar.bz2

・pgsqlモジュールのディレクトリへ移動
cd php-5.4.11/ext/pgsql/

・コンパイルしてインストール
phpize
./configure --with-pgsql=/usr/pgsql-9.2
make
make test
make install

・インストールが終わったらApacheを再起動
service httpd restart


========== PostgreSQL(libpq) Version を合わせる(pdo_pgsql) ==========
pecl download pdo_pgsql
tar xvzf PDO_PGSQL-1.0.2.tgz
cd PDO_PGSQL-1.0.2
phpize
./configure --with-pdo-pgsql=/usr/pgsql-9.2
make
make test
---(下記エラーが発生します。原因調査中2013-02-13)---------------------------
Warning: PHP Startup: Unable to load dynamic library '/home/admin/src/PDO_PGSQL-1.0.2/modules/pdo_pgsql.so' - /home/admin/src/PDO_PGSQL-1.0.2/modules/pdo_pgsql.so: undefined symbol: php_pdo_register_driver in Unknown on line 0
------------------------------

・エラーが気になるが、とりあえずインストールしておく
make install

・インストールが終わったらApacheを再起動
service httpd restart


========== 自動起動設定確認 ==========
chkconfig httpd on
chkconfig memcached on
chkconfig postgresql-9.2 on

chkconfig --list | grep :on
---下記のような表示であればOKです---------------------------
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
irqbalance 0:off 1:off 2:off 3:on 4:on 5:on 6:off
memcached 0:off 1:off 2:on 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
postgresql-9.2 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sysstat 0:off 1:on 2:on 3:on 4:on 5:on 6:off
udev-post 0:off 1:on 2:on 3:on 4:on 5:on 6:off
------------------------------

・システムを再起動後してサービスが自動起動している事を確認


========= サーバー用秘密鍵・オレオレ証明書作成 の作成(SSL用) ==========
・作成用ディレクトリに移動します
cd /etc/pki/tls/certs/

・オリジナルのMakeファイルをバックアップします
cp -ip Makefile Makefile.org

・サーバー用証明書有効期限を1年から10年に変更します
sed -i 's/365/3650/g' Makefile

・サーバー用秘密鍵・証明書作成
make server.crt
---下記を入力---------------------------
Enter pass phrase:1234(←表示されません)
Verifying - Enter pass phrase:1234(←表示されません)
Enter pass phrase for server.key:1234(←表示されません)
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:<空エンター>
Locality Name (eg, city) [Newbury]:<空エンター>
Organization Name (eg, company) [My Company Ltd]:<空エンター>
Organizational Unit Name (eg, section) []:<空エンター>
Common Name (eg, your name or your server's hostname) []:lapp001
Email Address []:<空エンター>
------------------------------

・サーバー用秘密鍵からパスワード削除
openssl rsa -in server.key -out server.key
---下記を入力---------------------------
Enter pass phrase for server.key:1234(←表示されません)
------------------------------


========= Apacheの設定(SSL) ==========
・SSL設定ファイルのオリジナルをバックアッップします
mv -i /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.org

vi /etc/httpd/conf.d/ssl.conf
---(下記を追加)---------------------------
ssl.conf
------------------------------

・httpd再起動
service httpd restart

・httpsで接続できることを確認(オレオレ証明書なので警告が表示されます)



以上です。

Posted on 2013/02/16 Sat. 19:07 [edit]

category: サーバ

thread: サーバー  -  janre: コンピュータ

TB: 0    CM: 0

16

Subversion共有リポジトリ設定メモ(Linux/CentOS) 

Subversionでリポジトリを共有するには以下の方式があります。

・ssh
・http(Apache+mod_dav_svn.so)
・svnserve

色々試してみましたが、「Apache Subversion」というだけあって http(Apache)を使うのがサクッといきます。

以下LAMP構成済のサーバに設定した時のメモです。
リポジトリ閲覧用に「ViewVC」もインストールします。

Subversion関連のインストール
yum -y install subversion
yum -y install mod_dav_svn


共有リポジトリの作成
mkdir /var/www/subversion
svnadmin create /var/www/subversion/repos
sudo chown -R apache:apache /var/www/subversion
「/var/www/subversion/repos」が共有リポジトリです。
この親ディレクトリ「/var/www/subversion」を Apache+mod_dav_svn.so で設定します。
※リポジトリディレクトリではなく、親ディレクトリを設定する点に注意です。


Apacheの設定
オリジナルのコンフィグをキープ
mv /etc/httpd/conf.d/subversion.conf /etc/httpd/conf.d/subversion.conf.org

今回はVirtualHostを使って設定します。URLは「http://svn/」になります。
vi /etc/httpd/conf.d/subversion.conf
---(下記を追加)---------------------------
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

<VirtualHost *:80>
    ServerName svn
    <Location />
        DAV svn
        SVNParentPath /var/www/subversion
        AuthType Basic
        AuthName "Subversion Repository Realm"
        AuthUserFile /var/www/.svnusers
        Require valid-user
    </Location>
    ErrorLog logs/svn_error_log
    CustomLog logs/svn_access_log combined
</VirtualHost>
------------------------------

Apache再起動
service httpd restart

共有リポジトリの設定は以上です。


ユーザの作成
テスト用に2ユーザ作成してみます。
htpasswd -c /var/www/.svnusers harry
htpasswd /var/www/.svnusers sally

ブラウザで「http://svn/repos/」にアクセスして以下のように表示されればOKです。
svn01.png


ViewVCインストール(リポジトリ閲覧用)
RPMforgeリポジトリからインストールします。
yum -y --enablerepo=rpmforge install viewvc

ViewVCの設定
vi /etc/viewvc/viewvc.conf
---(下記を変更)---------------------------
#root_parents =
 ↓
root_parents = /var/www/subversion: svn

#use_localtime = 0
 ↓
use_localtime = 1
------------------------------

オリジナルのApahceコンフィグをキープ
mv /etc/httpd/conf.d/viewvc.conf /etc/httpd/conf.d/viewvc.conf.org

こちらもVirtualHostで設定します。URLは「http://viewvc.svn/svn/」です。
vi /etc/httpd/conf.d/viewvc.conf
---(下記を追加)---------------------------
<VirtualHost *:80>
ServerName viewvc.svn

    ScriptAlias /svn /var/www/cgi-bin/viewvc.cgi
    ScriptAlias /query /var/www/cgi-bin/query.cgi
    Alias /viewvc-static /var/www/viewvc

    <Directory /var/www/viewvc>
        Allow from all
    </Directory>

    <Location />
        AuthType Basic
        AuthName "Subversion Repository Realm"
        AuthUserFile /var/www/.svnusers
        Require valid-user
    </Location>

    ErrorLog logs/viewvc_error_log
    CustomLog logs/viewvc_access_log combined
</VirtualHost>
------------------------------

Apache再起動
service httpd restart

ブラウザで「http://viewvc.svn/svn/」にアクセスして以下のように表示されればOKです。
svn02.png


動作テスト
クライアントPCの適当なディレクトリで作業します。

プロジェクトディレクトリの作成
mkdir -p sample/branches
mkdir sample/tags
mkdir sample/trunk

リポジトリに登録
svn --username harry import sample http://svn/repos/sample -m "サンプルプロジェクトの登録"

下記のような表示がされれば登録完了です。
追加しています sample/branches
追加しています sample/tags
追加しています sample/trunk

Committed revision 1.

登録後、元ディレクトリは削除してOKです。
rm -rf sample

チェックアウト〜コミット確認
svn --username harry checkout http://svn/repos/sample/trunk harry_sumple
cd harry_sumple/
echo "test" > test.txt
svn add test.txt
svn commit -m "テストファイルの追加"
svn up
svn log

下記のような表示がされればOKです。
------------------------------------------------------------------------
r2 | harry | 2012-10-08 22:38:24 +0900 (月, 08 10 2012) | 1 line

テストファイルの追加
------------------------------------------------------------------------
r1 | harry | 2012-10-08 22:23:20 +0900 (月, 08 10 2012) | 1 line

サンプルプロジェクトの登録
------------------------------------------------------------------------

サーバ上ディレクトリのパーミッション関連確認のためユーザ「sally」でもチェックアウト〜コミットしてみます。
svn --username sally checkout http://svn/repos/sample/trunk sally_sumple
cd sally_sumple/
echo "addline" >> test.txt
svn commit -m "2行目(addline)を追記"
svn up
svn log

下記のような表示がされればOKです。
------------------------------------------------------------------------
r3 | sally | 2012-10-08 22:46:52 +0900 (月, 08 10 2012) | 1 line

2行目(addline)を追記
------------------------------------------------------------------------
r2 | harry | 2012-10-08 22:38:24 +0900 (月, 08 10 2012) | 1 line

テストファイルの追加
------------------------------------------------------------------------
r1 | harry | 2012-10-08 22:23:20 +0900 (月, 08 10 2012) | 1 line

サンプルプロジェクトの登録
------------------------------------------------------------------------


動作テストでは「/var/www/subversion/repos」以下にプロジェクトリポジトリを作成しましたが、リビジョン番号が「repos」以下で共有されてしまいます。
プロジェクトごとにディレクトリを分けて管理すると、リビジョン番号が独立されユーザのアクセス制限もプロジェクトごとに設定できるのでオススメです。

「/var/www/subversion/project1」
「/var/www/subversion/project2」
「/var/www/subversion/project3」


以上です。

Posted on 2012/10/08 Mon. 23:27 [edit]

category: サーバ

thread: サーバー  -  janre: コンピュータ

TB: 0    CM: 0

08

PostgreSQL バックスラッシュのエスケープ処理が変更 

PostgreSQL9.1からバックスラッシュをエスケープしないのが、デフォルトの設定になったようです。
http://www.postgresql.jp/document/9.1/html/runtime-config-compatible.html#GUC-STANDARD-CONFORMING-STRINGS

DBにJSONデータを書込む際に preg_quote() などの処理をしていると、バックスラッシュがそのまま2重に書込まれてしまい、書込んだJSONデータをjson_decode() してもデコードできず nullが返ってきます。

本来はアプリケーション側の処理を変更するべきなのですが、
取急ぎPostgreSQLの設定変更でしのいでいます。(^^;)
vi ~/Library/Application\ Support/Postgres/var/postgresql.conf
---(下記を変更)---------------------------
#standard_conforming_strings = on
 ↓
standard_conforming_strings = off
------------------------------
※上記はMacOSX「Postgres.app」のコンフィグの場所

Posted on 2012/09/29 Sat. 15:16 [edit]

category: サーバ

thread: サーバー  -  janre: コンピュータ

TB: 0    CM: 0

29

VirtualBox for OSX に Linux(CentOS6.3)をインストール 



【お知らせ】この記事は、http://blog.apar.jp/linux/402/ に引越いたしました。


VirtualBox(https://www.virtualbox.org)は無料で使える仮想化ソフトです。
現時点での最新版は、MacOSX10.8.2にも対応しています。

VirtualBox自体の使い方はとても分かりやすいのですが、ネットワーク設定部分で少し戸惑ったのでメモしておきます。

【インストール環境】
 ホストOS: MacOSX10.8.2 + VirtualBox 4.2.1
 ゲストOS: CentOS6.3

仮想マシンの作成
VirtualBoxの「仮想マシン」メニューから「新規」を選択して、仮想マシンを作成します。
今回は下記設定で作成しましたが用途にあわせて設定してください。

・名前とオペーレーティングシステム
 CentOSは RedHatクローンなので「RedHat(64bit)」を選択しておきました。
VB001.png

・メモリーサイズ (652MB以上に設定するのがオススメです)
VB002.png

・ハードドライブ
VB_DRIVE.png

・ハードドライブのタイプ
VB_TYPE.png

・物理ハードドライブにあるストレージ
VB_ST.png

・ファイルの場所とサイズ
VB_FILESIZE.png

 以上で仮想マシンが作成されました。この仮想マシンにCentOSをインストールします。 VB_CREATE.png
ゲストOS(CentOS6.3)のインストール
CentOS6.3インストール用DVDの isoファイル「CCentOS-6.3-x86_64-bin-DVD1.iso」をダウンロードしておきます。

・作成した仮想マシン「CentOS6.3」を選択して「設定」を押します
VB_INST0.png

・ストレージを選択し、「IDEコントローラ」のCD/DVDデバイスの追加ボタンを押します
VB_INST1.png

・「ディスクを選択」を押します
VB_INST2.png

・ダウンロードした「CentOS-6.3-x86_64-bin-DVD1.iso」を選択して「オープン」を押します
VB_INST3.png

・仮想マシンに「CentOS-6.3-x86_64-bin-DVD1.iso」が追加されました
VB_INST4.png

・仮想マシンを起動するとCentOSのインストールが始まります。
(仮想マシンから抜けるには、左の「command」キーを押します)
VB_INST5.png

CentOS6.3をインストールします。インストール方法はこちらをご参照ください。

VirtualBox用のネットワーク設定
 仮想マシンには標準でNATタイプのNIC(eth0)が接続されています。
VB_NET1.png

CentOS6.3のデフォルトでは、起動時にNICが有効にならないため設定を変更しておきます。
vi /etc/sysconfig/network-scripts/ifcfg-eth0
---(下記を変更)---------------------------
NM_CONTROLLED="yes"
ONBOOT="no"
 ↓
NM_CONTROLLED="no"
ONBOOT="yes"
------------------------------

・ネットワークを再起動
service network restart

ゲストOSのIPアドレスは「10.0.2.15」が割当てられます。
デフォルトGWは「10.0.2.2」です。
VB_NET2.png
以上でゲストOS(CentOS)から外部への通信はできますが、
ホストOSを含め、外部からゲストOSへの通信はできません。


そこで外部から仮想マシンと ssh通信するため、ポートフォワード設定を使ってみます。
・設定>ネットワークを選択し「ポートフォワーディング」を押します
VB_NET3.png

・「+」ボタンを押して下記を設定します。※ホストIPは環境に合わせて設定してください。
VB_NET4.png

・下記コマンドで、ホストOSなど外部から仮想マシンにssh接続ができます
ssh -p10022 root@<ホストIP>

ホストオンリーアダプターの設定
NATタイプのNICだと複数の仮想マシン間で通信することができないようです。割当てられるIPアドレス「10.0.2.15」を手動で「10.0.2.16」に変更したとしても、別のネットワークセグメントにあるためか(?)通信できません。

そこで、仮想マシンにホストオンリーアダプターを追加して、ホストOSや他の仮想マシンとの通信はこちらを利用します。ただし「ホストオンリー」という名の通り、インターネットなど外部ネットワークとは接続できないのでNATアダプターは残しておきます。


・VirtualBox>環境設定>ネットワークを選択 「+」ボタンを押します
HO1.png

・「vboxnet0」ホストオンリーネットワークが作成されます
HO2.png

・「ドライバー」ボタンを押してIPアドレスやHDCPの設定を変更することもできますが、今回はデフォルトの設定のままにしておきます
HO3.png

「192.168.56.1」がホストOSに割当てられます
[ホストOS]$ ifconfig vboxnet0
vboxnet0: flags=8843

・仮想マシンの設定>ネットワーク>アダプター2を選択、下記を設定して「OK」を押します
 ※ホストオンリーアダプターを追加する前に、仮想マシンをOFFにしておきます。
HO4.png

・ホストオンリーアダプター(eth1)が追加されました
HO5.png

・仮想マシンを起動してログインします

・追加したホストオンリーアダプターのMACアドレスを調べます
[root@centos63 ~]# ifconfig eth1
eth1 Link encap:Ethernet HWaddr 08:00:27:7A:6A:BA
「08:00:27:7A:6A:BA」がホストオンリーアダプターのMACアドレスです。

・ホストオンリーアダプター(eth1)を設定します
 (先ほど調べたMACアドレスを「HWADDR」に指定)
[root@centos63 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
---(下記を追加)---------------------------
DEVICE="eth1"
HWADDR="08:00:27:7A:6A:BA"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO="none"
IPADDR="192.168.56.201"
NETMASK="255.255.255.0"
------------------------------

・ネットワークサービスを再起動します
[root@centos63 ~]# service network restart

ホストOSからホストオンリーアダプター経由で、仮想マシンと通信ができています。
[ホストOS]$ ping 192.168.56.201
PING 192.168.56.201 (192.168.56.201): 56 data bytes
64 bytes from 192.168.56.201: icmp_seq=0 ttl=64 time=0.439 ms
64 bytes from 192.168.56.201: icmp_seq=1 ttl=64 time=0.408 ms
64 bytes from 192.168.56.201: icmp_seq=2 ttl=64 time=0.508 ms


少しややこしくなったのでネットワーク図にしてみました。つたない図ですみません(^^;)
仮想ネットワーク図
以上です。

MacBookAir(Core i5 1.7Ghz メモリ:4GB)+VirtualBox上で仮想マシンを2〜3台動かしてみましたが、特に動作が不安定になることもなくサクサク動きます。開発環境用途などでしたら機能的にも十分なのではないでしょうか。

Posted on 2012/09/22 Sat. 14:30 [edit]

category: サーバ

thread: サーバー  -  janre: コンピュータ

TB: 0    CM: 0

22