Wat zijn Apaches? Apache installeren op Windows (7). Een PHP-directory toevoegen aan PATH op Windows

Apache HTTP-server(van Engels een fragmentarische server, “server met patches”, daarnaast is er een toespeling op de Apache-indianenstam. Vervormde uitspraak komt veel voor onder Russische gebruikers Apache) is een volledig uitgeruste, uitbreidbare webserver die het HTTP/1.1-protocol volledig ondersteunt en open source is.

De server kan op vrijwel alle gangbare platforms draaien. Er zijn kant-en-klare serverprogramma's voor Windows NT, Windows 9x, OS/2, Netware 5.x en verschillende UNIX-systemen. Tegelijkertijd is het zeer eenvoudig te installeren en configureren.

Eigenlijk zijn het de configuratieflexibiliteit en de betrouwbaarheid ervan die als de belangrijkste voordelen van de Apache-server worden beschouwd. Hiermee kunt u externe modules aansluiten om gegevens te verstrekken, een DBMS gebruiken om gebruikers te authenticeren, foutmeldingen te wijzigen, enz. Ondersteunt IPv6.

Apache wordt geconfigureerd met behulp van tekstconfiguratiebestanden. De basisinstellingen zijn standaard al geconfigureerd en zullen in de meeste gevallen werken. Als de functionaliteit van de standaard Apache niet voldoende is, is het mogelijk om verschillende modules te gebruiken die zijn geschreven door de Apache Group en externe ontwikkelaars. Een belangrijk voordeel is dat de makers actief met gebruikers communiceren en op alle foutmeldingen reageren.

De eenvoudigste functie die Apache kan uitvoeren is om op een server te zitten en een gewone HTML-website te bedienen. Wanneer een verzoek voor een bepaalde pagina wordt ontvangen, stuurt de server zijn antwoord naar de browser. Het verzoek is het adres dat in de adresbalk van de browser is getypt.

Om het ontwerp en de functionele delen van de site te scheiden, en om de wijziging van statische objecten te vereenvoudigen, is er SSI-technologie. Hiermee kunt u alle herhalende informatie in één bestand plaatsen (bijvoorbeeld top.inc) en vervolgens een link ernaartoe in pagina's invoegen. Als het vervolgens nodig is om de informatie te wijzigen, wordt de informatie in slechts één bestand gewijzigd. De Apache-server ondersteunt deze technologie en stelt u in staat om de insluitsels op de server optimaal te benutten.

De functies van een webserver worden niet door de computer zelf uitgevoerd, maar door het programma dat erop is geïnstalleerd: dat wil zeggen dat wanneer de browser van de gebruiker verbinding maakt met de webserver en een GET-header verzendt (verzoek om een ​​bestand over te dragen), het Apache is. die het verzoek verwerkt. Apache controleert of het in de GET-header gespecificeerde bestand bestaat en stuurt dit, indien dat het geval is, samen met de headers naar de browser.

Apache is een soort webserverstandaard op internet. De belangrijkste concurrent is IIS (Internet Information Server) van Microsoft, dat op Windows draait. Apache, hoewel er versies van zijn voor Windows, wordt voornamelijk geïnstalleerd op Unix-achtige besturingssystemen - Linux en FreeBSD. Er moet ook worden opgemerkt dat de meeste hosters Apache gebruiken en niet IIS. IIS wordt meestal geïnstalleerd op bedrijfsservers met Windows.

Apache-server was een van de eerste servers die virtuele servers (hosts) ondersteunde. Hierdoor is het mogelijk om meerdere volwaardige websites op één fysieke server te hosten. Elk van hen kan zijn eigen domein, beheerder, IP-adres, enzovoort hebben.

Apache ondersteunt CGI- en PHP-technologieën, evenals de mogelijkheid om talen te verbinden. Dit maakt het veel gemakkelijker om met dynamische webpagina's te werken (wat tegenwoordig eigenlijk bijna allemaal webpagina's zijn).

Momenteel is de Apache-server nu op 67% van de servers wereldwijd geïnstalleerd.

Geschiedenis van de schepping

Apache Server is ontwikkeld en wordt onderhouden door het Apache Project.

Het was oorspronkelijk een variant van de NCSA-webserver, ontwikkeld in het National Supercomputing Development Center van de Universiteit van Illinois. Maar in 1994 verliet de belangrijkste ontwikkelaar van NCSA het project en liet zijn volgers zijn server zelf uitzoeken. Na verloop van tijd begonnen er correcties en toevoegingen aan de NCSA-server te verschijnen - de zogenaamde patches (patches, uit het Engels vertaald als "patches"). En in april 1995 werd de eerste versie van de Apache-server uitgebracht, die was gebaseerd op versie 1.3 van de NCSA-server. De eerste versie van Apache bevatte eenvoudigweg alle bekende oplossingen van de NCSA-server. En de naam Apache zelf komt hiervan – “A Patchy”.

Apache werd later een onafhankelijke ontwikkeling. Vanaf de tweede versie werd de code herschreven zodat deze geen enkele verwijzing naar NCSA-code bevatte. De Apache-server wordt momenteel onderhouden door een groep vrijwillige programmeurs, de Apache Group.

De Apache-server is oorspronkelijk ontwikkeld voor Linux- en Unix-besturingssystemen, maar na verloop van tijd zijn er versies uitgebracht voor Windows en OS/2.

Op dit moment wordt er ontwikkeld in tak 2.2, en in versies 1.3 en 2.0 worden alleen beveiligingsbugfixes aangebracht. Tegenwoordig is de nieuwste versie van de 2.4-tak versie 2.4.3, uitgebracht op 21 augustus 2012. Voor de eerste versie hebben de nieuwste oplossingen het label 1.3.42.

