いまさら作るCentOS6の開発環境(LAMP)

古くからあるシステムの動作環境をローカル(Mac)に作ろうと思って、VirtualBoxでいろいろやったので、今後のためにメモ。(今後さらにCentOS6の開発環境を作るということはあるのだろうか・・・。ありそうだけど。)

VirtualBoxとVagrantをインストール

Homebrewは入っているものとして、下記のとおりインストール。

brew install virtualbox
brew install vagrant

Vagrant Boxを使おう

CentOS6を一からインストールするのはかったるいので、Vagrant Boxを使用します。

mkdir centos6
cd centos6
vagrant init generic/centos6
vagrant up

CentOS6のVagrant Boxは、generic/centos6が素性が良さそうで、こまめにアップデートもされているので採用決定。
これだけで、CentOS6の導入完了。

IPアドレスの固定と同期フォルダの設定

Vagrangfileに少し設定を追加します。デフォルトの状態ではコメントアウトされている部分を有効にして、少し書き加えるのが良いでしょう。

まずIPアドレスを固定で設定します。Mac側からゲストOSであるCentOS6にアクセスできるようになります。

  config.vm.network "private_network", ip: "192.168.33.xx"

同期フォルダの設定は下記のとおり。
同期元"."と、同期先"/vagrant"だけで良いのですが、ファイルオーナー等を指定したい場合はownergroupを指定します。

  config.vm.synced_folder ".", "/vagrant", owner: "abc", group: "abc"

後は、vagrant haltして、再度vagrant upでOK。

selinuxとiptables

CentOS7以降やUbuntuに慣れると、この辺の操作を忘れがちになりますね。以前は、CentOS6のことしか知らなかったのに・・・。

まず、selinuxが有効だとセキュリティ的には良いけど、なかなか面倒なことになりがち。あくまで開発環境なので、/etc/sysconfig/selinuxを下記のように編集して、selinuxは無効にしてしまいます。

SELINUX=disabled

次はファイアウォールのiptables。デフォルトではSSHのポートだけ空いているので、/etc/sysconfig/iptablesを編集して、HTTPのポートも開けておきましょう。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

この1行をSSH(22)の行の下あたりに書けば良いかと。

ApacheとPHP

yum install httpd php

いちおう、これで問題なし。PHPのモジュールが必要な場合は、適宜導入します。(後でphpMyAdminのインストールをすれば、MySQL接続等に必要なモジュールは一気に導入されます。)

MySQL

yum install mysql mysql-server mysql-devel

こんな感じでMySQLはインストールできるのですが、導入されるのはかなり古い5.1系。せめて5.6系を使おうとすると、下記のようにします。

sudo yum remove mysql*
sudo yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
sudo yum-config-manager --disable mysql56-community
sudo yum-config-manager --enable mysql55-community
sudo yum install mysql mysql-devel mysql-server

これでMySQL5.1が削除され(デフォルトのMySQLがインストール済みの場合)、MySQL5.6がインストールされます。

このようにMySQLのバージョンを上げた場合は、MySQL自体のuserテーブルの構造が変わっていたりするので、データのアップグレードを行います。

mysql_upgrade -u root -p

phpMyAdmin

yum install phpmyadmin

デフォルトではローカルホストからしか接続出来ないようになっているので、/etc/httpd/conf.d/phpMyAdmin.confを編集して、内部ネットワークからのアクセスだけ許容します。
CentOS6のデフォルトではApache2.2系のため、下記の場所にAllow from 192.168.の行を追加します。

   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
     Allow from 192.168.
   </IfModule>

インストールと設定ファイルの更新が終わった後で、Apacheを再読み込みします。

service httpd reload

この記事を書いた人

井上 研一

経済産業省推進資格ITコーディネータ/ITエンジニア。株式会社ビビンコ代表取締役。コールセンターへのAI導入プロジェクトに参画したことをきっかけに、AI・IoTに強いITコーディネータとして活動。株式会社ビビンコでは、IoTソリューションの開発・導入や、画像認識モデルを活用したアプリの開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。