LEMP сервер (Linux NGINX MySQL PHP) сервер является альтернативой LAMP, в котором вместо Apache используется веб-сервер NGINX. Я не буду подробно рассказывать о разнице между этими двумя сервисами, опишу лишь процедуру установки. Ставить будем на Ubuntu 16.04.1 LTS x64, на которой предварительно установлен лишь sshd.
Обновляем систему и ставим необходимые пакеты.
$ apt-get update && apt-get upgrade
$ apt-get install nginx mysql-server php-fpm php-mysql
Проверим, открывается ли дефолтная страница http://hostip
Теперь подцепим к nginx обработчик php-fpm (обратите внимание, какая версия php-fpm у вас установилась, от этого зависит расположение сокета). Для этого отредактируем конфигурационный файл, протестируем его и перезапустим сервис, а также проверим, запустился ли php-fpm.
$ nano /etc/nginx/sites-available/default
server {
listen 80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
Теперь создадим файл /var/www/html/index.php и добавим в него код, выводящий php info:
<?php
phpinfo();
?>
Тестируем и перезапускаем конфигурацию:
$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ service nginx reload
Если все сделано правильно — по адресу http://hostip вы должны увидеть вывод функции phpinfo().
Установка PHPMyAdmin на Nginx
$ apt-get install phpmyadmin
PMA будет открываться по ссылке http://hostip/pma. При установке свои файлы он складывает в /usr/share/phpmyadmin/. Этот путь нам нужно добавить в конец конфигурации nginx вместе с прочими параметрами, необходимыми для работы PMA.
$ nano /etc/nginx/sites-available/default
server {
listen 80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
### PMA config start ###
location /pma/ {
alias /usr/share/phpmyadmin/;
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_ignore_client_abort off;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
access_log off;
log_not_found off;
expires 1M;
}
}
### PMA config end ###
}
Снова тестируем и перезапускаем конфигурацию:
$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ service nginx reload