De Apache-webserver wordt ontwikkeld en onderhouden door een open gemeenschap van ontwikkelaars onder auspiciën van de Apache Software Foundation en is opgenomen in veel softwareproducten, waaronder Oracle DBMS en IBM WebSphere.

Van april 1996 tot heden was het de populairste HTTP-server op internet. De hoogste cijfers werden behaald in 2012: Apache draaide op 67% van de servers over de hele wereld. In 2011 bedroeg het aandeel 59%, in 2009 – 46% en in 2007 – 51%.

Apache intern systeemoproepdiagram

Apache-architectuur

De Apache-kern omvat kernfunctionaliteit zoals het verwerken van configuratiebestanden, het HTTP-protocol en een modulelaadsysteem. De kern (in tegenstelling tot modules) wordt volledig ontwikkeld door de Apache Software Foundation, zonder deelname van externe programmeurs.

Theoretisch kan de Apache-kernel in zijn pure vorm functioneren, zonder het gebruik van modules. De functionaliteit van een dergelijke oplossing is echter uiterst beperkt.

De Apache-kern is volledig geschreven in de programmeertaal C.

Het configuratiesysteem van Apache is gebaseerd op op tekst gebaseerde configuratiebestanden. Het heeft drie voorwaardelijke configuratieniveaus:

  • Serverconfiguratie (httpd.conf)
  • Virtuele hostconfiguratie (httpd.conf sinds versie 2.2, extra/httpd-vhosts.conf)
  • Configuratie op mapniveau (.htaccess)

Het heeft zijn eigen configuratiebestandstaal, gebaseerd op richtlijnblokken. Bijna alle kernelparameters kunnen worden gewijzigd via configuratiebestanden, inclusief MPM-besturing. De meeste modules hebben hun eigen parameters. Sommige modules gebruiken configuratiebestanden van het besturingssysteem in hun werk (bijvoorbeeld /etc/passwd en /etc/hosts). Bovendien kunnen parameters worden opgegeven via opdrachtregelschakelaars.

Er zijn veel symmetrische multiprocessing-modellen voor de Apache-webserver. Apache HTTP Server ondersteunt ook modulariteit. Er zijn meer dan 500 modules die verschillende functies uitvoeren. Hoewel sommige ervan rechtstreeks door het Apache Software Foundation-team zijn ontwikkeld, zijn de meeste bestaande modules ontwikkeld door externe open source-ontwikkelaars.

Modules kunnen tijdens het compileren in de server worden opgenomen of dynamisch worden geladen via richtlijnen voor configuratiebestanden.

Met behulp van modules kunt u het volgende implementeren:

  1. Uitbreiding van ondersteunde programmeertalen
  2. Extra functies toevoegen of de belangrijkste wijzigen.
  3. Foutcorrectie
  4. Verhoogde veiligheid.

Sommige webapplicaties, zoals de ISPmanager en VDSmanager controlepanelen, zijn geïmplementeerd als Apache-module.

Apache-server heeft een ingebouwd virtueel hostmechanisme. Hierdoor is het mogelijk om meerdere sites (domeinnamen) volledig te bedienen op één IP-adres, waarbij voor elk daarvan de eigen inhoud wordt weergegeven.

Voor elke virtuele host kunt u uw eigen kernel- en module-instellingen opgeven en de toegang tot de hele site of individuele bestanden beperken. Met sommige MPM's, zoals Apache-ITK, kunt u voor elke virtuele host een httpd-proces uitvoeren met een afzonderlijke uid en guid.

Er zijn ook modules waarmee u voor elke virtuele host rekening kunt houden met de serverbronnen (CPU, RAM, verkeer) en deze kunt beperken.

Integratie met andere software en programmeertalen

Om de server succesvol te integreren met verschillende software en programmeertalen, zijn er extra modules:

  • PHP (mod_php)
  • Python (mod python, mod wsgi)
  • Robijn (apache-robijn)
  • Perl (mod-perl)
  • ASP (apache-asp)
  • Tcl (klinknagel)

Apache ondersteunt CGI- en FastCGI-mechanismen, waardoor u programma's in alle programmeertalen kunt uitvoeren, inclusief C, C++, Lua, sh en Java.

Beveiliging

De beveiliging in Apache gebeurt met behulp van verschillende mechanismen die onder meer de toegang tot gegevens beperken. De belangrijkste zijn:

  • Beperking van de toegang tot bepaalde mappen of bestanden.
  • Een mechanisme voor het autoriseren van gebruikers om toegang te krijgen tot een map op basis van HTTP-authenticatie (mod_auth_basic) en digest-authenticatie (mod_auth_digest).
  • Beperking van de toegang tot bepaalde mappen of de hele server op basis van IP-adressen van gebruikers.
  • Het weigeren van toegang tot bepaalde typen bestanden voor alle of sommige gebruikers, bijvoorbeeld het weigeren van toegang tot configuratiebestanden en databasebestanden.
  • Er zijn modules die autorisatie via een DBMS of PAM implementeren.

Sommige MPM-modules hebben de mogelijkheid om elk Apache-proces uit te voeren met een andere uid en gid die overeenkomt met die gebruikers en/of gebruikersgroepen.

Er is ook een suexec-mechanisme dat wordt gebruikt om scripts en CGI-applicaties uit te voeren met gebruikersrechten en inloggegevens.

Om de codering van de gegevens die tussen de client en de server worden verzonden te implementeren, wordt het SSL-mechanisme gebruikt, geïmplementeerd via de OpenSSL-bibliotheek. X.509-certificaten worden gebruikt om de webserver te authenticeren.

Er zijn externe beveiligingstools beschikbaar, zoals mod_security.

Talen

De mogelijkheid voor de server om de locatie van de gebruiker te bepalen verscheen in versie 2.0. Vanaf nu worden alle servicemeldingen, evenals fout- en gebeurtenismeldingen, met behulp van SSI-technologie in meerdere talen weergegeven.

