Als u eerder een Linux-server hebt beheerd, bent u bekend met de veelgebruikte LAMP-stack (Linux, Apache, MySQL, PHP). Apache, MySQL en PHP kunnen echter soms veel resources nodig hebben en zijn misschien niet de beste voor uw server. In deze zelfstudie gaan we elk deel van de stapel vervangen, behalve Linux, met een beter alternatief: Nginx, MariaDB en HHVM.

Veronderstelling

1. Deze tutorial wordt gedaan op een Ubuntu 14.04-server, hoewel de instructies ook werken voor elke Debian-gebaseerde distro.

2. Deze zelfstudie richt zich alleen op het installeren en instellen van de LEMH-stack. Het raakt het beveiligingsaspect van de server niet aan.

3. U moet al SSH-toegang tot uw server (of fysieke toegang tot uw machine) hebben om deze zelfstudie uit te voeren.

Nginx installeren

Nginx is een lichtgewicht, maar krachtige, vervanger voor Apache. Het is een open source reverse proxy-server en een webserver met een sterke focus op hoge concurrency, hoge prestaties en een laag geheugengebruik. Houd er rekening mee dat Nginx niet compatibel is met Apache, dus alle Apache-configuratie, met name die .htaccess-bestanden die u hebt gemaakt, zullen niet werken in Nginx. Het is ook mogelijk om zowel Apache als Nginx op dezelfde server te gebruiken, maar dat vergt een ingewikkelde configuratie die we hier niet zullen behandelen.

Nginx is te vinden in de Ubuntu-repository, maar het is vaak verouderd. Om de nieuwste stabiele versie te krijgen, voegt u de volgende PPA toe aan uw systeem:

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

De nieuwste versie van Nginx vanaf deze post is 1.6.2. Als u echter de nieuwste ontwikkelingsversie wilt uitproberen, kunt u in plaats daarvan deze PPA gebruiken:

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

De nieuwste ontwikkelingsversie vanaf deze post is 1.7.8.

Voer de volgende opdracht uit om Nginx te installeren:

 sudo apt-get install nginx 

Na de installatie voert u de volgende opdracht uit om te controleren of deze is gestart:

 sudo service nginx start 

Ga vervolgens in je webbrowser naar de URL "http://123.4.56.789" (vervang 123.4.56.789 door het IP-adres van je server) en je zou het volgende moeten zien:

MariaDB installeren

Al vele jaren is MySQL de standaard databasebeheerservice voor veel toepassingen. Sinds het werd aangekocht door Oracle, begonnen veel mensen de "open-source" -ruimte in vraag te stellen, en de community (waaronder de oprichter van MySQL) besloot om een ​​fork van MySQL te maken en het MariaDB te noemen. MariaDB is een vervangende vervanging voor MySQL, wat betekent dat het volledig compatibel is met MySQL-databases en kan worden gebruikt als een totale vervanging voor MySQL.

Interessant feit : MySQL is opgericht door Michael Widenius en is genoemd naar zijn eerste dochter, My. MariaDB's hoofdontwikkelaar is ook Michael Widenius en is genoemd naar zijn tweede dochter, Maria.

Als u MySQL eerder op uw server hebt geïnstalleerd, is het het beste om MySQL volledig te verwijderen voordat u MariaDB installeert:

 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 

Voeg vervolgens de PPA voor MariaDB toe:

 sudo apt-get installeer software-eigenschappen-common sudo apt-key adv --recv-keys --keyserver hkp: //keyserver.ubuntu.com: 80 0xcbcb082a1bb943db sudo add-apt-repository 'deb http: //sfo1.mirrors .digitalocean.com / mariadb / repo / 10.0 / ubuntu vertrouwde main 'sudo apt-get update 

Merk op dat u hier ook uw eigen PPA kunt genereren en de locatie kunt vinden die zich het dichtst bij uw server bevindt.

Installeer MariaDB met deze opdracht:

 sudo apt-get install mariadb-server 

Tijdens de installatie wordt u gevraagd een wachtwoord in te stellen voor de rootgebruiker.

