Hur man installerar en webbserver med Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [4: e del: Nginx + PHP med SpawnFastCGI]

För en tid sedan Jag berättade om denna serie handledning, om hur man installerar och konfigurerar en server för webbhotell med hög efterfrågan. Den här artikeln handlar om installation och konfigurering Nginx + PHP med SpawnFastCGI:

Spawn_FastCGI:

Detta kan sägas vara det som förenar Nginx med PHP, det vill säga även om de har PHP5-paketet installerat om de inte har Spawn_FastCGI installerat och kört när de öppnar en webbplats i PHP kommer webbläsaren att ladda ner filen, det kommer inte att visa dem något som .php har programmerats eftersom servern inte vet hur man hanterar .php-filer, varför det är viktigt att installera och konfigurera Spawn_FastCGI.

Om vi ​​använde Apache skulle det vara något så enkelt som att installera paketet libapache2-mod-php5 men eftersom vi använder Nginx måste vi istället installera paketet spawn-fcgi. I handledningen kommer jag också att förklara hur man skapar ett initialt skript för det i /etc/init.d/ så att du kan styra det bekvämare.

1. Installation:

Vi börjar med den första, installerar Spawn-FastCGI och PHP från våra förråd.

Alla kommandon som kommer att köras körs med rootbehörigheter, antingen genom att sätta sudo i början av varje rad eller genom att vara inloggad som root

Om du på din server använder en distribution som Debian, Ubuntu eller något derivat i terminalen måste du ange följande och trycka på ange :

aptitude install spawn-fcgi php5-cgi php5-curl

aptitude är inte installerat som standard i Ubuntu, men jag rekommenderar att du installerar det och använder det istället för apt-get, eftersom aptitude gör bättre hantering av beroenden vid vissa tillfällen

Personligen rekommenderar jag inte något derivat av Debian, inte ens Ubuntu för servrar, under åren har mina erfarenheter inte varit helt tillfredsställande. Mitt första val för serveroperativsystem är Debian, då skulle jag tänka på CentOS, äntligen lite BSD

2. Konfiguration:

I föregående steg (när vi installerade Nginx) hämtade vi en fil som heter nginx-spawn-fastcgi.tar.gz att när den är uppackad skapade den mappen nginx-spawn-fastcgi i vårt hem, vi kommer att kopiera filen från den spawn-fastcgi till /etc/init.d/:

cp ~/nginx-spawn-fastcgi/spawn-fastcgi /etc/init.d/

Vi behöver också den php-fastcgi körbara i / usr / bin /

cp ~/nginx-spawn-fastcgi/php-fastcgi /usr/bin/

Perfekt, vi har redo filen som gör att vi kan styra spawn-fastcgi och även php-fastcgi körbar, nu ska vi börja spawn-fastcgi:

/etc/init.d/spawn-fastcgi start

Det kommer att visa oss ungefär som: spawn-fcgi: barn gick framgångsrikt: PID: 3739

Nu ska vi ersätta vår /etc/nginx/sites-available/mywebsite.net fil med ~ / nginx-spawn-fastcgi / mywebsite_plus_php.net

cp ~/nginx-spawn-fastcgi/mywebsite_plus_php.net /etc/nginx/sites-available/mywebsite.net

Varför? Enkelt, eftersom vår gamla mywebsite.net-fil inte har stöd för PHP, det vill säga det är bara Nginx, medan filen mywebsite_plus_php.net stöder PHP, det vill säga Nginx + PHP med SpawnFastCGI.

Skillnaderna mellan dessa filer är flera, till exempel:

  • I rad 3 läggs filen som stöder PHP till index.php
  • En ny rad under nr 3 som innehåller: fastcgi_index index.php;
  • Flera andra nya rader som berättar för Nginx hur man bearbetar PHP.
  • ... .. hur som helst, här är ett foto som hjälper dig att känna till skillnaderna mellan de två filerna:

nginx_mysql_spawn-fastcgi_comparing_mywebsite_confs

 

Filen mywebsite_plus_php.net är en vhost som fungerar som ett exempel, det vill säga och med andra ord måste vi ändra den och skapa våra konfigurationer.

Vi måste ändra följande:

  • access_log (rad 3): Detta är sökvägen till åtkomstloggfilen till den här webbplatsen
  • error_log (rad 4): Detta kommer att vara sökvägen till felloggfilen till den här webbplatsen
  • server_name (rad 5): URL: en, domänen som är värd i den mappen, om det till exempel var FromLinux-forumet skulle det vara: server_name forum.fromlinux.net
  • root (rad 6): Sökvägen till mappen där html-filerna finns, låt oss lämna den här i / var / www / eftersom det bara kommer att vara ett test
Uppenbarligen måste de peka i sina DNS-poster från sin värdleverantör (med hjälp av CPanel eller ett annat verktyg) att domänen eller underdomänen som deklareras i servernamn finns på IP-adressen för den här servern som de konfigurerar. Det vill säga, i DNS där de skapar underdomäner för sin domän, måste de deklarera att domänen eller underdomänen som de har lagt i rad 5 finns på denna server (denna server = IP-adressen till servern i fråga)