Het is mogelijk om servertools te gebruiken om verschillende pagina's weer te geven voor gebruikers met verschillende lokalisaties. Apache ondersteunt vele coderingen, waaronder Unicode, waarmee u pagina's kunt gebruiken die in elke codering en in elke taal zijn gemaakt.

Afhandeling van evenementen

De beheerder kan aangepaste pagina's en handlers instellen voor alle HTTP-fouten en -gebeurtenissen, zoals 404 (Niet gevonden) of 403 (Verboden). Het is mogelijk om scripts uit te voeren en berichten in verschillende talen weer te geven.

Serverzijde inbegrepen

In versie 1.3 en ouder is het Server Side Included-mechanisme geïmplementeerd, waarmee u dynamisch HTML-documenten aan de serverzijde kunt genereren.

SSI wordt beheerd door de mod_include-module die is opgenomen in de standaard Apache-distributie.

Apache versus IIS

Het debat over het kiezen van Apache of IIS is zo oud als het debat over het kiezen van een besturingssysteem: Linux of Windows. Voordat u de definitieve keuze maakt, is het daarom de moeite waard om de voor- en nadelen van beide adequaat te beoordelen.

De belangrijkste voordelen van Apache- en LAMP-serversystemen:

  1. lage kosten omdat het niet nodig is softwarelicenties aan te schaffen;
  2. flexibel programmeren dankzij open source code;
  3. Verbeterde beveiliging Omdat Apache is ontworpen voor een niet-Windows-besturingssysteem (en de meeste malware is geschreven voor het besturingssysteem van Microsoft), heeft het altijd de reputatie gehad veiliger te zijn dan IIS van Microsoft.

Voordelen van internetinformatiediensten (IIS):

  1. Windows en IIS worden ondersteund door Microsoft, terwijl Apache alleen wordt ondersteund door de gebruikersgemeenschap;
  2. IIS ondersteunt het .NET-platform en ASPX-scripts van Microsoft;
  3. Met modules kunt u het streamen van audio- en video-inhoud inschakelen.

Door de voordelen van deze twee servers te vergelijken, kunnen verschillende conclusies worden getrokken. Ten eerste: als de licentiekosten het belangrijkste criterium zijn bij het kiezen van een server, dan is het zeker de moeite waard om voor de LAMP-combinatie te kiezen, omdat deze vrij is van licentiekosten. Ten tweede loopt Apache op basis van veiligheidscriteria opnieuw voorop: het systeem is iets efficiënter. Ten derde draait IIS alleen op Windows OS en zal elke variatie in de keuze van het besturingssysteem opnieuw tot Apache leiden.

De enige optie waarbij IIS op het Windows-platform de beste keuze zal zijn, zijn de meest gebruiksvriendelijke beheertools als belangrijkste criterium. Bovendien moet het script dat wordt uitgevoerd uitsluitend op ASPX vertrouwen.

Het is echter mogelijk om een ​​oplossing te ontwikkelen die het werk op beide servers ondersteunt.

Het artikel beschrijft de installatie van Apache 2.4 + PHP 5.6 + MySQL 5.6 op het Windows 7/8/8.1/10 besturingssysteem

Voordat u verder leest, let op of u dit allemaal echt onder Windows moet installeren en configureren. Misschien moet u opletten en uw tijd en zenuwen niet verspillen door hetzelfde rechtstreeks in Windows te installeren? Lees in ieder geval het artikel over. Misschien bespaart het u niet alleen tijd, maar ook gezondheid.

Deze instructie zal nuttig zijn voor beginnende WEB-ontwikkelaars die de Apache WEB-server met de nieuwste versies van PHP-interpreter op hun Windows-pc gaan installeren. Het is natuurlijk veel eenvoudiger om een ​​assembly zoals Denwer te installeren of je toevlucht te nemen tot het gebruik van installatieprogramma's en je geen zorgen te maken over de instellingen. Echter, elke WEB-ontwikkelaar moeten het werkingsproces van de WEB-server, het proces van de installatie en configuratie ervan begrijpen.

Als je PHP 7 wilt installeren, raadpleeg dan het artikel.

Als je tijdens het samenstellen van de server volgens deze instructies problemen tegenkomt en jezelf nog steeds als een WEB-ontwikkelaar beschouwt, dan zou het de juiste stap zijn om de problemen die zich hebben voorgedaan te begrijpen, en niet in de opmerkingen te schrijven dat de instructies onzin zijn. De instructies werken. Getest door de tijd en honderden installaties. Wees voorzichtig bij het uitvoeren van eenvoudige stappen. Het handmatig uitvoeren van stappen en het analyseren van situaties, als het niet werkt, zal je vaardigheden als ontwikkelaar vergroten. Als u geen WEB-ontwikkelaar bent en dat ook niet van plan bent, zoek dan naar een eenvoudige installatiemethode op internet - deze instructies zijn niet voor u bedoeld.

Houd er rekening mee dat onder Windows XP deze versies VC11 het zal onmogelijk (of uiterst moeilijk) zijn om te lanceren.

Voorbereidend werk

Zorg ervoor dat u Windows 7 of hoger hebt. Als u Windows XP heeft, zullen deze instructies u niet helpen, aangezien de hier beschreven versie van Apache niet werkt onder Windows XP.

Verwijder alle WEB-servers die u eerder hebt geïnstalleerd, ga naar services en zorg ervoor dat daar geen Apache- of IIS-services staan. Als u al een webserver heeft geïnstalleerd, zal de tweede parallelle server hoogstwaarschijnlijk helemaal niet werken.

Als u Skype heeft, zorg er dan voor dat u het gebruik van poort 80 uitschakelt in de instellingen. Uiteindelijk moet u ervoor zorgen dat geen enkele service poort 80 gebruikt.

