В этой статье я расскажу как установить Nginx, php5-fpm и MariaDB для того, чтоб в конечном счете установить WordPress на платформу Raspberry Pi c операционной системой Raspbian.
Nginx – это популярный легковесный web-сервер, PHP-FPM (FastCGI Process Manager) – это альтернативное PHP FastCGI приложение с некоторым улучшениями, которые пригодятся для сайтов любых размеров. MariaDB – это одна из самых популярных серверных баз данных от разработчика оригинальной версии MySQL.

У нас уже есть установленная операционная система Rasbian. Для начала обновим ee:

sudo apt update && sudo apt upgrade -y

Установка Nginx.
Как и Apache, Nginx может как отдавать html-файлы через http, так и генерировать динамические страницы с помощью, например, PHP. Сначала установим Nginx выполнив в терминале команду:

sudo apt install nginx

Сразу после установка Nginx должен начать работать. Проверим командой:

sudo service nginx status

Если не запущен:

sudo service nginx start

Для проверки работоспособности web-сервера попробуем зайти по ip-адресу нашей Raspberry.

По умолчанию тестовая страница храниться в каталоге /var/www/html

Настройка Nginx

Итак, мы установили web-сервер. Теперь его нужно немного настроить. Из коробки Nginx довольно хорошо оптимизирован, однако есть несколько важных настроек,  , изменив которые можно  улучшить производительность.

sudo nano /etc/nginx/nginx.conf

Внесите следующие изменения для повышения потенциальной производительности:

1) Раскомментируйте пункт multi_accept и установите значение on, который информирует nginx о принятии максимального количества соединений за один раз.

2) Измените параметр keepalive_timeout с 65 на 5. Значение keepalive_timeout определяет, сколько секунд соединение с клиентом должно оставаться открытым. Его  следует уменьшить, чтобы холостые соединения можно было закрыть раньше.

3) Раскомментируйте пункт server_tokens и убедитесь, что он в положении off. Это отключит вывод номера версии Nginx в сообщениях об ошибках и заголовках ответов, что в свою очередь улучшает безопасность.

4) Строкой ниже  server_tokens, добавьте параметр client_max_body_size и установите значение 16m.

Несмотря на то, что повсюду в мире распространился широкополосный интернет, не следует забывать о мобильных устройствах, где скорость подчас оставляет желать лучшего.  Поэтому отредактируем несколько строк, посвященных сжатию отдаваемой информации.

5) Раскомментируем  gzip_vary on

6) Раскомментируем gzip_proxied и установим значение any

7) Раскомментируем gzip_comp_level и установим значение 5.  Данный уровень сжатия приблизительно на 75%  уменьшает размер  файлов ASCII любого типа без существенного потребления процессора.

8) Раскомментируйте gzip_http_version 1.1  Это позволит включить сжатие как для HTTP / 1.0, так и для HTTP / 1.1.

9) Добавим строку gzip_min_length 256;  перед пунктом gzip_types. Это гарантирует, что файл, не превышающий 256 байт, не будет разархивирован. Значение по умолчанию установлено на 20 байт, это слишком мало и может привести к лишним накладным расходам на процессор.

10) Чтобы избежать сбоев теста Google PageSpeed на некоторых типах файлов, заменим директиву gzip_types:

    gzip_types
       application/atom+xml
       application/javascript
       application/json
       application/rss+xml
       application/vnd.ms-fontobject
       application/x-font-ttf
       application/x-web-app-manifest+json
       application/xhtml+xml
       application/xml
       font/opentype
       image/svg+xml
       image/x-icon
       text/css
       text/plain
       text/x-component;

Это гарантирует, что в дополнение к типу файла HTML будут также сжиматься  JavaScript, CSS и даже SVG.
Сохраните изменения, нажав Control-X, а затем Y на терминале. Чтобы убедиться, что ошибок нет, проверьте конфигурационный файл с помощью следующей команды:

sudo nginx -t

Если Nginx не ругается на ошибки, перегружаем его:

sudo service nginx restart

Установка php5-fpm

Для установки php5-fpm выполним следующую команду:

sudo apt install php5-fpm php5-mysqlnd php5-xmlrpc php5-curl php5-gd php5-imagick php5-imap php5-mcrypt -y

Включить выполнение php в nginx

Отредактируем конфигурационный файл.

sudo nano /etc/nginx/sites-available/default

Найдем строку

index index.html index.htm index.nginx-debian.html;

и приведем ее к такому виду:

index index.php index.html index.htm;

Пролистаем вниз и найдем такую секцию:

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
# location ~ \.php$ {

Отредактируем, убрав кое-где знак #, чтобы получилось вот так:

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
}

и перезапустим наш web-сервер:

sudo service nginx reload

Тест PHP

Проверим, работает ли php. Для этого создадим файл  index.php

sudo nano /var/www/html/index.php

и добавим в него такой текст:

<html><body>
<?php
 phpinfo();
?>
</body></html>

Сохраните файл и зайдите интернет-браузером на сайт. Если все хорошо, то отобразятся логотип, версия и текущие настройки PHP.

Отредактируем настройки PHP.

sudo nano /etc/php5/fpm/php.ini

Необходимо найти строку upload_max_filesize и установить значение, одинаковое значению client_max_body_size в файле nginx.conf

upload_max_filesize = 16m

Также необходимо найти параметр  cgi.fix_pathinfo и поменять его значение с ‘1’ на ‘0’.

cgi.fix_pathinfo=0

И в завершении, для корректного отображения времени установим свой часовой пояс:

date.timezone = Europe/Moscow

Нажмите Control-X и Y для сохранения конфигурации.

Установка MariaDB

Если вы знакомы с установкой MySQL, то вы найдете, что эта процедура для MariaDB практически не отличается.

sudo apt-get install mariadb-server mariadb-client

Выберите пароль для пользователя root во время установки. После завершения установки мы можем войти в систему, используя учетную запись root

mysql -u root -p

Не рекомендуется использовать учетную запись root для повседневной работы. Поэтому мы хотим создать суперпользователя со всеми привилегиями как root для администрирования и отключить удаленный доступ учетной записи root позже.

create user username@localhost identified by 'password';

Замените username на имя по вашему выбору, и password на пароль, который вы хотите использовать для входа в систему.  Так как затем мы будем устанавливать WordPress, сразу создадим базу wordpressdb. Далее мы предоставим права только что созданному пользователю.

create database wordpressdb;
grant all privileges on wordpressdb.* to username@localhost identified by 'password'; 
flush privileges;
exit

Теперь нам нужно усилить параметры безопасности MariaDB.

sudo mysql_secure_installation

Мы уже установили пароль во время установки MariaDB, поэтому мы пропустим вопрос «change root password». Отвечаем «y» на вопрос «remove anonymous users», отвечаем «y» на вопрос «disallow root login remotely», так как теперь у нас есть только что созданный пользователь с соответствующими правами. В отличие от Mysql, в MariaDB нет предварительно установленной базы данных «test», поэтому на вопрос «remove test database» мы отвечаем «n». И в завершении нужно согласился «reload privilege tables».

На этом все. Теперь можно приступать к установке WordPress.

 

Установка Nginx, PHP и MariaDB на Raspberry Pi
Метки:                     

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *