Debian8(jessie)にNginx+PHP7+PHP-FPM+MariaDB+phpMyAdminをインストールしたメモ

# きっかけ
ちょっくらサービス作ろうかと思い、小手調べにWordPressの引っ越しをして、最低スペックでどの程度動くかを実験。

CentOSとDebianの違いがやっとわかったぐらいの初心者マークさんなので、いらない作業とか無駄もあるかと思う。
悪戦苦闘しつつも、とりあえずナントカ動きそうだ。

## 準備
サーバーはカゴヤで512MBプラン、Debian8をインストール。

ちなみに、JuiceSSHというのを使うと、Androidスマホからも出来るようだ。

### インストールその前に

#### vimを使うときは

vim-tinyが入っていたら消す。
まずは入っているか確認。

```bash
> dpkg -l | grep vim
```

vim-tinyがあれば、アンインストール

```bash
> apt remove vim-tiny
```

vimのインストール

```bash
> apt update
> apt install vim
```

#### Git

きっとどっかで使うのでGitぐらいは入れておく。

```bash
> apt update
> apt install git
```

## 環境インストール


### Nginxインストール

普通にやると古いものがインストールされるので、設定をイジクル。

```bash
> vim /etc/apt/sources.list
```

```text:/etc/apt/sources.list
# 末尾に追加
deb http://nginx.org/packages/debian/ jessie nginx
deb-src http://nginx.org/packages/debian/ jessie nginx
```

一覧をアップデートしてからインストール

```bash
> apt update
> apt install nginx
```

バージョンが確認できたらOK。

```bash
> nginx -v
nginx version: nginx/1.12.2
```

http接続してみて、ルートにnginxの初期ページが表示されればOK。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/235255/4c5de2eb-d923-1a55-37c6-3b960b490010.png)


### PHP7インストール

そのままだとaptに選択肢が出てこないので、追加する。

```bash
> vim /etc/apt/sources.list
```

```text:/etc/apt/sources.list
# 末尾に追加
deb http://packages.dotdeb.org jessie all
```

コレだけだとインストールに失敗した。
apt-add-repositoryというのを使うらしい

```bash
> apt install apt-file
> apt-file update
> apt-file search apt-add-repository
> apt-get install -y software-properties-common
> apt-add-repository ppa:ondrej/php
```

キーも追加する。

```bash
> wget https://www.dotdeb.org/dotdeb.gpg
> apt-key add dotdeb.gpg
> apt-get update
```

やっとインストール準備完了。
一式をまとめてインストール。

```bash
> apt install php7.0 php7.0-fpm php7.0-mysql php7.0-mbs                                                                                      > tring php7.0-xml php7.0-gd php7.0-curl

> php --version
PHP 7.0.28-1~dotdeb+8.1 (cli) ( NTS )
```

今度はNginxにphpを繋ぐ。
まずは php-fpm の設定。

```bash
> vim /etc/php/7.0/fpm/pool.d/www.conf
```

ユーザーとグループをnginxにする。

```text
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = nginx
group = nginx

; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions.
; Default Values: user and group are set as the running user
;                 mode is set to 0660
listen.owner = nginx
listen.group = nginx
```

php-fpm をリスタートする。

```bash
> /etc/init.d/php7.0-fpm restart
> systemctl status php7.0-fpm.service
# 緑の○ならOK、エラーの場合はなんかメッセージが書いてあるはず。
```

Php のテストページを作って、接続してみる。

```bash
# テストファイルindex.phpを作るため、勝手に作られているindex.htmlを退避
> mv /usr/share/nginx/html/index.html index.back
> vim /usr/share/nginx/html/index.php
```

中身はよくあるやつ。

```php
<?php echo phpinfo(); ?>
```

nginxの設定に、phpのソケットを追加する。

```bash
> vim /etc/nginx/conf.d/default.conf
```

```conf:/etc/nginx/conf.d/default.conf

# 9行目付近をこのようにする
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }

# 31行目付近をこのようにする。
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   unix:/run/php/php7.0-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
```

再起動

```bash
> /etc/init.d/nginx restart
```

もう一度http接続し、phpのいつもの画面が表示されればOK
![image.png](https://qiita-image-store.s3.amazonaws.com/0/235255/eca78abf-07ec-b18a-c184-2e4786001bf0.png)


```bash
> apt install mariadb-server
# root のパスワードを聞かれたら、適当に決めて入れる。
```

```bash
> mysql -u root -p
# ここでパスワードを聞かれる
MariaDB [(none)]> use mysql
# なるべく全権限をもったユーザーを作るが、root ほどではないらしい。
MariaDB [mysql]> grant all on *.* to "dbuser"@localhost identified by 'password';
# ユーザー名とパスワードは任意で変更
MariaDB [mysql]> exit
```

### phpMyAdminのインストール

これでインストールするが、php5とapache2が入ってしまうのはなんとかならないのだろうか。
まぁ困らないならいいや。

```bash
> apt install phpmyadmin
```

インストール中にパスワードを聞かれるので、適当に入れる。
次にWebサーバーがApacheなのかlighttpdなのか聞かれるが、選択せずに次へ行く。
dbconfig-commonがナントカ聞かれるので、Noにする。

```bash
ln -s /usr/share/phpmyadmin /usr/share/nginx/html
cd /usr/share/nginx/html
mv phpmyadmin origin-url 
セキュリティ上アレなので名前は適当に変える
```
上記の場合、http://(ip)/origin-url で接続すると入れる。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/235255/c6da660c-77a8-13e3-60ff-95ff813ddce5.png)

ここにWordPressを引っ越す。


# 参考
[Vim/Debianへのインストール](https://vok.paburica.com/index.php?Vim%2FDebian%E3%81%B8%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)
[デフよん Debian 9 StretchでNginx+PHP7.0+MariaDBをインストール](https://def-4.com/nginx-php7-mariadb/)
[デフよん phpMyAdminをインストール（Debian Stretch＋Nginx＋MariaDB環境）](https://def-4.com/debian9-phpmyadmin/)
[nginx document installing nginx](http://nginx.org/en/docs/install.html)