Klar, nu startar vi om Nginx:

/etc/init.d/nginx restart

För att verifiera att vår Nginx bearbetar PHP ordentligt, låt oss kopiera filen phptest.php till den värdmapp, det vill säga den som anges i rad nr 6 i filen mywebsite_plus_php.net (till exempel root / var / www /), förutsatt att låta webbplatsen vara direkt i / var / www / skulle vara:

cp ~/nginx-spawn-fastcgi/phptest.php /var/www/

Antar att vi i rad 5 på vår mywebsite_plus_php.net (det vill säga servernamnsraden) har sagt att vår webbplats är www.mysite.net då måste vi komma åt www.mysite.net/phptest.php. Med andra ord är tanken att få tillgång till phptest.php-filen från vår webbläsare och om följande visas kopplas vår Nginx perfekt till PHP:

nginx_mysql_spawn-fastcgi_tersting_nginx_php

 

Om detta inte visas, det vill säga att webbläsaren försöker ladda ner .php-filen ... det betyder att de gjorde något fel, att de inte ersatte /etc/nginx/sites-available/mywebsite.net med ~ / nginx-spawn-fastcgi / mywebsite_plus_php.net ... att de glömde att starta om Nginx med /etc/init.d/nginx starta om eller att de glömde att starta Spawn-FastCGI med /etc/init.d/spawn-fastcgi start

Hittills handledning för att länka Nginx med PHP med SpawnFastCGI, vi behöver bara MySQL och APC

Jag hoppas att du tycker detta är intressant.


Innehållet i artikeln följer våra principer om redaktionell etik. Klicka på för att rapportera ett fel här.

11 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras.

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   F3niX sade

    Om det är en fjärdedel, varför står bilden 3? började vid 0 antar jag? utmärkt inlägg.

    hälsningar

    1.    KZKG ^ Gaara sade

      1: Presentation
      2: a Nginx
      3: e Nginx + PHP (Spawn_FastCGI)

      🙂

      Tack för att du läste ^ _ ^

      1.    Rodrigo sade

        vad hände med del 4 ???
        och med efterföljande ?????

  2.   rpyanm sade

    Hej:

    Det skulle vara ett bättre val om du istället för mysql använde MariaDB, som du borde veta, den senare är en gaffel av den första, och det talas redan om att det kommer att vara framtidens Mysql (http://www.genbetadev.com/bases-de-datos/mariadb-sera-el-mysql-del-futuro) eftersom Mysql är gratis, upp till en punkt.

    SkySQL, ett företag som tillhandahåller tjänster från gratis databaser, stödde ekonomiskt MariaDB-projektet (http://www.genbetadev.com/bases-de-datos/mariadb-y-skysql-unen-fuerzas-para-llevar-a-mariadb-a-lo-mas-alto) och Google som vill sluta bero på Mysql, som Wikipedia också gjorde, och kommer att göra övergången från MySQL 5.1 till MariaDB 10.0 med hjälp av SkySQL, som redan är experter på detta område.

    Salu2.

    1.    KZKG ^ Gaara sade

      Hej,

      Ja naturligtvis, jag känner MariaDB och faktiskt har vi redan pratat om det: https://blog.desdelinux.net/tag/mariadb/

      Just nu använder jag MySQL eftersom jag gör dessa handledning från den speciella upplevelsen jag hade när jag migrerade från Linux (med alla dess tjänster) till andra servrar, vid den tiden ändrade vi tekniken helt och de uppgifter eller ändringar som jag fick möta var inte få.
      Läs den här kommentaren från det ögonblicket: https://blog.desdelinux.net/el-blog-desdelinux-abandona-hostgator-y-pasa-a-gnutransfer/comment-page-1/#comment-81291

      Den sista idén är ja, migrera till MariaDB, men jag har inte haft tid att göra relevanta tester 🙂

      Tack för att du läser

  3.   eliotime3000 sade

    Denna handledning hjälper mig att installera zPanel X med NGINX så att jag inte mättar min webbplats när jag migrerar till GNUPanel VPS.

  4.   Dragnell sade

    Julklappen? Jag såg fram emot att gratulera alla.

    1.    KZKG ^ Gaara sade

      Tack partner 😀

  5.   St0rmt4il sade

    Tillagd till favoriter!

    Förresten, jag har denna tvivel och fråga, har Nginx verkligen mer prestanda än Apache?

    Hälsningar!

    1.    KZKG ^ Gaara sade

      Tja, Apache kan optimeras mycket men ... tills nu, Google det och nästan alla av oss är överens om att Nginx förbrukar mycket mindre RAM, har en inte obetydlig prestanda, även om det inte är så enkelt när man konfigurerar.

  6.   Luis Morales sade

    Bra KZKG ^ Gaara utmärkt information för de av oss som är intresserade av denna värld, en fråga för när det 4: e inlägget 😀