Debian jessieでLEMP環境を整える

Posted by onodai.


LAMPはもう古い。今はLEMPの時代。

LEMPって何

Linux+Nginx+MariaDB+PHPの環境。
まあこのへん読んでおけばいいよ。

前提

  • MinimalインストールしたDebian jessieに新たにLEMP環境をインストール
  • Nginxに関しては公式リポジトリを使用してインストール
  • apt update && apt upgradeで最新の状態であること
  • インターネットからパッケージをインストールできる状態であること
  • sudoもしくはsuを使用してroot権限を使用できること
  • iptablesSELinuxは良しなに設定されていること

MariaDBのインストール

難しいことは考えずにaptコマンドでインストールする。
途中でMariaDBを管理するrootユーザのパスワードを設定するか聞かれるので、適宜設定する。

$ su -
# apt install mariadb-server mariadb-client

MariaDBを起動する。

# systemctl start mysql

OS起動時に自動的に起動するようにする。

# systemctl enable mysql

Nginxのインストール

PGP鍵を追する。

# wget http://nginx.org/keys/nginx_signing.key
# apt-key add nginx_signing.key

リポジトリを追加する。

# vi /etc/apt/sources.list.d/Nginx.list

[/etc/apt/sources.list.d/Nginx.list]

deb http://nginx.org/packages/debian/ jessie nginx
deb-src http://nginx.org/packages/debian/ jessie nginx

パッケージリストを更新する。

# apt update

Nginxをインストールする。

# apt install nginx

Nginxを起動する。

# systemctl start nginx

OS起動時に自動的に起動するようにする。

# systemctl enable nginx

PHPのインストール

Apacheとは異なり、モジュール版ではなくCGI版を導入する。
http://php.net/manual/ja/install.fpm.php

# apt install php5-fpm

PHP-FPMを起動する。

# systemctl start php5-fpm

OS起動時に自動的に起動するようにする。

# systemctl enable php5-fpm

Nginxの設定

今回はNginx <=> PHP-FPM間の通信にUnixソケット通信を用いる。

# vi /etc/nginx/conf.d/default.conf

コメントアウトされているブロックがあるので、コメントアウトを外し、一部編集する。
[/etc/nginx/conf.d/default.conf]

    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   unix:/var/run/php5-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

設定ファイルを再読込する。

# systemctl reload nginx

PHP-FPMの設定

Nginxで使用するため、それに合わせた設定をする。

# vi /etc/php5/fpm/pool.d/www.conf

www-dataと記述されている部分をnginxに置き換える。
[/etc/php5/fpm/pool.d/www.conf]

user = nginx
group = nginx
listen.owner = nginx
listen.group = nginx

PHP-FPMを再起動する。

# systemctl restart php5-fpm

ソケットファイルが存在し、所有者がnginxユーザで有ることを確認する。

# ls -al /var/run/php5-fpm.sock
srw-rw---- 1 nginx nginx 0 Jul 17 17:32 /var/run/php5-fpm.sock

動作確認

phpinfo();で確認する。

# vi /usr/share/nginx/html/index.php

[/usr/share/nginx/html/index.php]

<?php
    phpinfo();
?>

http://your.server.address/index.phpにアクセスし、PHPの情報が表示されることを確認する。

参考

comments powered by Disqus