Hvis du har administreret en Linux-server før, vil du være bekendt med den almindeligt anvendte LAMP (Linux, Apache, MySQL, PHP) stack. Apache, MySQL og PHP kan dog undertiden være ressourceintensive og kan ikke være det bedste for din server. I denne vejledning skal vi erstatte hver eneste del af stakken, undtagen Linux, med et bedre alternativ - Nginx, MariaDB og HHVM.

Antagelse

1. Denne vejledning udføres på en Ubuntu 14.04-server, selvom instruktionerne vil fungere for enhver Debian-baseret distro.

2. Denne vejledning fokuserer kun på installation og opsætning af LEMH-stakken. Det berører ikke sikkerhedens aspekt af serveren.

3. Du skal allerede have SSH-adgang til din server (eller fysisk adgang til din maskine) for at udføre denne vejledning.

Installation af Nginx

Nginx er en let, men kraftig, erstatning for Apache. Det er en open source reverse proxy server samt en webserver med stærkt fokus på høj samtidighed, høj ydeevne og lav hukommelse forbrug. Bemærk, at Nginx ikke er kompatibel med Apache, så alle Apache-konfigurationerne, især de .htaccess-filer, du oprettede, virker ikke i Nginx. Det er også muligt at køre både Apache og Nginx på samme server, men det vil indebære en kompliceret konfiguration, som vi ikke dækker her.

Nginx findes i Ubuntu-depotet, men det er ofte forældet. For at få den nyeste stabile version, tilføj følgende PPA til dit system:

 sudo add-apt-depot ppa: nginx / stable sudo apt-get opdatering 

Den nyeste version af Nginx fra dette indlæg er 1.6.2. Alternativt, hvis du vil prøve den nyeste udviklingsversion, kan du bruge denne PPA i stedet:

 sudo add-apt-depot ppa: nginx / udvikling sudo apt-get opdatering 

Den seneste udviklingsversion i dette indlæg er 1.7.8.

For at installere Nginx skal du køre kommandoen:

 sudo apt-get install nginx 

Når du er installeret, skal du køre følgende kommando for at sikre, at den er startet:

 sudo service nginx start 

Derefter i din webbrowser, gå til url "http://123.4.56.789" (erstatte 123.4.56.789 med din serverens IP-adresse), og du bør se følgende:

Installation af MariaDB

I mange år er MySQL standard database management service til mange applikationer. Siden det blev erhvervet af Oracle, begyndte mange mennesker at sætte spørgsmålstegn ved sin "open source" -hed, og samfundet (som inkluderede grundlæggeren af ​​MySQL) besluttede at oprette en gaffel af MySQL og hedde det MariaDB. MariaDB er en drop-in erstatning for MySQL, hvilket betyder, at den er fuldt kompatibel med MySQL databaser og kan bruges som en total erstatning for MySQL.

Interessant faktum : MySQL er grundlagt af Michael Widenius og er opkaldt efter sin første datter, My. MariaDBs ledende udvikler er også Michael Widenius og er opkaldt efter sin anden datter, Maria.

Hvis du tidligere har installeret MySQL på din server, er det bedst at fjerne MySQL helt inden du installerer MariaDB:

 sudo apt-get fjern --purge mysql-server mysql-client mysql-almindelig sudo apt-get autoremove sudo rm -rf / var / lib / mysql sudo apt-get autoclean 

Dernæst tilføj PPA til MariaDB:

 sudo apt-get install software-egenskaber-almindelige sudo apt-key adv -recv-nøgler --keyserver hkp: //keyserver.ubuntu.com: 80 0xcbcb082a1bb943db sudo add-apt-repository 'deb http: //sfo1.mirrors .digitalocean.com / mariadb / repo / 10.0 / ubuntu trusty main 'sudo apt-get opdatering 

Bemærk at du også kan oprette din egen PPA her og finde placeringen tættest på din server.

Installer MariaDB med denne kommando:

 sudo apt-get install mariadb-server 

