仮想マシン:VMware
ホストOS:Mac OS X(64bit)
ゲストOS:CentOS6.5(64bit)
VMwareのインストールとCentOS 6.5で仮想マシンの立ち上げ
公式サイトより「VMware Fusion 6」をダウンロードする。
今回は構築してみるだけなので30日間有効な無償評価版を利用する。
ネットワークインストール用のisoイメージ「CentOS-6.5-x86_64-netinstall.iso」をダウンロードする。
最初にダウンロードしたVMwareのdmgファイルを実行する。
インストール方法を選択で「イメージからインストール」を選択する。
選択できるイメージがないので「別のイメージを使用」から、先ほどダウンロードしたCentOS6.5のisoイメージを選択する。
OSの選択で「Linux→CentOS(64bit)」を選択する。
「終了→保存」
ここから先の設定は「Mac OS X Mountain Lion + VMware Fusion 5 + CentOS 6.3 + Apache + mod_proxy + PSGI + Movable Type 5.2 のローカル環境を構築した」を参考にしてインストールを進める。
※上記サイトの補足
手順15.
今回利用したURLはこちら →「http://ftp.riken.jp/Linux/centos/6.5/os/x86_64/」
手順16.
ここで「以下のストレージデバイスは、有用なデータを含んでいるかもしれません」ととてつもなく不安になる注意メッセージが出るが、この「ストレージデバイス」はVMwareが物理マシン上の空き領域に確保した仮想マシン用の領域なので、初期化しても物理マシンのデータが消されることはない。なので「どのようなデータであっても破棄してください」を選択する。
仮想サーバーにMac側のターミナルで接続
VMwareからCentOSにrootでログインする。
次のコマンドを実行
# ifconfig
ズラッと出てきたテキストの「eth0」の「inet adder:〜」にあるIPアドレスをメモする。
Mac本体のターミナルを開いて次のコマンドを実行し、パスワードを入力して接続完了。
$ ssh root@メモしたIPアドレス
今後はターミナルからCentOSに接続する。
システムの初期設定
SELinuxが有効だと、環境構築中にブロックされたりするので無効化する。
# vi /etc/selinux/config開いたテキストの真ん中にある「SELINUX=enforcing」を「SELINUX=disabled」にして保存する。
設定を読み込むために再起動する。
# shutdown -r now
システムを最新化する
# yum update -y
今後、環境構築に使いそうなモジュールをインストールする。
# yum install -y wget
# yum install -y gcc
# yum install -y unzip
ファイアーウォールを設定する。
変更する前に既存の設定をオリジナルファイルとして保存しておく。
# cp /etc/sysconfig/iptables /etc/sysconfig/iptables.org
編集する。
# vi /etc/sysconfig/iptables次の内容に書き換えて保存する。
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# SSH, HTTP, FTP1, FTP2, MySQL
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
iptablesを再起動する。
# /etc/rc.d/init.d/iptables restart
Apacheのインストール
Webサーバーが既にインストールされているか確認する。
# yum list installed | grep httpd何も出ないのでインストールする。
# yum install -y httpdhttpdの設定を変更する。
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org行番号を表示する。
# vi /etc/httpd/conf/httpd.conf
:set number行へジャンプするには「行番号 + G」
44行目「ServerTokens OS」を「ServerTokens Prod」に変更する。
OSのままだとアクセスしてきたユーザーにサーバーのOS情報が表示されてしまうので隠す。
276行目「#ServerName www.example.com:80」を「ServerName メモしたIPアドレス」に変更する。コメントアウトを外すこと。
331行目「Options Indexes FollowSymLinks」を「Options -Indexes FollowSymLinks」に変更する。
ブラウザからディレクトリにアクセスした時に内容物が丸見えになってしまうので隠す。
536行目「ServerSignature On」を「ServerSignature Off」に変更する。
ユーザーにサーバー署名自体を表示させない。
保存した後、文法チェックする。
# apachectl configtest
「Syntax OK」だったのでWebサーバーを起動する。
# service httpd start
インストール可能なPHPの詳細を見てみる。
# yum info php
5.3.3とバージョンが古いのでyumのレポジトリを追加して、最新バージョンをインストールできるようにする。
今回は、よく使うらしい「epel」と「remi」を追加する。
インターネットで"epel downloads"と検索
→ https://dl.fedoraproject.org/pub/epel/6/x86_64/
上記サイトで"epel-release"を検索し、ホームディレクトリにダウンロードする。
# wget https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
次に"remi"で検索
→ http://rpms.famillecollet.com/CentOSからバージョン6をダウンロードする。
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpmそれぞれリポジトリに追加する。
# rpm -Uvh epel-release-6-8.noarch.rpm
# rpm -Uvh remi-release-6.rpm
epelの設定ファイルを編集する。
# vi /etc/yum.repos.d/epel.repo6行目の「enabled=1」を「enabled=0」に変更して保存する。
remiはもともと「enabled=0」になっている。
追加したリポジトリからインストール可能なPHPの詳細を見てみる。
# yum info --enablerepo=epel, remi phpバージョンが新しくなったのでPHPをインストールする。使いそうなライブラリも一緒に。
→ PHP 5.4.28
# yum --enablerepo=epel,remi install -y php php-devel php-mysql php-mbstring php-gd
PHPの設定ファイルを編集する。
# cp /etc/php.ini /etc/php.ini.org
# vi /etc/php.ini
以下を探して編集
;error_log = syslogの下に追加
error_log = /var/log/php.log次のコメントアウトを外す
;mbstring.language = Japanese5行下辺りを編集
mbstring.internal_encoding = EUC-JP → UTF-8
10行した当たりのコメントアウトを外す
;mbstring.detect_order = auto次を編集
expose_php = On → Off;date.timezone = を探して編集
date.timezone = Asia/Tokyo
Webサーバーを再起動
# service httpd restart
Redisのインストール
yumのリポジトリからインストールする。
# yum --enablerepo=epel,remi -y install redis
Redisを起動する。
# /etc/init.d/redis start
サーバー起動時にRedisが起動するように設定する。
# chkconfig redis on
Redisをテストしてみる。
# redis-cli
> set 'test' 3
OK
> get 'test'
"3"
> exit
Memcacheのインストール
yumのリポジトリからインストールする。
# yum --enablerepo=remi,epel -y install memcached
Memcacheはrootユーザーで起動できない。
今更ながら作業ユーザーを追加する。
# useradd workuser
# passwd workuser
workuserで入り直す。
sudo権限を与える。
# su
# visudo
「root ALL=(ALL) ALL」の下に「workuser ALL=(ALL) ALL」を追加する。
# exit
初期設定
$ memcached -d -m 64 -p 11211
起動
$ sudo service memcached start
起動確認
$ ps aux | grep memcached
次回以降も自動的に起動
$ sudo chkconfig memcached on
PHPでMemcachedを利用するためのライブラリを追加
$ yum install --enablerepo=remi php-pecl-memcached
「[CentOS] memcachedをインストールして、PHPから使用する」を参考に動作確認。
// test1.php
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->set('key', date('Y/m/d H:i:s'), time() + 60); // 有効期限1分
// test2.php
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
if ($val = $m->get('key')) {
echo $val;
}
test1.php実行後すぐにtest2.phpを実行すると日時が表示されたが、1分経過後にtest2.phpを実行すると何も表示されない。うまいこと動作している。
0 件のコメント:
コメントを投稿