Как да настроите LEMH (Linux, Nginx, MariaDB, HHVM) стека в Ubuntu Server
Ако преди това сте инсталирали 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, но често е остарял. За да получите най-новата стабилна версия, добавете следното PPA към вашата система:
sudo add-apt-repository ppa: nginx / стабилна sudo apt-get актуализация
Най-новата версия на Nginx от тази публикация е 1.6.2. Като алтернатива, ако искате да изпробвате последната версия за разработка, можете да използвате този PPA вместо това:
sudo add-apt-repository ppa: nginx / разработване на sudo apt-get актуализация
Последната версия за разработка на тази публикация е 1.7.8.
За да инсталирате Nginx, изпълнете командата:
sudo apt-get инсталирате nginx
След като инсталирате, изпълнете следната команда, за да се уверите, че е стартирана:
sudo услуга nginx старт
След това във вашия уеб браузър отидете на url "http://123.4.56.789" (заменете 123.4.56.789 с IP адреса на вашия сървър) и трябва да видите следното:
Инсталиране на MariaDB
В продължение на много години MySQL е услугата по подразбиране за управление на база данни за много приложения. Откакто е придобита от Oracle, много хора започнаха да разпитват своята "open-source" -ness, а общността (която включваше основателя на MySQL) реши да създаде разклонение на MySQL и да я нарече MariaDB. MariaDB е подмяна на MySQL, което означава, че тя е напълно съвместима с MySQL бази данни и може да се използва като пълна замяна на MySQL.
Интересен факт : MySQL е основан от Майкъл Видениус и е кръстен на първата си дъщеря My. Основният разработчик на MariaDB е Майкъл Видиен и е кръстен на втората си дъщеря Мария.
В сървъра си, ако преди това сте инсталирали MySQL, най-добре е напълно да премахнете MySQL, преди да инсталирате MariaDB:
sudo apt-get премахване --purge mysql-сървър mysql-клиент mysql-обикновен sudo apt-get autoremove sudo rm -rf / var / lib / mysql sudo apt-get autoclean
След това добавете PPA за MariaDB:
sudo apt-get инсталирате софтуера-свойства-обикновени sudo apt-key adv --recv-keys --keyserver hkp: //keyserver.ubuntu.com: 80 0xcbcb082a1bb943db sudo add-apt-repository 'deb http: //sfo1.mirrors .digitalocean.com / mariadb / репо / 10.0 / ubuntu доверен основен 'sudo apt-get update
Обърнете внимание, че можете също така да генерирате собствен PPA тук и да намерите най-близкото до сървъра място.
Инсталирайте MariaDB с тази команда:
sudo apt-get инсталирате mariadb-сървър
По време на инсталацията, той ще ви подкани да зададете парола за потребителя на root.
След инсталирането можете да стартирате 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 инсталирате php5-fpm php5-mysql php5-curl
След като направите това, инсталирайте HHVM с командите:
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt - key добави - ехо deb http://dl.hhvm.com/ubuntu trusty основно | sudo чай /etc/apt/sources.list.d/hhvm.list sudo apt-get актуализация sudo apt-get install hhvm
След инсталирането на HHVM, продължете да го конфигурирате за Nginx с командата:
sudo /usr/share/hhvm/install_fastcgi.sh
Накрая, рестартирайте HHVM
sudo услуга hhvm рестартиране
За да проверите дали HHVM работи, създайте файл "phpinfo.php" в основната папка Nginx.
sudo nano /var/www/html/phpinfo.php
и поставете следния ред:
Натиснете "Ctrl + o", за да запазите и "Ctrl + x", за да излезете.
В браузъра си заредете URL адреса: http://123.4.56.789/phpinfo.php (заменете 123.4.56.789 с IP адреса на вашия сървър). Трябва да видите само думата "HipHop", за да покажете, че HHVM работи.
Конфигуриране на сайтове, които да се изпълняват в Nginx и HHVM (с php5-fpm резервно копие)
Сега, когато сте създали всичко, е време да създадете виртуален хост, за да стартирате уебсайта си.
Създайте нов конфигурационен файл, който съдържа информация за уебсайта ви:
sudo nano / etc / nginx / sites-available / my-site
и поставете в следния фрагмент:
сървър {listen 80; слушайте [::]: 80; корен / var / www / html; # Добавете index.php към списъка, ако използвате PHP индекс index.html index.htm; име на сървъра mywebsite.com; включват hhvm-with-fallback.conf; местоположение / {# Първи опит за показване на заявка като файл, след това # като директория, след това се връща обратно към показване на 404. try_files $ uri $ uri / = 404; } # преминете PHP скриптовете към FastCGI сървъра, слушайки на 127.0.0.1:9000 # location @fallback {# include snippets / fastcgi-php.conf; # # # С php5-fpm: fastcgi_pass unix: /var/run/php5-fpm.sock; fastcgi_index index.php; включват fastcgi_params; } # да откаже достъп до .htaccess файлове, ако коренът на документа на Apache # е съгласен с едно # местоположение ~ /\.ht {nenyx; отрича всички; }}
Можете да промените името на 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
Поставете следващия фрагмент:
местоположението ~ \ (hh | php) $ {proxy_intercept_errors on; грешка_ страница 500 501 502 503 = @fallback; fastcgi_keep_conn включен; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; включват fastcgi_params; }
Запишете и излезте от файла.
Накрая, тествайте Nginx настройките с
sudo nginx-t
и ако всичко е наред, рестартирайте Nginx.
sudo услуга nginx рестартиране
Това е. Вие сте завършили LEMH стека настройка на вашия Linux сървър.