Hvordan sette opp LEMH (Linux, Nginx, MariaDB, HHVM) Stack i Ubuntu Server
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.