2014年最新版 LAMP開発環境の構築方法 ~ LAMP環境構築編

2014年最新版 LAMP 開発環境の構築 ~ 仮想環境構築編

はじめに

前回の記事では、LAMP環境を構築する仮想環境の構築方法について、解説しました。第2回は、作成した仮想環境にLAMP環境を構築する方法について解説します。

構築するLAMP環境

LAMP開発環境として、下記のソフトウエアをインストールします。

ソフトウエアパッケージバージョン/リポジトリ最新バージョン
Apache2.2.15/base2.4.7
MySQL5.5.35/remi5.6.15
PHP5.4.24/remi5.5.8

リポジトリのインストール

CentOS公式サイトでは、提供されないパッケージをインストールするため、サードパーティリポジトリをインストールします。
今回インストールするリポジトリは、開発者に必須とも言えるリポジトリです。

  1. リポジトリのダウンロード
    $ sudo yum -y install wget
    $ wget -q ftp://ftp.kddilabs.jp/Linux/distributions/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
    $ wget -q http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
    $ wget -q http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
    
    [vagrant@lamp ~]$ sudo yum -y install wget
    Loaded plugins: fastestmirror
    Determining fastest mirrors
    Including mirror: ftp.riken.jp
    Including mirror: mirror.fairway.ne.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: ftp.iij.ad.jp
     * base: ftp.riken.jp
    Including mirror: ftp.riken.jp
    Including mirror: mirror.fairway.ne.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: ftp.iij.ad.jp
     * extras: ftp.riken.jp
    
    [vagrant@lamp ~]$ wget -q ftp://ftp.kddilabs.jp/Linux/distributions/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
    [vagrant@lamp ~]$ wget -q http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
    [vagrant@lamp ~]$ wget -q http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
    [vagrant@lamp ~]$
    
  2. リポジトリのインストール

    ダウンロードしたリポジトリをインストールします。

    $ sudo rpm --upgrade --verbose --hash epel-release-6-8.noarch.rpm
    $ sudo rpm --upgrade --verbose --hash remi-release-6.rpm
    $ sudo rpm --upgrade --verbose --hash rpmforge-release-0.5.3-1.el6.rf.i686.rpm
    
    [vagrant@lamp ~]$ sudo rpm --upgrade --verbose --hash epel-release-6-8.noarch.rpm
    warning: epel-release-6-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
    Preparing...                ########################################### [100%]
       1:epel-release           ########################################### [100%]
    [vagrant@lamp ~]$ sudo rpm --upgrade --verbose --hash remi-release-6.rpm
    warning: remi-release-6.rpm: Header V3 DSA/SHA1 Signature, key ID 00f97f56: NOKEY
    Preparing...                ########################################### [100%]
       1:remi-release           ########################################### [100%]
    [vagrant@lamp ~]$ sudo rpm --upgrade --verbose --hash rpmforge-release-0.5.3-1.el6.rf.i686.rpm
    warning: rpmforge-release-0.5.3-1.el6.rf.i686.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
    Preparing...                ########################################### [100%]
       1:rpmforge-release       ########################################### [100%]
    [vagrant@lamp ~]$
    
  3. リポジトリの設定変更

    インストールしたリポジトリを、パッケージインストール時に明示的に指定して利用するため、デフォルトで使用しないに設定します。

    $ for repo in remi epel rpmforge; do cat /etc/yum.repos.d/$repo.repo | sed 's/^enabled.*$/enabled = 0/' > /tmp/repo; sudo cp -p /etc/yum.repos.d/$repo.repo /etc/yum.repos.d/$repo.repo.old; sudo cp /tmp/repo /etc/yum.repos.d/$repo.repo; rm -f /tmp/repo; done
    
    5001-05

Apache環境の構築

Apacheをbaseリポジトリからインストールし、設定を行います。

  1. Apacheのインストール

    Apacheを、baseリポジトリからインストールします。

    $ sudo yum -y install httpd
    
    [vagrant@lamp ~]$ sudo yum -y install httpd
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    Including mirror: ftp.riken.jp
    Including mirror: mirror.fairway.ne.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: ftp.iij.ad.jp
     * base: ftp.riken.jp
    Including mirror: ftp.riken.jp
    Including mirror: mirror.fairway.ne.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: ftp.iij.ad.jp
     * extras: ftp.riken.jp
    
  2. Apacheの設定

    Apache設定ファイルを、下記のとおり編集します。

    $ sudo vi /etc/httpd/conf/httpd.conf
    
    ServerAdmin root@lamp.vagrantup.com
    ServerName lamp.vagrantup.com
    
    5001-08

    編集が終了したら、設定ファイルのチェックを行います。

    $ httpd -t
    
    5001-09
  3. Apacheの起動

    Apacheを起動し、正常起動を確認後、自動起動設定を行います。

    $ sudo service httpd start
    $ sudo chkconfig httpd on
    
    5001-10

    ブラウザでアクセスすると、デフォルトページが表示されます。

    5001-11