Na de installatie kunt u MariaDB starten met het commando:

 sudo service mysql start 

Installeren van PHP en HHVM

HHVM is geen vervanging voor PHP. Het is een open-source virtuele machine die is ontworpen voor het uitvoeren van programma's die zijn geschreven in Hack en PHP. HHVM gebruikt een just-in-time (JIT) compilatiebenadering om superieure prestaties te bereiken en tegelijkertijd de ontwikkelingsflexibiliteit te behouden die PHP biedt.

Voordat we HHVM installeren, is het belangrijk om eerst PHP op de server te installeren. In plaats van het volledige PHP5-pakket te installeren, dat een aantal Apache-bestanden bevat, zullen we alleen php5-fpm installeren, die dan de nodige PHP-afhankelijkheden zal installeren. Ook hebben we php5-fpm als terugval voor HHVM.

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

Na installatie installeert u HHVM met de volgende opdrachten:

 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 

Nadat HHVM is geïnstalleerd, gaat u verder met het configureren voor Nginx met de opdracht:

 sudo /usr/share/hhvm/install_fastcgi.sh 

Herstart ten slotte HHVM

 sudo service hhvm opnieuw opstarten 

Als u wilt testen of HHVM werkt, maakt u een "phpinfo.php" -bestand in de hoofdmap van Nginx.

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

en plak de volgende regel:

Druk op "Ctrl + o" om op te slaan en "Ctrl + x" om af te sluiten.

In je browser laad je de url: http://123.4.56.789/phpinfo.php (vervang 123.4.56.789 door het IP-adres van je server). U zou alleen het woord "Hip Hop" moeten zien om aan te geven dat HHVM werkt.

Sites configureren om te draaien in Nginx en HHVM (met php5-fpm fallback)

Nu alles is ingesteld, is het tijd om een ​​virtuele host te maken voor het uitvoeren van uw website.

Maak een nieuw configuratiebestand met uw websitedetail:

 sudo nano / etc / nginx / sites-beschikbaar / mijn-site 

en plak in het volgende fragment:

 server {luister 80; luister [::]: 80; root / var / www / html; # Voeg index.php toe aan de lijst als u PHP index index.html index.htm gebruikt; servernaam mywebsite.com; include hhvm-with-fallback.conf; location / {# Eerste poging om verzoek als bestand te dienen, dan als directory #, en dan terug te vallen op het weergeven van een 404. try_files $ uri $ uri / = 404; } # geef de PHP-scripts door aan de FastCGI-server door te luisteren op 127.0.0.1:9000 # location @fallback {# include snippets / fastcgi-php.conf; # # # Met php5-fpm: fastcgi_pass unix: /var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } # ontken de toegang tot. Htaccess-bestanden, als Apache's document root # overeenkomt met die van nginx: # locatie ~ /\.ht {ontken alles; }} 

U kunt de server_name wijzigen in een punt naar uw eigen domein en naar de locatie van de root waar u de bestanden wilt laten serveren.

HHVM laat deze bug af en toe crashen zonder zichzelf opnieuw op te starten; dit zal ervoor zorgen dat de website faalt met een 500-fout. In dit geval zullen we een noodsysteem creëren waarbij PHP5-FPM het overneemt wanneer HHVM faalt. Let op het location @fallback blok in het bovenstaande configuratiefragment? Dat is de callback wanneer HHVM faalt. Om de vergelijking te voltooien, moeten we nog steeds het bestand "hhvm-with-fallback.conf" aanmaken dat een aangepaste versie van het bestand "hhvm.conf" is.

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

Plak het volgende fragment:

 locatie ~ \. (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 $ fastcgi_script_name; include fastcgi_params; } 

Sla op en verlaat het bestand.

Test ten slotte Nginx-instellingen met

 sudo nginx -t 

en als alles in orde is, start Nginx opnieuw.

 sudo service nginx herstarten 

Dat is het. Je hebt de LEMH stack-installatie op je Linux-server voltooid.