さくらのVPS（CentOS7）でLAMP（mariaDB,PHP5.6）を構成しよう。

手元にあるMacPCを使って説明します。
windowsの方でもTeraTermなどを使ってSSH接続して作業できます。

さくらのVPSにCentOS7をインストールするところは、googleなどで検索すれば出てきます。
私は[さくらのVPSのサポート情報](https://help.sakura.ad.jp/app/answers/detail/a_id/2397/~/カスタムosインストールガイド---centos7-%2F-scientificlinux7)を参考にさせていただきました。


#　初期設定
さくらのVPSのコントロールパネル内にあるコンソールを使ってもいいのですが、ここではSSH接続,公開鍵でのSSHで接続していきます。

ターミナルを起動し
ローカル側の ~/.ssh/known_hosts
にサーバのIPアドレスが書かれていないことを確認。書かれている場合はその行を消去する。

`$ ssh  root@サーバーIPアドレス`
rootのパスワードを入力するとSSH接続できます

## アップデートとvimの設定

```
$ yum update
$ yum -y install vim-enhanced
```

```vim:~/.vimrc
set nocompatible
set history=50
set ignorecase
set smartcase
set hlsearch
set number
set wrap
set encoding=utf-8
set fileencodings=utf-8
set fileformats=unix,dos,mac
syntax on
```

## 一般ユーザー追加

```
$ useradd 'ユーザー名'
$ passwd 'ユーザー名'
```

このユーザのパスワードを設定し、確認のためもう一回パスワードを入力

*$ usermod -G wheel 'ユーザー名'*
ユーザにwheelグループに加える。

wheelグループにsudoの権限を与える。

```
$ visudo
## Allows people in group wheel to run all commands
# %wheel  ALL=(ALL)       ALL
↓　コメントアウト外す
%wheel  ALL=(ALL)       ALL
```


##・SELINUX
  setenforce で無効にします。
$ setenforce 0

getenforceで無効を確認します。
$ getenforce
Permissive

リブート時も無効
$ vim /etc/sysconfig/selinux
...
'#SELINUX=enforcing'
SELINUX=disabled

本当はSElinuxの設定をするべきなのですが、設定が難しいため無効にしました。その代わりFirewallの設定をきちんとします。

#Firewallの設定
#### 現在利用可能なサービス（ポート）を確認します。
$ firewall-cmd --list-services
dhcpv6-client ssh
##### ↑ デフォルトでは、dhcpv6-client ssh のみが有効になっています。
 
#### 現在利用可能なポートを確認します。
$ firewall-cmd --list-ports
 
###### ↑ デフォルトでは、何も設定されていません。
 
 
#### ウェブサーバーのサービス（ポート）を開きます。
$ firewall-cmd --add-service=http
success
 
#### ウェブサーバーのサービス（ポート）を再起動しても開くように設定します。
$ firewall-cmd --permanent --add-service=http
success
 
#### SSHサーバーのポートを開きます。
$ firewall-cmd --add-port=ポート番号/tcp
success
 
#### SSHサーバーのポートを再起動しても開くように設定します。
$ firewall-cmd --permanent --add-port=ポート番号/tcp
success
 
#### 古いSSHサーバーのサービス（ポート）を閉じます。
$ firewall-cmd --remove-service=ssh
success
 
#### 古いSSHサーバーのサービス（ポート）を再起動しても閉じるように設定します。
$ firewall-cmd --permanent --remove-service=ssh
success
 
#### 現在利用可能なサービス（ポート）を確認します。
$ firewall-cmd --list-services
dhcpv6-client http
##### ↑ http が追加され、sshが削除されていることを確認します。
 
#### 現在利用可能なポートを確認します。
$ firewall-cmd --list-ports
ポート番号/tcp
###### ↑ SSHの新しいポートが追加されていることを確認します。

##SSHの設定
```vim:/etc/ssh/sshd_config
#ポート設定(10000番台以上で適当に）
Port 'ポート番号'

#SSH2 
Protocol 2 

#ルートログイン設定
PermitRootLogin no

#鍵認証設定
RSAAuthentication yes
PubkeyAuthentication yes

#パスワードでのログイン（公開鍵でやるならNo）
PasswordAuthentication yes
#パスワード無しでのログイン
PermitEmptyPasswords no
```
変更が終わった後
設定を反映させるために
*$ systemctl restart sshd.service*

FirewallにPootの設定をした後、
ここで今開いているターミナル以外に、ターミナルを一つ起動させる。
そのターミナルで先程作ったユーザでSSH接続する。

*$ ssh -p ポート番号　ユーザー名@サーバーIPアドレス*

接続できたら完了

##公開鍵によるSSH認証

サーバー側（作ったユーザでログイン）で設定
*$ mkdir ~/.ssh*
*$ chmod 700 ~/.ssh*

ローカル側で
*$ ssh-keygen -t rsa*
パスフレーズを決め入力する。（忘れないように）
すると ~/.ssh　以下にid_rsa id_rsa.pubが生成される。

ログイン簡略化
*$ cd ~/.ssh*
*$ mkdir sakura*
*$ mv id_rsa sakura*

```vim:~/.ssh/config
Host sakura
        HostName サーバーIP
        User ユーザー名
        Port ポート番号
        IdentityFile ~/.ssh/sakura/id_rsa
```
パーミッションを変更
*$ chmod 600 id_rsa.pub*

*$ scp -P ポート番号　~/.ssh/id_rsa.pub ユーザー名@サーバーIP:~/.ssh/authorized_keys*

作業しているターミナル以外にターミナルを起動させ ssh sakuraと入力し接続できたら完了

#Apache、PHP5.6　MariaDB,phpMyadminのインストール

##Apache導入と起動(現在バージョン２．４６)
*$ yum -y install httpd*
*$ systemctl start httpd.service*
*$ systemctl enable httpd.service*

ブラウザでサーバーIPをアドレスバーに入力して起動しているか確認


##PHP5.6導入

####epel,remiレポジトリ

*$ yum -y install epel-release*
*$ yum -y install wget*
*$ wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm*
*$ rpm -Uvh remi-release-7.rpm*

####PHP5.6,apacheインストール
*$ yum -y install --enablerepo=remi,remi-php56 httpd php*
すでにApacheを入れている場合はhttpdを入力しない。間違って入力しても大丈夫です。

#### PHPが入っているのか確認
*$ php -v*

systemctl restart httpd
vi /var/www/html/index.php
<?php phpinfo(); ?>を入力し確認しよう

## mariadb mariadb-server をインストールします。
*$ yum -y install mariadb mariadb-server*
*$ mysql --version*

#### mariadb のデーモン（サービス）を起動します。
*$ systemctl start mariadb.service*

#### 次に、mariadbデーモンがブート時に自動起動するように設定しておきます。
*$ systemctl enable mariadb.service*

(MariaDBにrootでログイン)
mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 14
Server version: 5.5.37-MariaDB MariaDB Server

Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.

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

(データベースwordpressを作成)
MariaDB [(none)]> create database データベース名;

MariaDB [(none)]> grant all privileges on データベース名.* to データベースユーザ名@localhost identified by 'パスワード';

(データベースwordpressが作成されたことを確認)
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| wordpress          |
+--------------------+
5 rows in set (0.06 sec)

##phpmyadminの導入と設定
yum install -y --enablerepo=remi,remi-php56 phpMyAdmin

mv /etc/phpMyAdmin/config.inc.php /usr/share/phpMyAdmin

```vim:/etc/htpd/conf.d/phpMyAdmin.conf

Aliasの部分を変更してみよう

<IfModule mod_authz_core.c>

Apache 2.4
Require local
Require all granted

```
##WordPressインストール
*$ wget https://ja.wordpress.org/wordpress-4.3.1-ja.zip*
*$ unzip wordpress-4.3.1-ja.zip*
*$ ls -l　　　　*
*$ rm -rf wordpress-4.3.1-ja.zip*
*$ mv wordpress /var/www/html*
*$ chown -R apache:apache wordpress*

ブラウザーのアドレスバーに`サーバーIP/wordpress`と入力し設定画面が出ればOK

##バーチャルホストの設定

cd /etc/httpd/conf.d

vim wordpress.conf

```vim:wordpress.conf
NameVirtualHost *:80

<VirtualHost *:80>
    ServerName   ホスト名
    DocumentRoot /var/www/http/wordpress

    LogLevel  warn
    ErrorLog  logs/error_log
    CustomLog logs/access_log combined

    <Directory /var/www/http/wordpress>
        Options FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>
```

##DNSの設定はgoogleで検索してください。