MySQL環境の構築

MySQLをインストールし、MySQLの設定を行います。

  1. MySQLのインストール

    MySQLを、remiリポジトリからインストールします。

    $ sudo yum -y install --enablerepo=remi mysql-server
    
    [vagrant@lamp ~]$ sudo yum -y install --enablerepo=remi mysql-server
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    Including mirror: ftp.riken.jp
    Including mirror: mirror.fairway.ne.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: ftp.iij.ad.jp
     * base: ftp.riken.jp
    Including mirror: ftp.riken.jp
    Including mirror: mirror.fairway.ne.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: ftp.iij.ad.jp
     * extras: ftp.riken.jp
    
  2. MySQLの設定

    MySQL設定ファイル(/etc/my.cnf)を、下記のとおり編集します。

    $ sudo vi /etc/my.cnf
    
    [mysqld]
    character-set-server=utf8
    [mysql]
    default-character-set=utf8
    
    5001-14
  3. MySQLの起動

    MySQLを起動し、正常起動を確認後、自動起動設定を行います。

    $ sudo service mysqld start
    $ sudo chkconfig mysqld on
    
    [vagrant@lamp ~]$ sudo service mysqld start
    Initializing MySQL database:  Installing MySQL system tables...
    OK
    Filling help tables...
    OK
    
    To start mysqld at boot time you have to copy
    support-files/mysql.server to the right place for your system
    
    PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
    To do so, start the server, then issue the following commands:
    
    /usr/bin/mysqladmin -u root password 'new-password'
    /usr/bin/mysqladmin -u root -h lamp.vagrantup.com password 'new-password'
    
    Alternatively you can run:
    /usr/bin/mysql_secure_installation
    
    which will also give you the option of removing the test
    databases and anonymous user created by default.  This is
    strongly recommended for production servers.
    
    See the manual for more instructions.
    
    You can start the MySQL daemon with:
    cd /usr ; /usr/bin/mysqld_safe &
    
    You can test the MySQL daemon with mysql-test-run.pl
    cd /usr/mysql-test ; perl mysql-test-run.pl
    
    Please report any problems with the /usr/bin/mysqlbug script!
    
                                                               [  OK  ]
    Starting mysqld:                                           [  OK  ]
    [vagrant@lamp ~]$ sudo chkconfig mysqld on
    [vagrant@lamp ~]$
    

    MySQLのデフォルト文字コードを含む、ステータスを表示します。

    $ mysql -e status
    
    [vagrant@lamp ~]$ mysql -e status
    --------------
    mysql  Ver 14.14 Distrib 5.5.35, for Linux (i686) using readline 5.1
    
    Connection id:          2
    Current database:
    Current user:           vagrant@localhost
    SSL:                    Not in use
    Current pager:          stdout
    Using outfile:          ''
    Using delimiter:        ;
    Server version:         5.5.35 MySQL Community Server (GPL) by Remi
    Protocol version:       10
    Connection:             Localhost via UNIX socket
    Server characterset:    utf8
    Db     characterset:    utf8
    Client characterset:    utf8
    Conn.  characterset:    utf8
    UNIX socket:            /var/lib/mysql/mysql.sock
    Uptime:                 1 min 30 sec
    
    Threads: 1  Questions: 5  Slow queries: 0  Opens: 33  Flush tables: 1  Open tables: 26  Queries per second avg: 0.055
    --------------
    
    [vagrant@lamp ~]$
    
  4. MySQLのセキュリティ設定

    デフォルトインストールのMySQLでは、テスト用データベースや匿名ユーザーが登録されていますので、これらのデータを削除し、セキュアな設定を行います。

    $ sudo mysql_secure_installation
    
    
    [vagrant@lamp ~]$ sudo mysql_secure_installation
    
    
    
    
    NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
          SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
    
    
    In order to log into MySQL to secure it, we'll need the current
    password for the root user.  If you've just installed MySQL, and
    you haven't set the root password yet, the password will be blank,
    so you should just press enter here.
    
    Enter current password for root (enter for none):
    OK, successfully used password, moving on...
    
    Setting the root password ensures that nobody can log into the MySQL
    root user without the proper authorisation.
    
    Set root password? [Y/n]
    New password:
    Re-enter new password:
    Password updated successfully!
    Reloading privilege tables..
     ... Success!
    
    
    By default, a MySQL installation has an anonymous user, allowing anyone
    to log into MySQL without having to have a user account created for
    them.  This is intended only for testing, and to make the installation
    go a bit smoother.  You should remove them before moving into a
    production environment.
    
    Remove anonymous users? [Y/n]
     ... Success!
    
    Normally, root should only be allowed to connect from 'localhost'.  This
    ensures that someone cannot guess at the root password from the network.
    
    Disallow root login remotely? [Y/n]
     ... Success!
    
    By default, MySQL comes with a database named 'test' that anyone can
    access.  This is also intended only for testing, and should be removed
    before moving into a production environment.
    
    Remove test database and access to it? [Y/n]
     - Dropping test database...
     ... Success!
     - Removing privileges on test database...
     ... Success!
    
    Reloading the privilege tables will ensure that all changes made so far
    will take effect immediately.
    
    Reload privilege tables now? [Y/n]
     ... Success!
    
    Cleaning up...
    
    
    
    All done!  If you've completed all of the above steps, your MySQL
    installation should now be secure.
    
    Thanks for using MySQL!
    

    コマンドを実行すると、ウィザード形式で下記の質問がありますが、全てエンターキーを入力します。
    ただし、Set root password? では、rootユーザーのパスワード設定を行いますので、MySQLのrootユーザーのパスワードを入力します。

    Enter current password for root (enter for none)
    Set root password? [Y/n]
    Remove anonymous users? [Y/n]
    Disallow root login remotely? [Y/n]
    Remove test database and access to it? [Y/n]
    Reload privilege tables now? [Y/n]
    