Voor werk is het zeer wenselijk om een ​​bestandsbeheerder te hebben waarmee je bestanden met elke extensie kunt maken, of, nog beter, een code-editor zoals Sublime Text of Notepad++ of een volwaardige IDE.

De mapstructuur kan verschillen, maar deze instructie is geschreven voor een specifieke structuur en als u deze volgt, werkt alles gegarandeerd.
Voordat u begint, maakt u op schijf D map USR, waarbinnen 5 submappen worden gemaakt: apache, php, tmp, www, loggen. Precies. Zonder vermelding van versienummers.

In de catalogus www maak indexbestanden (met behulp van een bestandsbeheerder of code-editor) die nodig zijn om te controleren of alles werkt:

  • index.html met inhoud: Het werkt!
  • index.php met inhoud:

Als u geen bestandsbeheerder/code-editor/IDE hebt, download dan het archief met deze twee bestanden. Maar als u zichzelf als een WEB-ontwikkelaar beschouwt, moet u de tools aanschaffen.

Voeg toe aan de systeemvariabele PATH:

;D:\USR\apache;D:\USR\apache\bin;D:\USR\php;

Opmerkingen!

De regelnummers die in de voorbeeldconfiguratiebestanden worden gegeven, kunnen verschillen voor andere versies van apache en php.
Alle opdrachten, inclusief het bewerken van bestanden, moeten als beheerder worden uitgevoerd.

Apache 2.4 installeren

Hoewel er voor eenvoudige ontwikkeling in PHP geen aparte WEB-server nodig is (PHP heeft een eigen WEB-server ingebouwd, wat vrijwel altijd voldoende is voor de ontwikkeling van één project), is het toch aan te raden om de Apache WEB-server te installeren en te configureren , al was het maar omdat de programmeur deze subtiliteiten moet kennen. Uiteindelijk zul je met de WEB-server moeten werken en te maken krijgen met de configuratie ervan. Dus laten we beginnen.

  1. Bezig met laden Apache 2.4 binaire bestanden VC11 voor jouw systeem via de link http://www.apachelounge.com/download/VC11/ Waarschijnlijk heb je een 64-bit besturingssysteem, dus je hebt een bestand nodig met een naam als httpd-2.4. xx-win64-VC11.zip
  2. Indien u extra modules nodig heeft, kunt u deze daar downloaden (niet noodzakelijk voor de basisinstallatie)
  3. Pak de inhoud van de map uit Apache24 van het gedownloade archief naar D:\USR\apache. Houd er rekening mee dat u in D:\USR\apache niet de Apache24-map uit het archief moet plaatsen, maar de inhoud ervan. Er hoeft niets te worden geïnstalleerd.
  4. Wijzig de waarde in het bestand ServerRoot naar "d:/USR/apache" ( lijn 37) en waarde DocumentRoot(En Directie) naar "d:/USR/www" ( lijnen 242 en 243). U moet ook het commentaar op regel 218 verwijderen en dit wijzigen in: Servernaam localhost:80
  5. We wijzigen de logboekopslagparameters in hetzelfde bestand (zoek de parameters en wijzig): ErrorLog "D:/USR/log/apache-error.log" CustomLog "D:/USR/log/apache-access.log" algemeen
  6. Installeer de Apache-service (namens de beheerder). Open een opdrachtprompt als beheerder en plak daar de volgende regel: D:\USR\apache\bin\httpd.exe -k install
  7. We monitoren foutmeldingen tijdens de service-installatie. Als alles correct is gedaan, mogen er geen fouten zijn. Als na het uitvoeren van de regel de opdrachtregel niet meer verschijnt, dan heb je iets verkeerd gedaan. Gebruik eenvoudig de kopieer- en plakfuncties om typefouten te voorkomen.
  8. Maak een snelkoppeling op het bureaublad voor D:\USR\apache\bin\ApacheMonitor.exe en/of plaats het in het opstarten (om het opstartvenster in WIN8 te openen, drukt u op WIN+R en vervolgens op Enter shell: opstarten en klik op OK)
  9. Start ApacheMonitor. Er verschijnt een snelkoppeling in het systeemvak. Klik er met de linkermuisknop op en selecteer Apache24 -> Start.
  10. Ga in de browser naar http://localhost/ - je zou het moeten zien Het werkt!
  11. Als je zo'n inscriptie niet ziet, zoeken we uit wat er mis is gegaan (we lezen de logs, google, proberen het probleem zelf te achterhalen, aangezien we besloten de fijne kneepjes van de webserver te begrijpen)

PHP 5.6 installeren

  1. Download de nieuwste versie VC11x86Draad veilig of VC11x64Draad veilig via de link http://windows.php.net/download/. Houd er rekening mee dat u precies nodig heeft VC11 en precies Draad veilig. De bitbreedte moet hetzelfde zijn als die van Apache. Het bestand dat je nodig hebt zal waarschijnlijk ongeveer zo heten: php-5.6.11-Win32-VC11-x86.zip of php-5.6.11-Win32-VC11-x64.zip
  2. De inhoud van het archief extraheren naar D:\USR\php. Net als bij Apache hoeft u niets te installeren.
  3. Om te archiveren D:\USR\apache\conf\httpd.conf voeg de regels toe: LoadModule php5_module "d:/USR/php/php5apache2_4.dll" AddHandler application/x-httpd-php .php # Pad naar het php.ini-bestand PHPIniDir "D:/USR/php"
  4. En verander de waarde DirectoryIndex op index.html index.php (lijn 276)
  5. Met ApacheMonitor herstarten we Apache (Apache24 -> Opnieuw opstarten)
  6. We gaan naar de browser http://localhost/index.php en zorgen ervoor dat PHP werkt.
  7. Een kopie van het bestand maken D:\USR\php\php.ini-ontwikkeling Met naam D:\USR\php\php.ini
  8. Met behulp van de zoekopdracht vinden, verwijderen we de parameters en wijzigen we deze: extension_dir = "D:/USR/php/ext" sys_temp_dir = "D:/USR/tmp" extension=php_mysql.dll extension=php_mysqli.dll extension=php_openssl.dll date.timezone = Europa/Zaporozhye
  9. Voer uit op de opdrachtregel php-m om de lijst met aangesloten modules te bekijken.
  10. Start Apache opnieuw met ApacheMonitor

