Hoe een webserver te installeren met Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [4e deel: Nginx + PHP met SpawnFastCGI]

Hace tiempo een Ik heb je over deze reeks tutorials verteld, over het installeren en configureren van een server voor veeleisende hosting. Dit artikel gaat over installeren en configureren Nginx + PHP met SpawnFastCGI:

Spawn_FastCGI:

Dit kan gezegd worden dat Nginx verenigt met PHP, dat wil zeggen, zelfs als ze het PHP5-pakket hebben geïnstalleerd als ze Spawn_FastCGI niet hebben geïnstalleerd en uitgevoerd wanneer ze een site in PHP openen, zal de browser het bestand downloaden, het zal niet worden weergegeven ze alles dat de .php is geprogrammeerd omdat de server niet weet hoe .php-bestanden moeten worden verwerkt, daarom is het essentieel om Spawn_FastCGI te installeren en te configureren.

Als we Apache zouden gebruiken, zou het zoiets eenvoudigs zijn als het installeren van het libapache2-mod-php5-pakket, maar aangezien we Nginx gebruiken, zullen we in plaats daarvan het spawn-fcgi-pakket moeten installeren. In de tutorial zal ik ook uitleggen hoe je er een eerste script voor kunt maken in /etc/init.d/, zodat je het comfortabeler kunt bedienen.

1. installatie:

We beginnen met de eerste, installeren Spawn-FastCGI en PHP vanuit onze repositories.

Alle opdrachten die worden uitgevoerd, worden uitgevoerd met root-rechten, ofwel door sudo aan het begin van elke regel te plaatsen of door ingelogd te zijn als root

Als u op uw server een distributie gebruikt zoals Debian, Ubuntu of een derivaat in de terminal, moet u het volgende plaatsen en op drukken Enter :

aptitude install spawn-fcgi php5-cgi php5-curl

aptitude wordt niet standaard geïnstalleerd in Ubuntu, maar ik raad u aan het te installeren en te gebruiken in plaats van apt-get, aangezien aptitude in bepaalde gevallen een beter beheer van afhankelijkheden mogelijk maakt

Persoonlijk raad ik geen afgeleide van Debian aan, zelfs geen Ubuntu voor servers, door de jaren heen waren mijn ervaringen niet helemaal bevredigend. Mijn eerste keuze voor serverbesturingssysteem is Debian, dan zou ik denken aan CentOS, eindelijk wat BSD

2. Configuratie:

In de vorige stap (toen we Nginx installeerden) hebben we een bestand met de naam nginx-spawn-fastcgi.tar.gz gedownload dat bij het uitpakken de map nginx-spawn-fastcgi in ons huis heeft gemaakt, we zullen het bestand ervan kopiëren spawn-fastcgi naar /etc/init.d/:

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

We hebben ook het uitvoerbare php-fastcgi-bestand nodig in / usr / bin /

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

Perfect, we hebben het bestand klaar waarmee we spawn-fastcgi kunnen besturen en ook het uitvoerbare php-fastcgi-bestand, nu gaan we spawn-fastcgi starten:

/etc/init.d/spawn-fastcgi start

Het zal ons iets laten zien als: spawn-fcgi: kind is succesvol voortgebracht: PID: 3739

Nu gaan we ons /etc/nginx/sites-available/mywebsite.net bestand vervangen door ~ / nginx-spawn-fastcgi / mywebsite_plus_php.net

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

Waarom? Simpel, omdat ons oude mywebsite.net-bestand geen ondersteuning voor PHP heeft, dat wil zeggen, het is alleen Nginx, terwijl het bestand mywebsite_plus_php.net wel ondersteuning heeft voor PHP, dat wil zeggen Nginx + PHP met SpawnFastCGI.

De verschillen tussen deze bestanden zijn verschillende, bijvoorbeeld:

  • In regel 3 wordt het bestand dat PHP ondersteunt toegevoegd index.php
  • Een nieuwe regel onder nummer 3 die bevat: fastcgi_index index.php;
  • Verschillende andere nieuwe regels die Nginx vertellen hoe PHP moet worden verwerkt.
  • … .. hoe dan ook, hier is een foto die u zal helpen de verschillen tussen de twee bestanden te kennen:

nginx_mysql_spawn-fastcgi_comparing_mywebsite_confs

Het mywebsite_plus_php.net-bestand is een vhost die als voorbeeld dient, dat wil zeggen, en met andere woorden, we moeten het aanpassen en onze configuraties vastleggen.

We moeten het volgende veranderen:

  • access_log (regel 3): Dit is het pad van het toegangslogbestand naar deze site
  • error_log (regel 4): Dit is het pad van het foutenlogboek naar deze site
  • servernaam (regel 5): De URL, het domein dat in die map wordt gehost, bijvoorbeeld als dit het forum zou zijn DesdeLinux het zou zijn: forumservernaam.desdelinux.net
  • root (regel 6): Het pad naar de map waar de html-bestanden zijn, laten we dit achterlaten in / var / www / aangezien het alleen een test zal zijn
Het is duidelijk dat ze in hun DNS-records van hun hostingprovider (met behulp van CPanel of een andere tool) moeten hebben aangegeven dat het domein of subdomein dat is opgegeven in servernaam zich bevindt op het IP-adres van deze server die ze aan het configureren zijn. Dat wil zeggen, in de DNS waar ze subdomeinen voor hun domein creëren, moeten ze verklaren dat het domein of subdomein dat ze in regel 5 hebben geplaatst zich op deze server bevindt (deze server = het IP-adres van de server in kwestie)

