Posted at

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

More than 1 year has passed since last update.


きっかけ

ちょっくらサービス作ろうかと思い、小手調べに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