PHP環境の構築

  1. PHPのインストール

    サードパーティリポジトリから、PHP本体および、関連パッケージをインストールします。

    $ sudo yum -y install --enablerepo=remi php
    $ sudo yum -y install --enablerepo=remi php-mysql php-gd php-pdo php-pear phppgsql
    $ sudo yum -y install --enablerepo=remi php-mbstring php-devel
    $ sudo yum -y install --enablerepo=epel,remi,rpmforge php-mcrypt
    
    [vagrant@lamp ~]$ sudo yum -y install --enablerepo=remi php
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    Including mirror: ftp.riken.jp
    Including mirror: mirror.fairway.ne.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: ftp.iij.ad.jp
     * base: ftp.riken.jp
    Including mirror: ftp.riken.jp
    Including mirror: mirror.fairway.ne.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: ftp.iij.ad.jp
     * extras: ftp.riken.jp
    
    [vagrant@lamp ~]$ sudo yum -y install --enablerepo=remi php-mysql php-gd php-pdo php-pear phppgsql
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    Including mirror: ftp.riken.jp
    Including mirror: mirror.fairway.ne.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: ftp.iij.ad.jp
     * base: ftp.riken.jp
    Including mirror: ftp.riken.jp
    Including mirror: mirror.fairway.ne.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: ftp.iij.ad.jp
    
    [vagrant@lamp ~]$ sudo yum -y install --enablerepo=remi php-mbstring php-devel
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    Including mirror: ftp.riken.jp
    Including mirror: mirror.fairway.ne.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: ftp.iij.ad.jp
     * base: ftp.riken.jp
    Including mirror: ftp.riken.jp
    Including mirror: mirror.fairway.ne.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: ftp.iij.ad.jp
     * extras: ftp.riken.jp
    
    [vagrant@lamp ~]$ sudo yum -y install --enablerepo=epel,remi,rpmforge php-mcrypt
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    epel/metalink                                            | 5.1 kB     00:00
    Including mirror: ftp.riken.jp
    Including mirror: mirror.fairway.ne.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: ftp.iij.ad.jp
     * base: ftp.riken.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: ftp.iij.ad.jp
     * epel: ftp.tsukuba.wide.ad.jp
    Including mirror: ftp.riken.jp
    Including mirror: mirror.fairway.ne.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: ftp.iij.ad.jp
    
  2. PHPの設定

    PHP設定ファイル(/etc/php.ini)を、下記のとおり編集します。

    $ sudo vi /etc/php.ini
    
    date.timezone = Asia/Tokyo
    
    5001-28
  3. Apache再起動

    PHP設定ファイルの編集が終了したら、Apacheを再起動します。

    $ sudo service httpd restart
    
    5001-29
  4. PHP動作確認

    下記の内容を含んだPHPファイルを作成し、DocumentRoot(/var/www/html)にphpinfo.phpとして保存します。

    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    phpinfo</title>
    </head>
    <body>
    <?php
    phpinfo();
    ?>
    </body>
    </html><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    phpinfo</title>
    </head>
    <body>
    <?php
    phpinfo();
    ?>
    </body>
    </html>
    
    5001-30

    ブラウザでアクセスすると、PHPの設定情報が表示されます。

    5001-31

まとめ

ここまで、仮想環境を構築し、LAMP環境の構築方法について解説しました。開発環境は、さまざまなプラットフォームに、さまざまなパッケージをインストールして環境を構築しますが、Vagrantを使用した環境構築では、必要なプラットフォームを簡単にインストールし、本来の開発環境の構築を直ぐに始めることができます。今回は、最小限のLAMP環境を構築しましたが、環境をベースに必要となるパッケージをインストールして下さい。

Comments are closed.