Klaar, nu zullen we Nginx herstarten:

/etc/init.d/nginx restart

Om te controleren of onze Nginx PHP correct verwerkt, laten we het bestand phptest.php naar de gehoste map kopiëren, dat wil zeggen degene die is aangegeven in regel 6 van het bestand mywebsite_plus_php.net (bijvoorbeeld root / var / www /), ervan uitgaande dat de site direct wordt gehost in / var / www / zou zijn:

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

Stel dat we in regel 5 van onze mywebsite_plus_php.net (dat wil zeggen de regel server_name) hebben gezegd dat onze site www.mysite.net is, dan moeten we toegang krijgen tot www.mysite.net/phptest.php. Met andere woorden, het idee is om vanuit onze browser toegang te krijgen tot het bestand phptest.php en als het volgende verschijnt, is onze Nginx perfect gekoppeld aan PHP:

nginx_mysql_spawn-fastcgi_tersting_nginx_php

In het geval dat dit niet verschijnt, dat wil zeggen dat de browser het .php-bestand probeert te downloaden ... dit betekent dat ze iets verkeerd hebben gedaan, dat ze /etc/nginx/sites-available/mywebsite.net niet hebben vervangen door ~ / nginx-spawn-fastcgi / mywebsite_plus_php.net ... dat je bent vergeten Nginx opnieuw te starten met /etc/init.d/nginx herstart of je bent vergeten Spawn-FastCGI te starten met /etc/init.d/spawn-fastcgi start

Tot nu toe hebben we de tutorial om Nginx met PHP te koppelen met SpawnFastCGI, alleen MySQL en APC nodig 🙂

Ik hoop dat dit interessant voor je is.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   f3niX zei

    Als het een kwart is, waarom zegt de afbeelding dan 3? begon om 0, denk ik? uitstekende post.

    groeten

    1.    KZKG ^ Gaara zei

      1e: presentatie
      2e: Nginx
      3e: Nginx + PHP (Spawn_FastCGI)

      🙂

      Bedankt voor het lezen van ^ _ ^

      1.    Rodrigo zei

        wat is er gebeurd met deel 4 ???
        en met de daaropvolgende ?????

  2.   rpyanm zei

    Hi

    Het zou een betere keuze zijn als je in plaats van mysql MariaDB zou gebruiken, zoals je zou moeten weten, de laatste is een vork van de eerste, en er wordt al gesproken dat het de Mysql van de toekomst zal zijn (http://www.genbetadev.com/bases-de-datos/mariadb-sera-el-mysql-del-futuro) aangezien Mysql gratis is, tot op zekere hoogte.

    SkySQL, een bedrijf dat diensten levert vanuit gratis databases, heeft het MariaDB-project (http://www.genbetadev.com/bases-de-datos/mariadb-y-skysql-unen-fuerzas-para-llevar-a-mariadb-a-lo-mas-alto) en Google die wil stoppen met afhankelijk te zijn van Mysql, zoals Wikipedia deed, en zal overstappen van MySQL 5.1 naar MariaDB 10.0 met precies de hulp van SkySQL, die al experts zijn op dit gebied.

    Salu2.

    1.    KZKG ^ Gaara zei

      Hallo,

      Ja natuurlijk, ik ken MariaDB en in feite hebben we het er al over gehad: https://blog.desdelinux.net/tag/mariadb/

      Op dit moment gebruik ik echter MySQL omdat ik deze tutorials doe vanuit de specifieke ervaring die ik had bij het migreren. DesdeLinux (met al zijn diensten) naar andere servers, op dat moment hebben we de technologie volledig veranderd en de taken of veranderingen waarmee ik te maken kreeg waren niet gering.
      Lees dit commentaar van mij vanaf dat moment: https://blog.desdelinux.net/el-blog-desdelinux-abandona-hostgator-y-pasa-a-gnutransfer/comment-page-1/#comment-81291

      Het uiteindelijke idee is ja inderdaad, migreer naar MariaDB, maar ik heb geen tijd gehad om de relevante tests te doen 🙂

      Bedankt voor het lezen

  3.   eliotime3000 zei

    Deze tutorial zal me helpen om zPanel X met NGINX te installeren om mijn site niet te verzadigen bij het migreren naar de GNUPanel VPS.

  4.   dragnell zei

    Het kerstcadeau? Ik verheugde me op alle felicitaties.

    1.    KZKG ^ Gaara zei

      Bedankt partner 😀

  5.   st0rmt4il zei

    Toegevoegd aan favorieten!

    Trouwens, ik heb deze twijfel en vraag, heeft Nginx echt meer prestaties dan Apache?

    Groeten!

    1.    KZKG ^ Gaara zei

      Welnu, Apache kan veel worden geoptimaliseerd, maar ... tot nu toe zijn Google it en bijna allemaal het erover eens dat Nginx veel minder RAM verbruikt, niet onaanzienlijke prestaties levert, hoewel het niet helemaal zo eenvoudig is bij het configureren.

  6.   Luis Morales zei

    Goede KZKG ^ Gaara uitstekende informatie voor degenen onder ons die geïnteresseerd zijn in deze wereld, een vraag, voor wanneer de 4e post 😀