LAMPはもう古い。今はLEMPの時代。
LEMPって何
Linux+Nginx+MariaDB+PHPの環境。
まあこのへん読んでおけばいいよ。
前提
- MinimalインストールしたDebian jessieに新たにLEMP環境をインストール
- Nginxに関しては公式リポジトリを使用してインストール
apt update && apt upgrade
で最新の状態であること- インターネットからパッケージをインストールできる状態であること
sudo
もしくはsu
を使用してroot権限を使用できることiptables
やSELinux
は良しなに設定されていること
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の情報が表示されることを確認する。