sakura vpsを最初から設定してlampサーバー環境を準備しましょう

SakuraVPSでCentOS6.xのサーバーの設定する方法をまとめて書いたものです。
細かい説明までは書いておりませんのでご質問はコメントでいただければと思います。
下記のコードでで始まった `$` コードは普通のユーザー権限、`#` で始まったコードはroot権限が必要ということです。そのシンボルを実際に入力する必要がございません。
#サーバー接続
1. [SakuraVPS会員ページ](https://secure.sakura.ad.jp/vps/#/login)にログインします。
2. サーバーを起動します。
3. SSHを使って接続します。  
  - Mac  
ターミナル(Terminal)からこのコメントを書きます。  
```
$ ssh root@ipaddress
```  
  パスワードはサーバー登録するとき、メールで送ったはずです。IPアドレスは会員ページに書いております。
  - Windows  
[テラターム](https://osdn.jp/projects/ttssh2/)みたいなソフトでIPアドレス、アカウント名をrootとパスワードを入力して接続します。
  - ソフトダウンロードなんて…と思いましたら会員ページのコンソールを使ってブラウザから接続してもいいでしょう。  
![さくらVPS会員ページ](https://qiita-image-store.s3.amazonaws.com/0/93564/e22c6f00-35cc-7a90-a2d2-89f3131591b8.png)

#SSHユーザー作成
現在rootアカウントしかないので、新しい _sshuser_ というアカウントを作ります。
アカウントの名前は自分好きな覚えやすい名前でいいです。

1. アカウント名を作成します。  
```# useradd sshuser```
2. パスワードをセットします。_（後でパスワードログインを禁止しますが、一応作っちゃいます！root権限に変わる時もこれが必要です。）_  
```# passwd sshuser```  
  - _パスワードを変更する場合もこのコメントで変更することができます。_  
  - _これで新しい sshuser というアカウトを簡単に作りました。_  
  - _普通の個人用だったらこれでいいと思いますが、より細かい設定をやりたい、グループ作成したい方は[こちら](http://webkaru.net/linux/useradd-command/)を参考します。_
3. アカウントにroot権限を与えます。_root権限が与えましたらサーバー上でなんでもできるようになりますので、自分以外のアカウントを作成する時は留意しましょう。_  
```# vim /etc/sudoers```　コメントでファイルを開きます。  
```root ALL=(ALL)	ALL```ようなコードが書いているところを探します。  
それの下でrootの代わりに自分のアカウントの名前を入れて入力します。  
従って、```sshuser ALL=(ALL)	ALL```ように追加します。
  - vimでファイルを編集する場合 編集したいところまでスクロールし、``i``押して挿入モードに切り替えます。編集が終わったら``esc``押して``:wq``を入力``enter``キーで終了します。
  - _vimはコメントプロンプトテキストエディターです。自分慣れてるテキストエディターを使っても構いません。コメントについて詳しくは[こちら](http://www.fprintf.net/vimCheatSheet.html)を参考。_
4. セキュリティのためパスワードログインを禁止します。  
``# vim /etc/ssh/sshd_config``　でファイルを開きます。  
``PasswordAuthentication`` を探します。  
``yes`` と書いているところを ``no`` に変更します。  
ファイルを保存して終了ます。
5. sshサービスを再起動します。  
``# service sshd restart``
6. 新しく作ったアカウントに変更します。こちらの場合は _sshuser_ です。  
```$ su sshuser```  
  - _今自分はどちらのアカウントでログインしていることを確認する方法の1つとして
```$ whoami```を入力すると名前が表示されます。_
7. 新しいアカウントのSSHキーを作成します。  
```$ ssh-keygen -t rsa```  
  - 保存する場所聞かれましたらデフォルトYesで進めばいいでしょう。  
  - パスワードを覚えやすいやすいパースワードでセットします。  
  - このパスワードは _2.番_ で作ったパスワードとちっと違って今後SSHログインする時使いますので忘れないようにします。  
  - デフォルトで _~/home/.ssh_ に_publicキー_と_privateキー_、2つの新しいファイルが追加されます。
8. publicキーのファイルの名前を変更します。  
```$ mv ~/.ssh/id_rsa.pub authorized_keys```
9. ファイルのパーミッションを変更します。  
```$ chmod 644 ~/.ssh/authorized_keys```
10. privateキーを自分のパソコンに保存します。  
```$ cat ~/.ssh/id_rsa```  
コメントで _id\_rsa_ ファイルの中身がプリンアウトされます。その中身のコンテンツを全部コピーして自分のパソコンにテキストファイルとして**大事に**保存しておきます。さらに保存したファイルのパーミッションを ```$ chmod 600 ``` あるいは ```-rw-------```に変わります。保存終わったらサーバー上の_id\_rsa_ ファイルを``$ rm ~/.ssh/id_rsa``コメントで削除します。

これからサーバーにアクセスする時はこの新しいアカウント名前とパソコンに保存したキーファイルとそのキーを作成する時セットしたパスワードを使ってアクセスします。キーファイルなしで、パスワードでログインすることができません。

#Apache実装
これからはいろんなサービスを実装します。root権限が必要になります。まだrootになってない場合``$ sudo su`` でrootに変わります。
_rootに変更したくないなら、下記のコメントの前に `sudo` を入れても同じです。_
Apacheサーバーhttpdが事前にもうインストールされた場合、これをスキップしてもいいです。

1. yum使ってhttpdを実装します。  
```# yum install httpd```
2. サービスを開始します。  
``# service httpd start``  
_サービスがちゃんと起動されてるかどうかを `# service httpd status` で確認することができます。_

これでApacheサーバーの実装が終わります。ブラウザで `http://myipaddress` 自分のIPアドレスを入れたら Apache Test Page が表示されるはずです。

#MySql実装・設定

1. yum使ってmysqlサーバーを実装します。  
``# yum install mysql-server``
2. サービスを開始します。  
``# service mysqld start``
3. 初期化設定を簡単に設定しましょう。  
``# /usr/bin/mysql_secure_installation``  
  - デフォルトでmysqlのrootパスワードがないので、聞かれましたらそのまま`enter`押して続きます。
  - 新しいrootパスワードを入力します。
  - それ以降の質問を全部をデファクト `Y` _Yes_で進めばいいです。
4. mysqlにログインします。  
``$ mysql -u root -p``  
3番で入力したばかりのパスワードで入ります。  
通常に入れましたら ``mysql >`` コメントに変わります。
5. 新しいmysqlユーザーを作成します。  
``CREATE USER 'mysqluser'@'%' IDENTIFIED BY 'MysQ!P@ssw0rd';``
6. 権限を与えます。  
``GRANT ALL PRIVILEGES ON *.* TO 'mysqluser'@'%';``
7. 権限編集を有効にします。  
``FLUSH PRIVILEGES;``

これでMysqlの実装や設定が終わります。
_新しく作ったmysqlユーザーは全ての権限を持っています。制限のあるアカウントを作成したい場合[こちら](http://www.dbonline.jp/mysql/user/index6.html)をご参考ください。_

#PHP実装
今（15年10月）sakuraVPSでは古いPHPバージョン(5.3x)しかありません。それで十分ですといる方は下記のコメントをそのままで実行します。
**1つのサーバーで2つバージョンのPHPの実装ができませんのでご注意ください。** 
``# yum install php php-mysql``

新しいバージョン(>5.4)を実装する場合

1. 新しいリポジトリを追加します。  
``# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm``  
``# rpm -Uvh https://mirror.webtatic.com/yum/e16/latest.rpm`` 
2. yum使ってphpを実装します。  
``# yum install php55w php55w-mysql``  
これは phpのバージョン5.5 を実装するということです。つまり、5.4を実装する場合は `# yum install php54w php54w-mysql` 5.6の場合 `# yum install php56w php56w-mysql` コメントを実行します。
3. httpdサービスを再起動します。  
``# service httpd restart``

基本これで結構ですが、他のPHPモジュールを追加することもできます。よく使うモジュールとして：
``# yum install php55w-intl`` _cakephp3.0以上で必要。_
``# yum install php55w-mbstring`` _日本語（全角）の文字作業などする時必要。_
``# yum install php55w-gd`` _写真作業をする時必要。_
全てのモジュールリストを見たい場合：
``# yum search php55w-`` でリストプリンアウトされます。

#パーミッション調整
必要なサービスは全部実装しましたが、Apacheのデフォルトとしてwebページファイルを `/var/www/html` から読み込みます。ただし、そのhtmlフォールダの所有者はrootになっていますので、新しく作ったユーザーが新規HTML・PHPファイルの追加ができません。この場合、1つの方法は所有者を自分の名前に変更します。
``# chown sshuser /var/www/html``

##追加設定：自動サービス起動
必須ではないですが、サーバーが再起動された時全てのサービスを自動で開始するように：
``# chkconfig httpd on``
``# chkconfig mysqld on``
を実行します。

これでlampサーバーの準備が終わります。
お疲れさまでした。