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


きっかけ

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

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

準備

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

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

インストールその前に

vimを使うときは

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

> dpkg -l | grep vim

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

> apt remove vim-tiny

vimのインストール

> apt update
> apt install vim

Git

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

> apt update
> apt install git

環境インストール

Nginxインストール

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

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

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

> apt update
> apt install nginx

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

> nginx -v
nginx version: nginx/1.12.2

http接続してみて、ルートにnginxの初期ページが表示されればOK。

PHP7インストール

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

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

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

> 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

キーも追加する。

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

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

> 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 の設定。

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

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

; 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 をリスタートする。

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

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

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

中身はよくあるやつ。

<?php echo phpinfo(); ?>

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

> vim /etc/nginx/conf.d/default.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;

再起動

> /etc/init.d/nginx restart

もう一度http接続し、phpのいつもの画面が表示されればOK

> apt install mariadb-server
# root のパスワードを聞かれたら、適当に決めて入れる。
> 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が入ってしまうのはなんとかならないのだろうか。
まぁ困らないならいいや。

> apt install phpmyadmin

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

ln -s /usr/share/phpmyadmin /usr/share/nginx/html
cd /usr/share/nginx/html
mv phpmyadmin origin-url 
セキュリティ上アレなので名前は適当に変える

上記の場合、http://(ip)/origin-url で接続すると入れる。

ここにWordPressを引っ越す。

参考

Vim/Debianへのインストール
デフよん Debian 9 StretchでNginx+PHP7.0+MariaDBをインストール
デフよん phpMyAdminをインストール(Debian Stretch+Nginx+MariaDB環境)
nginx document installing nginx