ГлавнаяОперационные системыLinuxКак настроить стек LEMH (Linux, Nginx, MariaDB, HHVM) на сервере Ubuntu

Как настроить стек LEMH (Linux, Nginx, MariaDB, HHVM) на сервере Ubuntu

лемх-логотипЕсли вы ранее администрировали сервер Linux, вы знакомы с широко используемым стеком LAMP (Linux, Apache, MySQL, PHP). Однако Apache, MySQL и PHP иногда могут быть ресурсоемкими и не лучшими для вашего сервера. В этом уроке мы собираемся заменить каждую часть стека, кроме Linux, на лучшую альтернативу — Nginx, MariaDB и HHVM.

Предположение

1. Это руководство выполнено на сервере Ubuntu 14.04, хотя инструкции подойдут и для любого дистрибутива на основе Debian.

2. В этом руководстве основное внимание уделяется только

Предположение

стека LEMH. Это не затрагивает аспект безопасности сервера.

3. Для выполнения этого руководства у вас уже должен быть доступ по SSH к вашему серверу (или физический доступ к вашему компьютеру).

Установка Nginx

Nginx — это легкая, но мощная замена Apache. Это обратный прокси-сервер с открытым исходным кодом, а также веб-сервер, в котором особое внимание уделяется высокому параллелизму, высокой производительности и низкому использованию памяти. Обратите внимание, что Nginx несовместим с Apache, поэтому вся конфигурация Apache, особенно созданные вами файлы.htaccess, не будет работать в Nginx. Также возможно запустить Apache и Nginx на одном сервере, но это потребует некоторой сложной настройки, которую мы здесь не будем рассматривать.

Nginx находится в репозитории Ubuntu,

Установка Nginx

Чтобы получить последнюю стабильную версию, добавьте в свою систему следующий PPA:

sudo add-apt-repository ppa:nginx/stable
sudo apt-get update

Последняя версия Nginx на момент публикации — 1.6.2. Альтернативно, если вы хотите опробовать последнюю версию разработки, вы можете использовать этот PPA:

sudo add-apt-repository ppa:nginx/development
sudo apt-get update

Последняя разрабатываемая версия на момент публикации — 1.7.8.

Чтобы установить Nginx, выполните команду:

sudo apt-get install nginx

команда-установки nginx

После установки выполните следующую команду, чтобы убедиться, что она запущена:

sudo service nginx start

Затем в веб-браузере перейдите по URL-адресу «http://123.4.56.789» (замените 123.4.56.789 на IP-адрес вашего сервера), и вы должны увидеть следующее:

nginx-работает

Установка MariaDB

На протяжении многих лет MySQL является службой управления базами данных по умолчанию для многих приложений. Поскольку компания была приобретена Oracle, многие люди начали сомневаться в ее «открытом исходном коде», и сообщество (в которое входил основатель MySQL) решило создать ответвление MySQL и назвало его MariaDB. MariaDB — это полная замена MySQL. Это означает, что она полностью совместима с базами данных MySQL и может использоваться в качестве полной замены MySQL.

Интересный факт : MySQL основана Майклом Видениусом и названа в честь его первой дочери Май. Ведущим разработчиком MariaDB также является Майкл Видениус, названный в честь его второй дочери Марии.

Если на вашем сервере ранее был установлен MySQL, лучше полностью удалить MySQL перед установкой MariaDB:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo rm -rf /var/lib/mysql
sudo apt-get autoclean

Далее добавьте PPA для MariaDB:

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudoУстановка MariaDB>'deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.0/ubuntu trusty main'
sudo apt-get update

Обратите внимание, что вы также можете создайте свой собственный PPA здесь найти местоположение, ближайшее к вашему серверу.

Установите MariaDB с помощью этой команды:

sudo apt-get install mariadb-server

Во время установки вам будет предложено установить пароль для пользователя root.

mariadb-установить-корневой пароль

После установки запустить MariaDB можно командой:

sudo service mysql start

Установка PHP и HHVM

