さくらのVPSにLAMP環境構築する

# 現状

個人で色々と遊ぶためにさくらのレンタルサーバーからさくらのVPSへ乗り換えたので
自分のサーバーに対してやったことのメモもかねて記録していく。

この時点でVPS初回起動済みでCentOS6.6が入っただけの状態から
ログイン用ユーザー作ってsshポート変更までやった。

# 構築するLAMP環境
最終的な目標は標準的なLAMP環境
紳士jenkinsさんと遊び用hubotを入れて遊びたい。
気分でGitBucketかGitLabも入れる。

この記事では以下のLAMP環境を構築する
これらはyumを使用して全部入れる。
まっさらな状態なので基本的に何も入っていない状態からの作業。

* CentOS 6.6(VPSのデフォOSイメージ)
* Apache 2.2
* MySQL 5.6
* php 5.6

~~ぐぐれば散々出るんだけど、とにかくQiitaに何か書いてみたいだけなんです~~

# さくらのVPSを借りたらまずやること。
セキュリティ的にまずは以下の3点はやっておこう
やり方はさくらのナレッジに書いてある。
さらに80番とssh用ポート以外拒否しておくと気が楽。

1. [rootでの直接ログイン不可](http://knowledge.sakura.ad.jp/beginner/2751/)
2. [sshのポート番号変更](http://webkaru.net/linux/change-ssh-port/)
3. [鍵認証](http://www.tooyama.org/ssh-key.html)


# Apache 2.2をインストール

CentOS6.6のyumは標準でApache2.2なのでそのまま入れる。

```
# yum install httpd


=============================================================================================
 Package                Arch            Version                          Repository     Size
=============================================================================================
Installing:
 httpd                  x86_64          2.2.15-39.el6.centos             base          825 k
Installing for dependencies:
 apr-util-ldap          x86_64          1.3.9-3.el6_0.1                  base           15 k
 httpd-tools            x86_64          2.2.15-39.el6.centos             base           75 k

Transaction Summary
=============================================================================================
Install       3 Package(s)

Total download size: 915 k
Installed size: 3.1 M
Is this ok [y/N]:y

Installed:
  httpd.x86_64 0:2.2.15-39.el6.centos

Dependency Installed:
  apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1      httpd-tools.x86_64 0:2.2.15-39.el6.centos

Complete!
```

Apacheインストール完了。
バージョンを確認する。

```
# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Oct 16 2014 14:48:21
```

# MySQL 5.6をインストール
### リポジトリを追加する
CentOS6.6の標準はMySQL5.1なので、MySQL5.6が入ってるMySQL公式のリポジトリを追加する。

```
# rpm -ivh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
Retrieving http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
Preparing...                ########################################### [100%]
   1:mysql-community-release########################################### [100%]
```

リポジトリ追加完了

### インストールする

```
# yum install mysql-community-server

=============================================================================================
 Package                          Arch        Version           Repository              Size
=============================================================================================
Installing:
 mysql-community-libs             x86_64      5.6.25-2.el6      mysql56-community      1.9 M
     replacing  mysql-libs.x86_64 5.1.73-5.el6_6
 mysql-community-libs-compat      x86_64      5.6.25-2.el6      mysql56-community      1.6 M
     replacing  mysql-libs.x86_64 5.1.73-5.el6_6
 mysql-community-server           x86_64      5.6.25-2.el6      mysql56-community       53 M
Installing for dependencies:
 mysql-community-client           x86_64      5.6.25-2.el6      mysql56-community       18 M
 mysql-community-common           x86_64      5.6.25-2.el6      mysql56-community      307 k
 perl-DBI                         x86_64      1.609-4.el6       base                   705 k

Transaction Summary
=============================================================================================
Install       6 Package(s)

Total download size: 75 M
Is this ok [y/N]:y

Installed:
  mysql-community-libs.x86_64 0:5.6.25-2.el6
  mysql-community-libs-compat.x86_64 0:5.6.25-2.el6
  mysql-community-server.x86_64 0:5.6.25-2.el6

Dependency Installed:
  mysql-community-client.x86_64 0:5.6.25-2.el6  mysql-community-common.x86_64 0:5.6.25-2.el6
  perl-DBI.x86_64 0:1.609-4.el6

Replaced:
  mysql-libs.x86_64 0:5.1.73-5.el6_6

Complete!
```
インストール完了。
途中、鍵信じる？とか聞いてくるけどyes。

バージョン確認

```
# mysql --version
mysql  Ver 14.14 Distrib 5.6.25, for Linux (x86_64) using  EditLine wrapper
```

# php5.6をインストール

CentOS6.6の標準だとphp5.3になってしまう。
これじゃモダンなフレームワークは動かないのでremiからphp5.6を入れる。
~~レミって呼んでるからいつも料理の人を思い出してしまう~~

### リポジトリを追加する
#### epelリポジトリを追加

```
# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Retrieving http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
warning: /var/tmp/rpm-tmp.Bi0LOk: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing...                ########################################### [100%]
        package epel-release-6-8.noarch is already installed
```

#### remiリポジトリを追加

```
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
Retrieving http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
warning: /var/tmp/rpm-tmp.L033mF: Header V3 DSA/SHA1 Signature, key ID 00f97f56: NOKEY
Preparing...                ########################################### [100%]
   1:remi-release           ########################################### [100%]
```

### phpインストール前に必要なパッケージをインストール

```
# yum --enablerepo=remi install mcrypt libyaml gd-last

=============================================================================================
 Package              Arch              Version                     Repository          Size
=============================================================================================
Installing:
 gd-last              x86_64            2.1.1-2.el6.remi            remi               135 k
 libyaml              x86_64            0.1.3-4.el6_6               updates             52 k
 mcrypt               x86_64            2.6.8-10.el6                epel                83 k
Installing for dependencies:
 libXpm               x86_64            3.5.10-2.el6                base                51 k
 libmcrypt            x86_64            2.5.8-9.el6                 epel                96 k
 libvpx               x86_64            1.3.0-5.el6_5               base               486 k
 mhash                x86_64            0.9.9.9-3.el6               epel               102 k

Transaction Summary
=============================================================================================
Install       7 Package(s)

Total download size: 1.0 M
Installed size: 2.6 M
Is this ok [y/N]:y

Installed:
  gd-last.x86_64 0:2.1.1-2.el6.remi              libyaml.x86_64 0:0.1.3-4.el6_6
  mcrypt.x86_64 0:2.6.8-10.el6

Dependency Installed:
  libXpm.x86_64 0:3.5.10-2.el6 libmcrypt.x86_64 0:2.5.8-9.el6 libvpx.x86_64 0:1.3.0-5.el6_5
  mhash.x86_64 0:0.9.9.9-3.el6

Complete!

```

こちらも鍵信じる？とか聞いてくるけどyes。
さらにlibt1とlibltdlが無いといってきたのでこちらもインストール

`# yum --enablerepo=remi install t1lib libtool-ltdl`




### php5.6ともろもろをインストール。
そのままだとphp5.3が邪魔してくるのでbaseはdisablerepoで一時的に無効にする
もろもろは自分の作りたい環境に合わせて選択、足りなかったら後で入れることにする。

```
# yum --enablerepo=remi-php56 --disablerepo=base install php php-devel php-common php-cli php-gd php-pdo php-mbstring php-mcrypt php-mysqlnd php-opcache php-yaml

=============================================================================================
 Package                    Arch         Version                      Repository        Size
=============================================================================================
Installing:
 php                        x86_64       5.6.10-1.el6.remi            remi-php56       2.7 M
 php-cli                    x86_64       5.6.10-1.el6.remi            remi-php56       3.9 M
 php-common                 x86_64       5.6.10-1.el6.remi            remi-php56       1.0 M
 php-devel                  x86_64       5.6.10-1.el6.remi            remi-php56       1.2 M
 php-gd                     x86_64       5.6.10-1.el6.remi            remi-php56        74 k
 php-mbstring               x86_64       5.6.10-1.el6.remi            remi-php56       964 k
 php-mcrypt                 x86_64       5.6.10-1.el6.remi            remi-php56        45 k
 php-mysqlnd                x86_64       5.6.10-1.el6.remi            remi-php56       272 k
 php-opcache                x86_64       5.6.10-1.el6.remi            remi-php56       121 k
 php-pdo                    x86_64       5.6.10-1.el6.remi            remi-php56       115 k
 php-pecl-yaml              x86_64       1.2.0-1.el6.remi.5.6         remi-php56        36 k
Installing for dependencies:
 php-pecl-jsonc             x86_64       1.3.7-1.el6.remi.5.6         remi-php56        48 k
 php-pecl-jsonc-devel       x86_64       1.3.7-1.el6.remi.5.6         remi-php56        25 k
 php-pecl-zip               x86_64       1.12.5-1.el6.remi.5.6        remi-php56        82 k

Transaction Summary
=============================================================================================
Install      14 Package(s)

Total download size: 11 M
Installed size: 42 M
Is this ok [y/N]:

Installed:
  php.x86_64 0:5.6.10-1.el6.remi                  php-cli.x86_64 0:5.6.10-1.el6.remi
  php-common.x86_64 0:5.6.10-1.el6.remi           php-devel.x86_64 0:5.6.10-1.el6.remi
  php-gd.x86_64 0:5.6.10-1.el6.remi               php-mbstring.x86_64 0:5.6.10-1.el6.remi
  php-mcrypt.x86_64 0:5.6.10-1.el6.remi           php-mysqlnd.x86_64 0:5.6.10-1.el6.remi
  php-opcache.x86_64 0:5.6.10-1.el6.remi          php-pdo.x86_64 0:5.6.10-1.el6.remi
  php-pecl-yaml.x86_64 0:1.2.0-1.el6.remi.5.6

Dependency Installed:
  php-pecl-jsonc.x86_64 0:1.3.7-1.el6.remi.5.6
  php-pecl-jsonc-devel.x86_64 0:1.3.7-1.el6.remi.5.6
  php-pecl-zip.x86_64 0:1.12.5-1.el6.remi.5.6

Complete!
```

インストール完了。
バージョンを確認する

```
# php -v
PHP 5.6.10 (cli) (built: Jun 11 2015 08:33:51)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
```

## それぞれ起動・確認する

Apache起動
`# apachectl start`
httpでアクセスして「Apache2 test page」表示されれば完了

MySQL起動・確認

```
# /etc/init.d/mysqld start
# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.25 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
```
無事ログイン成功

## phpinfoを設置して確認する
Apacheは動いててもphpが動くか分からないのでphpinfoを設置して確認する。

`# vi /var/www/html/info.php`

```php:info.php
<?php phpinfo();
```
上記内容で保存

/info.phpにアクセスして確認。

phpinfoが表示されれば構築完了。

## サービスに登録して自動起動するようにする

```
# chkconfig httpd on
# chkconfig mysqld on
```

これで再起動などしたあと勝手にhttpdとMySQLが起動する

# 次回は
~~次回はphpMyAdminをインストールする。~~
書いた
[さくらのVPSにphpMyAdminをインストールする](http://qiita.com/inaka_phper/items/ea59b71dc5b3f155496d)