Under installationen vil det bede dig om at angive et kodeord for rodenbrugeren.

Efter installationen kan du starte MariaDB med kommandoen:

 sudo service mysql start 

Installation af PHP og HHVM

HHVM er ikke en erstatning for PHP. Det er en open-source virtuel maskine designet til at udføre programmer skrevet i Hack og PHP. HHVM bruger en just-in-time (JIT) kompilering tilgang til at opnå overlegen ydeevne, samtidig med at den udviklings fleksibilitet, som PHP giver.

Inden vi installerer HHVM, er det vigtigt først at installere PHP i serveren. I stedet for at installere den fulde PHP5-pakke, som indeholder en masse Apache-filer, installerer vi kun php5-fpm, som derefter installerer de nødvendige PHP-afhængigheder. Vi skal også have php5-fpm som en tilbagesendelse til HHVM.

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

Når du er færdig, skal du installere HHVM med kommandoerne:

 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 opdatering sudo apt-get install hhvm 

Når HHVM er installeret, skal du fortsætte med at konfigurere den for Nginx med kommandoen:

 sudo /usr/share/hhvm/install_fastcgi.sh 

Endelig genstart HHVM

 sudo service hhvm genstart 

For at teste om HHVM virker, skal du oprette en "phpinfo.php" -fil i Nginx-rodmappen.

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

og indsæt følgende linje:

Tryk på "Ctrl + o" for at gemme og "Ctrl + x" for at afslutte.

I din browser skal du indlæse url: http://123.4.56.789/phpinfo.php (udskift 123.4.56.789 med din serverens IP-adresse). Du skal bare se ordet "HipHop" for at vise, at HHVM arbejder.

Konfiguration af websteder til at køre i Nginx og HHVM (med php5-fpm tilbagegang)

Nu hvor du har alt oprettet, er det tid til at oprette en virtuel vært for at køre din hjemmeside.

Opret en ny config-fil, der indeholder dit website detaljer:

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

og indsæt i følgende uddrag:

 server {listen 80; lyt [::]: 80; root / var / www / html; # Tilføj index.php til listen, hvis du bruger PHP indeks index.html index.htm; servernavn mywebsite.com; inkludere hhvm-med-fallback.conf; placering / {# Første forsøg på at betjene anmodning som fil, derefter # som mappe, og fald derefter tilbage for at vise en 404. try_files $ uri $ uri / = 404; } # passere PHP-scripts til FastCGI-server lytning på 127.0.0.1:9000 # location @ fallback {# include snippets / fastcgi-php.conf; # # # Med php5-fpm: fastcgi_pass unix: /var/run/php5-fpm.sock; fastcgi_index index.php; inkludere fastcgi_params; } # benægter adgangen til .htaccess-filer, hvis Apaches dokumentrots # er i overensstemmelse med nginx's en # placering ~ /\.ht {benægter alle; }} 

Du kan ændre server_name at pege på dit eget domæne og root, hvor du vil have filerne til at blive serveret.

HHVM har denne fejl at bryde lejlighedsvis uden at genstarte sig selv; Dette vil medføre, at hjemmesiden mislykkes med en 500 fejl. I dette tilfælde vil vi oprette et back-up-system, hvorved PHP5-FPM overtager, når HHVM fejler. Bemærk location @fallback blokken i config-udsnittet ovenfor? Det er tilbagekaldelsen, når HHVM fejler. For at afslutte ligningen skal vi stadig oprette filen "hhvm-with-fallback.conf", som er en ændret version af filen "hhvm.conf".

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

Indsæt følgende uddrag:

 placering ~ \. (hh | php) $ {proxy_intercept_errors on; error_page 500 501 502 503 = @fallback; fastcgi_keep_conn på; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; inkludere fastcgi_params; } 

Gem og afslut filen.

Endelig test Nginx indstillinger med

 sudo nginx -t 

og hvis alt er fint, genstart nginx.

 sudo service nginx genstart 

Det er det. Du har gennemført LEMH-stackopsætningen på din Linux-server.