Hvis du har administrert en Linux-server før, vil du bli kjent med den vanlige LAMP (Linux, Apache, MySQL, PHP) -stakken. Apache, MySQL og PHP kan imidlertid noen ganger være ressursintensive og kan ikke være det beste for serveren din. I denne opplæringen skal vi erstatte hver eneste del av stabelen, unntatt Linux, med et bedre alternativ - Nginx, MariaDB og HHVM.

Antagelse

1. Denne opplæringen er gjort på en Ubuntu 14.04-server, men instruksjonene vil fungere for alle Debian-baserte distroer også.

2. Denne veiledningen fokuserer bare på å installere og sette opp LEMH-stakken. Det berører ikke sikkerhetsaspektet på serveren.

3. Du må allerede ha SSH-tilgang til serveren din (eller fysisk tilgang til maskinen din) for å utføre denne opplæringen.

Installere Nginx

Nginx er en lett, men kraftig, erstatning for Apache. Det er en åpen kildekode-omvendt proxy-server, samt en webserver med sterkt fokus på høy samtidighet, høy ytelse og lavt minnebruk. Vær oppmerksom på at Nginx ikke er kompatibel med Apache, slik at alle Apache-konfigurasjonene, spesielt de .htaccess-filene du opprettet, ikke vil fungere i Nginx. Det er også mulig å kjøre både Apache og Nginx på samme server, men det vil innebære en komplisert konfigurasjon som vi ikke vil dekke her.

Nginx finnes i Ubuntu-depotet, men det er ofte utdatert. For å få den nyeste stabile versjonen, legg til følgende PPA på systemet ditt:

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

Den nyeste versjonen av Nginx som av dette innlegget er 1.6.2. Alternativt, hvis du vil prøve den nyeste utviklingsversjonen, kan du bruke denne PPA-en i stedet:

 sudo add-apt-depot ppa: nginx / utvikling sudo apt-get oppdatering 

Den siste utviklingsversjonen som av dette innlegget er 1.7.8.

For å installere Nginx, kjør kommandoen:

 sudo apt-get install nginx 

Når installert, kjør følgende kommando for å forsikre deg om at den er startet:

 sudo service nginx start 

Deretter går du i nettleseren din til "http://123.4.56.789" (erstatt 123.4.56.789 med serverens IP-adresse), og du bør se følgende:

Installere MariaDB

I mange år er MySQL standard databasestyringstjeneste for mange applikasjoner. Siden det ble kjøpt opp av Oracle, begynte mange å stille spørsmål til sin "åpen kilde" -het, og samfunnet (som inkluderte grunnleggeren av MySQL) bestemte seg for å lage en gaffel av MySQL og kalt den MariaDB. MariaDB er en erstatning for MySQL, noe som betyr at den er fullt kompatibel med MySQL-databaser og kan brukes som en total erstatning for MySQL.

Interessant faktum : MySQL er grunnlagt av Michael Widenius og er oppkalt etter sin første datter, My. MariaDBs ledende utvikler er også Michael Widenius og er oppkalt etter sin andre datter, Maria.

På serveren din, hvis du tidligere har installert MySQL, er det best å fjerne MySQL helt før du installerer MariaDB:

 sudo apt-get fjerne --purge mysql-server mysql-klient mysql-vanlig sudo apt-få autoremove sudo rm -rf / var / lib / mysql sudo apt-få autoclean 

Deretter legger du til PPA for MariaDB:

 sudo apt-get install programvare-egenskaper-vanlig 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 pålitelig main 'sudo apt-get oppdatering 

Merk at du også kan generere din egen PPA her og finne plasseringen nærmest din server.

Installer MariaDB med denne kommandoen:

 sudo apt-get install mariadb-server 

Under installasjonen vil det be deg om å angi et passord for roten brukeren.

Etter installasjonen kan du starte MariaDB med kommandoen:

 sudo service mysql start 

Installere PHP og HHVM

HHVM er ikke en erstatning for PHP. Det er en åpen kildekode virtuell maskin designet for å utføre programmer skrevet i Hack og PHP. HHVM bruker en just-in-time (JIT) kompilering tilnærming for å oppnå overlegen ytelse, samtidig som utviklingsfleksibiliteten som PHP gir, opprettholdes.

Før vi installerer HHVM, er det viktig å først installere PHP i serveren. I stedet for å installere den fulle PHP5-pakken, som inneholder en masse Apache-filer, installerer vi bare php5-fpm, som deretter installerer de nødvendige PHP-avhengighetene. Også, vi trenger php5-fpm som en tilbakebetaling for HHVM.

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

Når du er ferdig, installer HHVM med kommandoene:

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

Når HHVM er installert, fortsett å konfigurere den for Nginx med kommandoen:

 sudo /usr/share/hhvm/install_fastcgi.sh 

Til slutt, start på nytt HHVM

 sudo service hhvm restart 

For å teste om HHVM virker, opprett en "phpinfo.php" -fil i Nginx-rotmappen.

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

og lim inn følgende linje:

Trykk "Ctrl + o" for å lagre og "Ctrl + x" for å avslutte.

I nettleseren din laster du inn nettadressen: http://123.4.56.789/phpinfo.php (erstatt 123.4.56.789 med serverens IP-adresse). Du bør bare se ordet "HipHop" for å vise at HHVM fungerer.

Konfigurere nettsteder å kjøre i Nginx og HHVM (med php5-fpm tilbakebetaling)

Nå som du har alt satt opp, er det på tide å lage en virtuell vert for å kjøre nettstedet ditt.

Opprett en ny config-fil som inneholder nettstedet ditt:

 sudo nano / etc / nginx / nettsteder tilgjengelig / min side 

og lim inn i følgende utdrag:

 server {listen 80; lytt [::]: 80; root / var / www / html; # Legg til index.php til listen hvis du bruker PHP indeks index.html index.htm; servernavn minwebsite.com; inkludere hhvm-med-fallback.conf; plassering / {# Første forsøk på å betjene forespørsel som fil, deretter # som katalog, og deretter tilbake for å vise en 404. try_files $ uri $ uri / = 404; } # passere PHP-skriptene til FastCGI-serverlytter 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; } # nekte tilgang til .htaccess-filer, hvis Apaches dokumentrot # er enig med nginxs en # plassering ~ /\.ht {nekter alle; }} 

Du kan endre server_name å peke på ditt eget domene og server_name der du vil at filene skal vises.

HHVM har denne feilen å krasje av og til uten å starte på nytt; Dette vil føre til at nettsiden mislykkes med en 500 feil. I dette tilfellet vil vi lage et tilbakeslagssystem der PHP5-FPM vil overta når HHVM mislykkes. Legg merke til location @fallback blokken i config- location @fallback ovenfor? Det er tilbakeringingen når HHVM mislykkes. For å fullføre ligningen trenger vi fremdeles å lage "hhvm-med-fallback.conf" -filen som er en modifisert versjon av "hhvm.conf" -filen.

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

Lim inn følgende utdrag:

 plassering ~ \. (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; } 

Lagre og avslutt filen.

Til slutt, test Nginx-innstillinger med

 sudo nginx -t 

og hvis alt er bra, start Nginx på nytt.

 sudo service nginx restart 

Det er det. Du har fullført LEMH-stablingsoppsettet på Linux-serveren din.