Virtuele hosts in Apache

  1. Als u meerdere projecten op uw computer debugt, heeft u mogelijk virtuele hosts (sites) nodig. Als voorbeeld zullen we twee virtuele hosts beschouwen: s1.localhost En s2.localhost. Voor het gemak zullen we mappen met dezelfde namen maken, wat helemaal niet nodig is in een echt systeem.
  2. Houd er rekening mee dat bij gebruik van virtuele hosts de parameter DocumentRoot Apache-configuratiebestand heeft geen zin meer. De hoofdhost van de server (die toegankelijk zal zijn via http://localhost/) is nu eerste virtuele host in het configuratiebestand van de virtuele hosts!
  3. Eerst moet u de volgende regels toevoegen aan het bestand c:\Windows\System32\drivers\etc\hosts: 127.0.0.1 s1.localhost 127.0.0.1 s2.localhost

    Dit moet namens de beheerder gebeuren. Het is raadzaam om hierna opnieuw op te starten, maar in de praktijk was dit niet nodig. Als u het bestand (de machtigingen) niet kunt wijzigen, kunt u het naar uw bureaublad kopiëren, wijzigen en vervolgens terug kopiëren.

  4. Mappen maken voor virtuele hosts D:\USR\www\s1.localhost En D:\USR\www\s2.localhost, waarin de bestanden zich zullen bevinden. Maak in elke map een bestand index.html met inhoud S1 En S2 dienovereenkomstig (om te controleren of alles naar behoren werkt)
  5. Vervolgens maken we mappen voor logs: D:\USR\log\s1.localhost En D:\USR\log\s2.localhost- Logboeken voor elke site worden hier opgeslagen. Logboeken kunnen eigenlijk in één map worden opgeslagen, maar ik ben eraan gewend om het op deze manier te doen - het is handiger voor mij.
  6. Vervolgens moet u ondersteuning voor virtuele hosts inschakelen. In bestand D:\USR\apache\conf\httpd.conf verwijder het commentaar van de regel Voeg conf/extra/httpd-vhosts.conf toe
  7. Vervolgens bewerken we het bestand d:\USR\apache\conf\extra\httpd-vhosts.conf— het zou er zo uit moeten zien (elke virtuele host heeft zijn eigen VirtualHost-blok): ServerAdmin [e-mailadres beveiligd] DocumentRoot "D:/USR/www/s1.localhost" Servernaam s1.localhost ServerAlias ​​www.s1.localhost ErrorLog "D:/USR/log/s1.localhost/error.log" CustomLog "D:/USR/log /s1 .localhost/access.log" gebruikelijk ServerAdmin [e-mailadres beveiligd] DocumentRoot "D:/USR/www/s2.localhost" Servernaam s2.localhost ServerAlias ​​www.s2.localhost ErrorLog "D:/USR/log/s2.localhost/error.log" CustomLog "D:/USR/log /s2 .localhost/access.log" gebruikelijk
  8. Eerste virtuele host s1.localhost zal nu de hoofdhost van het systeem zijn, omdat het blok ervan komt als eerste in het configuratiebestand, d.w.z. zal beschikbaar zijn bij binnenkomst

Apache (Apache HTTP Server), de naam van de bekendste en wijdverspreide webserver die het HTTP/1.1-protocol ondersteunt. In wezen is een webserver een krachtig programma dat is ontworpen om een ​​http-verzoek uit de adresbalk van de browser te verwerken en op basis van dit verzoek de benodigde bestanden terug te sturen. Ter vereenvoudiging kunt u met webservers communicatie tot stand brengen tussen de browser en de server, volgens het volgende schema: de browser vraagt ​​om de sitebestanden op het adres, en de webserver geeft deze aan hem. Dit is heel simplistisch. “Communicatie” vindt plaats via het HTTP-protocol.

Webservers, waaronder Apache, zijn speciaal voor deze doeleinden ontwikkeld, en geen enkele server of hostingsoftware zal kunnen werken zonder dat er een webserver draait die het HTTP-protocol gebruikt.

Meer recentelijk had Apache een virtueel monopolie voor het oplossen van zijn problemen. Nu heeft de Nignix-webserver bijna geen tijd meer. Er wordt steeds vaker gebruik gemaakt van de symbiose van Apache en Nignix.

Je kunt niet zonder een webserver en het bouwen van een lokale server. Tegenwoordig is de situatie dat Apache wordt gebruikt en bovendien domineert in alle lokale serverbuilds, zowel voor Windows als Linux.

Apache-beheer

Om kennis te maken met de Apache-webserver, is het de moeite waard om vertrouwd te raken met hoe de Apache-service vanaf de clientzijde wordt beheerd.

Het is waarschijnlijk dat het gemak van extern beheer van de Apache-webservice deze zo populair heeft gemaakt (of dit is een van de redenen). Om de Apache-webservice te beheren, is er een speciaal bestand genaamd .htaccess (met een punt aan het begin). Qua functionaliteit is het vergelijkbaar met het robots.txt-bestand voor zoekrobots. Met speciale richtlijnen die in dit bestand zijn geschreven, kunt u als gebruiker de weergave van pagina's op uw site beheren, omleidingen maken, enz., zonder u te verdiepen in de serversoftware. Naast het .htaccess-bestand is er voor het beheer van Apache een htpasswd-bestand (ook met een punt aan het begin) en ook mod_auth- en mod_access-modules.

Maar laten we terugkeren naar lokale servers. Om een ​​lokale server op uw computer te installeren (aan te maken), kunt u niet zonder Apache. Ik wil u er nogmaals aan herinneren dat in de acroniemen en LAMP de letter [A] de webserver, Apache, is.

In alle samenstellingen van lokale servers, zoals Denver, Open-server, XAMPP, enz., is de Apache-webserver a priori aanwezig. Als we de server zelf in elkaar zetten, wat we doen, moet Apache onafhankelijk worden geïnstalleerd.

Welke versie van Apache moet ik installeren?

Apache ontwikkeld in twee takken (versies): Apache 1.3 en Apache 2.x. Het is niet nodig om de oude versie 1.3 te installeren, daarom werken wij met versie 2.x.

Nu het meest verwarrende deel. U weet dat vrijwel elk programma op twee manieren kan worden geïnstalleerd:

  • Met behulp van het autoinstaller (installatieprogramma), bestand ;
  • Rechtstreeks, door mappen en programmabestanden naar de gewenste map op de schijf te uploaden.

Met Apache is de situatie als volgt:

  • De nieuwste versie van Apache 2.4.26 (uitgebracht op 19-06-2017) is alleen beschikbaar in de handmatige installatieoptie (link hieronder);
  • De installatieversie bevat de nieuwste versie van Apache 2.2.25.

Dat is alles! De eerste kennismaking met Apache vond plaats. In de volgende artikelen vertel ik je hoe je beide versies van Apache op je lokale computer installeert.

Tenslotte de nodige links

Navigatie op de Apache-webserver (http)-website is enigszins verwarrend, daarom zal ik de nodige links verstrekken:

  • Apache-webserversite (http://httpd.apache.org/).
  • Apache-webserver downloaden ( http://httpd.apache.org/download.cgi)
  • Download stabiele versie - nieuwste versie: 2.4.26 (uitgebracht op 19-06-2017) (voor Windows).
  • Download verouderde uitgave - 2.2-serie. 2.2.32 (uitgebracht op 13-01-2017)
  • Binaire versies: https://archive.apache.org/dist/httpd/binaries/win32/ (2013-07-10)

Wat is Apache? E dan open source software, webserver, die ongeveer 46% van de websites wereldwijd ondersteunt. De officiële naam is Apache HTTP Server, onderhouden en ontwikkeld door de Apache Software Foundation.

Met een webserver kunnen website-eigenaren hun inhoud op internet aanbieden, zoals de naam ‘webserver’ impliceert. Apache is een van de oudste en meest betrouwbare webservers waarvan de eerste versie meer dan 20 jaar geleden in 1995 werd uitgebracht.

Wanneer iemand een website wil bezoeken, voert hij de domeinnaam in de adresbalk van zijn browser in. De webserver levert vervolgens de gevraagde bestanden af ​​als een virtuele messenger.

Bij Hostinger gebruikt onze infrastructuur Apache parallel met NGINX, een andere populaire webserver. Door deze combinatie kunnen we beide optimaal benutten. Dit verbetert de prestaties aanzienlijk door de zwakke punten van de een te compenseren met de sterke punten van de ander.

Bestandsverwerking, databaseverwerking, mail en webserver gebruiken verschillende soorten serversoftware. Elk van deze applicaties heeft toegang tot bestanden die op de echte server zijn opgeslagen en kan deze voor verschillende doeleinden gebruiken.

De taak van een webserver is om een ​​website op internet te bedienen. Om dit te doen, fungeert het als tussenpersoon tussen de servercomputer en de clientcomputer. Het neemt voor elk gebruikersverzoek inhoud van de server en levert deze aan het netwerk.

De grootste uitdaging van een webserver is om tegelijkertijd verschillende verzoeken van veel gebruikers te verwerken. De webserver verwerkt bestanden die zijn geschreven in verschillende programmeertalen, zoals PHP, Python, Java en andere.

Het verandert ze in een statisch HTML-bestand en levert ze aan de browser van de gebruiker. Wanneer u de term webserver hoort, beschouw het dan als een hulpmiddel voor communicatie tussen een server en een client.

Hoe werkt de Apache-webserver?

Hoewel Apache een webserver wordt genoemd, is het in werkelijkheid geen server, maar een programma dat op de server draait. Zijn taak is om een ​​verbinding tot stand te brengen tussen de server en de browser van de bezoeker (Firefox, Google Chrome, Safari, enz.) terwijl bestanden tussen hen heen en weer worden afgeleverd (client-server-structuur). Apache is platformonafhankelijke software, wat betekent dat het goed werkt op zowel Unix- als Windows-servers.

Wanneer een bezoeker een pagina op uw site wil laden, zoals uw startpagina of ‘Over ons’-pagina, stuurt zijn browser een verzoek naar uw server en retourneert Apache een antwoord met alle gevraagde bestanden (tekst, afbeelding, enz.) . De server en client communiceren via HTTP en Apache is verantwoordelijk voor een soepele en veilige verbinding tussen de twee machines.

Apache is in hoge mate aanpasbaar omdat het een modulaire structuur heeft. Met modules kunnen serverbeheerders extra functionaliteit in- of uitschakelen. Apache heeft modules voor beveiliging, caching, URL-bewerking, wachtwoordverificatie en meer. U kunt uw eigen configuratie instellen via het .htaccess-bestand, een instellingenbestand voor Apache en ondersteund door alle Hostinger-abonnementen.

Apache en andere webservers

Naast Apache zijn er nog een flink aantal andere webservers. Elke webserverapplicatie is gemaakt voor een ander doel. Hoewel Apache het meest wordt gebruikt, zijn er verschillende alternatieven en concurrenten.

Hier is hij - geweldig en verschrikkelijk. Tijdens zijn bestaan ​​heeft het veel beginnende webontwikkelaars geruïneerd die hun leven verloren bij het opzetten van de configuratiebestanden. 🙂 Maar jij en ik zijn mensen met sterke zenuwen en stalen magen - dus laten we gaan.

Eerste installatie en configuratie

Pak het distributiearchief uit in de map C:\Apache2.

Open het bestand “C:\Apache2\conf\httpd.conf” in een teksteditor, het belangrijkste configuratiebestand voor de Apache-server.

Nou, wacht even. Vrouwen, ouderen en kinderen wordt verzocht niet verder te lezen. De auteurs zijn niet verantwoordelijk voor de mentale toestand van mensen die het artikel tot het einde lezen. 🙂

Het httpd.conf-bestand bewerken

  1. Om de mod_rewrite module te laden, zoek en verwijder het commentaar (verwijder het “#” symbool aan het begin van de regel) deze regel:
    LoadModule rewrite_module modules/mod_rewrite.so
  2. Om de PHP-interpreter te laden, moet je de regel toevoegen aan het einde van het modulelaadblok:
    LoadModule php5_module "C:/php/php5apache2_2.dll"
  3. Definieer de map met het PHP-configuratiebestand door de volgende regel hieronder toe te voegen:
    PHPIniDir "C:/php"
  4. Zoek de regel en verwijder het commentaar:
    Servernaam www.voorbeeld.com:80
    Bewerk het als volgt, waarbij u de oorspronkelijke servernaam instelt:
    Servernaam localhost:80
  5. Zoek de lijn:
    DocumentRoot "c:/Apache2/htdocs"
    Wijs een hoofddirectory voor sitebeheer toe (we zullen er later een maken):
    DocumentRoot "C:/apache"
  6. Zoek dit blok:

    Opties VolgSymLinks
    AllowOverride Geen
    Bestelling weigeren, toestaan
    Ontkennen van iedereen

    En vervang het door het volgende:

    Opties Inclusief indexen FollowSymLinks
    Alles overschrijven toestaan
    Toestaan ​​van iedereen
  7. Verwijder of becommentarieer het originele mapbeheerblok (we hebben het niet nodig), dat er zonder commentaar ongeveer zo uitziet:

    Optie-indexen VolgSymLinks
    AllowOverride Geen
    Bestelling toestaan, weigeren
    Toestaan ​​van iedereen
  8. Zoek het blok:

    DirectoryIndexindex.html

    Vervang het door:

    DirectoryIndex index.html index.htm index.shtml index.php
  9. Zoek de lijn:
    FoutLog "logs/error.log"
    Vervang door het volgende (in dit geval is het handiger om het globale serverfoutbestand te bekijken):
    Foutlogboek "C:/apache/error.log"
  10. Zoek de lijn:
    CustomLog "logs/access.log" gebruikelijk
    Veranderen naar:
    CustomLog "C:/apache/access.log" gebruikelijk
  11. Om SSI (server side enablement) te bedienen, bevinden de volgende regels zich in het blok , moet je het volgende vinden en verwijderen:
    AddType tekst/html .shtml
    AddOutputFilter BEVAT .shtml
  12. Voeg hieronder toe in hetzelfde blok , twee lijnen:
    AddType-applicatie/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
  13. Zoek ten slotte de regels en verwijder de commentaar:
    Voeg conf/extra/httpd-mpm.conf toe
    Voeg conf/extra/httpd-autoindex.conf toe
    Voeg conf/extra/httpd-vhosts.conf toe
    Voeg conf/extra/httpd-manual.conf toe
    Voeg conf/extra/httpd-default.conf toe

Sla de wijzigingen op en sluit het bestand "httpd.conf".

Open nu het bestand “C:\Apache2\conf\extra\httpd-vhosts.conf” en breng daarin de volgende wijzigingen aan.

De bestaande voorbeeldblokken van de virtuele host moeten worden verwijderd en alleen het volgende moet worden ingevoegd:
NaamVirtualHost *:80


DocumentRoot "C:/apache/localhost/www"
Servernaam localhost
ErrorLog "C:/apache/localhost/error.log"
CustomLog "C:/apache/localhost/access.log" gebruikelijk

Sla de wijzigingen op en sluit het bestand "httpd-vhosts.conf".

Het instellen van de configuratiebestanden is voltooid, nu moet u de Apache2.2-service installeren.

De Apache2.2-service in afbeeldingen installeren

Start de opdrachtregel en voer “C:\Apache2\bin\httpd.exe -k install” in

Dit is wat we zouden moeten zien als de Apache2.2-service met succes is geïnstalleerd.

Als alles goed is gegaan, gaan we verder - stellen een handmatige lancering van de Apache2.2-service in, waarvoor we het pad volgen: "Start" → "Configuratiescherm" → "Administratieve hulpmiddelen" → "Services", in servicebeheer venster dat wordt geopend, selecteert u de regel "Apache2.2" en dubbelklikt u erop. Selecteer vervolgens op het tabblad "Algemeen" de handmatige start van de service - "Opstarttype: handmatig" "(Opstarttype: handmatig). Dit moet worden gedaan om te voorkomen dat onnodige services het systeem laden. Aangezien een thuiscomputer niet alleen wordt gebruikt voor webontwikkeling, maar ook voor veel andere behoeften, is het handmatig starten en stoppen van af en toe gebruikte services het meest acceptabel.

Het creëren van een virtuele hostdirectorystructuur

In de root van de schijf moet u de map "apache" maken - deze zal uw virtuele hosts (domeinen) bevatten, het globale foutenlogbestand "error.log" (automatisch aangemaakt door het programma wanneer u het voor het eerst start), het globale toegangsbestand “access.log” (automatisch aangemaakt). In de map "apache" maken we nog een lege map - "localhost", waarin we op zijn beurt de map "www" maken, in de laatste moeten we onze spullen in de vorm van lokale scripts bewaren. Deze ogenschijnlijk vreemde directorystructuur wordt gedicteerd door een vergelijkbare directorystructuur in Unix-systemen, en is bedoeld om het begrip en gebruik ervan in de toekomst te vereenvoudigen.

Voorbeeld van het maken van een virtuele host

Als u uw eigen virtuele hosts moet installeren, doet u het volgende:

Open het bestand “httpd-vhosts.conf” en maak daarin een blok met ongeveer de volgende inhoud:

# De map waar de root van uw host zal zijn.
DocumentRoot "C:/apache/test.ru/www"
# Het domein waarmee u toegang krijgt tot de virtuele host.
Servernaam test.ru
# Alias ​​(extra naam) van het domein.
ServerAlias ​​www.test.ru
# Het bestand waarin fouten worden geschreven.
ErrorLog "C:/apache/test.ru/error.log"
# Hosttoegangslogbestand.
CustomLog "C:/apache/test.ru/access.log" gebruikelijk

Maak vervolgens in de map "apache" de map "test.ru" (zomaar, met een punt), waarin u op zijn beurt de map "www" maakt.

De volgende stap bij het maken van een virtuele host is het wijzigen van het bestand C:\WINDOWS\system32\drivers\etc\hosts van het besturingssysteem. Open dit bestand en voeg er twee regels aan toe:
127.0.0.1 test.ru
127.0.0.1 www.test.ru

Start nu de Apache-server door “C:\Apache2\bin\httpd.exe -k start” uit te voeren op de opdrachtregel, open de browser, typ “test.ru” of “www.test.ru” in de adresbalk en u bevindt zich in uw virtuele host. Wees voorzichtig, nu kunt u alleen naar de originele site met de naam van de virtuele host (“www.test.ru”, als die bestaat) door commentaar te geven of de regel te verwijderen: “127.0.0.1 www.test.ru ” in het bovengenoemde bestand “hosts".

Apache-documentatie, terwijl de server actief is, is beschikbaar op http://localhost/manual/

U kunt Apache stoppen door “C:\Apache2\bin\httpd.exe -k stop” uit te voeren op de opdrachtregel. Als u Apache opnieuw moet opstarten, voert u "C:\Apache2\bin\httpd.exe -k restart" uit op de opdrachtregel.

De installatie en configuratie van de Apache-webserver is voltooid.

Batchbestanden maken om services te starten en stoppen

Ben het ermee eens dat het handmatig bewerken van het bestand "hosts" elke keer dat u services start, niet handig is, dus voor een gemakkelijkere, gelijktijdige start van Apache- en MySQL-services en het wijzigen van het bestand "hosts" zullen we twee batchbestanden maken: voor het starten en stoppen, waardoor al het routinewerk automatisch wordt uitgevoerd.

Wanneer u virtuele hosts gebruikt, moet u twee bestanden maken in de map C:\apache: vhosts-off.txt – met de initiële inhoud van het “hosts”-bestand en vhosts-on.txt – met alle virtuele hosts. Houd er rekening mee dat u bij het maken van nieuwe virtuele hosts deze moet toevoegen aan het bestand vhosts-on.txt en niet aan C:\WINDOWS\system32\drivers\etc\hosts. Kijk naar de onderstaande voorbeelden.

Bestand vhosts-off.txt (kan één enkele regel bevatten):
127.0.0.1 lokalehost

Voorbeeld van een vhosts-on.txt-bestand met virtuele hosts www.test.ru en test.ru:

127.0.0.1 lokalehost
127.0.0.1 www.test.ru
127.0.0.1 test.ru

Maak in dezelfde map C:\apache twee batchbestanden: start-webserver.bat – om services te starten en het bestand “hosts” te vervangen, en stop-webserver.bat – om services te stoppen en het bestand “hosts” te wissen.

Start het bestand start-webserver.bat:

@echo uit echo. indien niet aanwezig C:\apache\vhosts-on.txt ga naar no_vhosts echo Maak virtuele hosts: kopieer /v /y C:\apache\vhosts-on.txt C:\WINDOWS\system32\drivers\etc\hosts echo. :no_vhosts NET start Apache2.2 NET start MySQL

Stopbestand stop-webserver.bat:

@echo uit echo. indien niet aanwezig C:\apache\vhosts-off.txt ga naar no_vhosts echo Herstel hosts-bestand: kopieer /v /y C:\apache\vhosts-off.txt C:\WINDOWS\system32\drivers\etc\hosts echo. :no_vhosts NET stopt Apache2.2 NET stopt MySQL

Als u geen virtuele hosts gebruikt of services wilt starten zonder het bestand “hosts” te vervangen, verwijdert u eenvoudigweg de bestanden vhosts-on.txt en vhosts-off.txt uit de map C:\apache.

Gelijktijdig met de services is het handig om het Apache Monitor-programma uit te voeren, dat de status van de Apache-server in het systeemvak weergeeft, waarvoor u nog een batchbestand "start-webserver-monitor.bat" kunt maken, waarvan de inhoud zijn vergelijkbaar met het bestand “start-webserver.bat” met de toevoeging van het einde van de volgende regel:

start "" "C:\Apache2\bin\ApacheMonitor.exe"

Om de hele toolkit uit te voeren, moet u het bestand “start-webserver-monitor.bat” of “start-webserver.bat” uitvoeren en het bestand “stop-webserver.bat” stoppen. Als u wilt, kunt u deze bestanden hernoemen, ze vanuit de map “C:\apache” naar een andere locatie verplaatsen of snelkoppelingen naar deze bestanden maken, bijvoorbeeld naar het bureaublad.

Origineel artikel: http://php-myadmin.ru/learning/instrument-apache.html