HHVM не является заменой PHP. Это виртуальная машина с открытым исходным кодом, предназначенная для выполнения программ, написанных на Hack и PHP. HHVM использует подход JIT-компиляции для достижения превосходной производительности при сохранении гибкости разработки, которую обеспечивает PHP.

Прежде чем устанавливать HHVM, важно сначала установить PHP на сервер. Вместо установки полного пакета PHP5, который включает в себя кучу файлов Apache, мы установим только php5-fpm, который затем установит необходимые зависимости PHP. Кроме того, нам понадобится php5-fpmв качестве запасного варианта для HHVM.

sudo apt-get install php5-fpm php5-mysql php5-curl

php5-установка

После этого установите HHVM с помощью команд:

wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -
echo deb http://dl.hhvm.com/ubuntu trusty main | sudo tee /etc/apt/sources.list.d/hhvm.list
sudo apt-get update
sudo apt-get install hhvm

hhvm-после установки-настройки

После установки HHVM приступаем к настройке его для Nginx командой:

sudo /usr/share/hhvm/install_fastcgi.sh

hhvm-install-fastcgi

И наконец, перезапустите HHVM

sudo service hhvm restart

Чтобы проверить работу HHVM, создайте файл «phpinfo.php» в корневой папке Nginx.

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

и вставьте следующую строку:

<?php phpinfo(Установка PHP и HHVMt;

Нажмите «Ctrl + o», чтобы сохранить, и «Ctrl + x», чтобы выйти.

В браузере загрузите URL-адрес: http://123.4.56.789/phpinfo.php(замените 123.4.56.789 IP-адресом вашего сервера). Вы должны увидеть только слово «HipHop», чтобы показать, что HHVM работает.

hhvm-хипхоп-экран

Настройка сайтов для работы в Nginx и HHVM (с резервным вариантом php5-fpm)

Теперь, когда у вас все настроено, пришло время создать виртуальный хост для запуска вашего веб-сайта.

Создайте новый файл конфигурации, содержащий сведения о вашем веб-сайте:

sudo nano /etc/nginx/sites-available/my-site

и вставьте следующий фрагмент:

server {
        listen 80;
        listen [::]:80;
 
        root /var/www/html;
 
        # Add index.php to the list if you are using PHP
        index index.html index.htm;
 
        server_name mywebsite.com;
        include hhvm-with-fallback.conf;
 
        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }
 
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location @fallback {
        #       include snippets/fastcgi-php.conf;
        #
        #       # With php5-fpm:
               fastcgi_pass unix:/var/run/php5-fpm.sock;
               fastcgi_index index.php;
               include fastcgi_params;
        }
 
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
                deny all;
        }
}

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

HHVM имеет ошибку, связанную с периодическим сбоем без перезапуска; это приведет к сбою веб-сайта с ошибкой 500. В этом случае мы создадим резервную систему, в которой PHP5-FPM возьмет на себя управление в случае сбоя HHVM. Обратите внимание на блок location @fallbackв приведенном выше фрагменте конфигурации? Это обратный вызов в случае сбоя HHVM. Чтобы завершить уравнение, нам все еще нужно создать файл «hhvm-with-fallback.conf», который представляет собой модифицированную версию файла «hhvm.conf».

sudo nano /etc/nginx/hhvm-with-fallback.conf

Вставьте следующий фрагмент:

location ~ \.(hh|php)$ {
    proxy_intercept_errors on;
    error_page 500 501 502 503 = @fallback;
 
    fastcgi_keep_conn on;
 
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME $document_root<

Настройка сайтов для работы в Nginx и HHVM (с резервным вариантом php5-fpm)

/pre>

Сохраните и закройте файл.

Наконец, проверьте настройки Nginx с помощью

sudo nginx -t

и если все в порядке, перезапустите Nginx.

sudo service nginx restart

Вот и все. Вы завершили настройку стека LEMH на своем сервере Linux.

ПОХОЖИЕ СТАТЬИ

Популярные записи