Hulpmiddelen voor het werken met .ini-bestanden van webapplicaties

Vervolgens zullen we PHP installeren en de webserver configureren om deze te gebruiken. Pak het zip-archief (php-5.2.9-Win32.zip) uit in een map die voor jou handig is (het beste in C:\php 5; ik zal in het artikel volgen dat het uitpakken hier is gedaan, dus als je ergens anders PHP hebt staan en blijf vervolgens uw map gebruiken). Ga naar deze map en hernoem het bestand php.ini-dist naar php.ini . Open dit bestand met Kladblok of een andere teksteditor. Ik geloof dat standaard instellingen goed genoeg, ik hoef alleen maar een paar richtlijnen op te lossen. Eerst moet u een locatie op de schijf selecteren waar serverdocumenten worden opgeslagen, dat wil zeggen HTML-, PHP-bestanden, enz. In het vorige artikel, over het installeren van Apache, selecteerden we de map C:\www\htdocs. Vervolgens moeten we de richtlijn in het php.ini-bestand corrigeren

Doc_root =

Doc_root = "C:\www\htdocs"

Zorg er ook voor dat u extension_dir repareert met

Extensie_dir = "./"

;extension=php_mysql.dll ;extension=php_mysqli.dll

Als u van plan bent andere modules te gebruiken, verwijder dan ook de opmerkingen. Hier is een lijst met hoofdmodules:

;extension=php_bz2.dll - voor het werken met bz2-archieven (uitpakken/inpakken met behulp van scripts) ;extension=php_curl.dll is een curl-extensie; hiermee kun je bijvoorbeeld een POST-verzoek van een script naar een ander script sturen extension=php_exif.dll - om mee te werken; aanvullende informatie in fotobestanden extension=php_gd2.dll - een grafische bibliotheek voor het genereren van afbeeldingen met scripts; extension=php_mbstring.dll - een bibliotheek voor het werken met multibyte (in Unicode-codering) strings, ik raad u ten zeerste aan om verbinding te maken, anders werken sommige CMS mogelijk niet; extension=php_msql.dll - voor het werken met de mSQL-database extension=php_mssql.dll - voor het werken met Microsoft SQL Server extension=php_mysql.dll - standaard; MySQL-bibliotheek; voor versies van MySQL 5 en ouder is het beter om de mysqli-module te gebruiken extension=php_mysqli.dll - een verbeterde (MySQL verbeterde) bibliotheek voor het werken met MySQL. Om met MySQL5 te werken, is het beter om het te gebruiken extension=php_pdo.dll - deze module, evenals alle PDO-modules, biedt een uniforme interface voor veel databases. Maar het is vooral nuttig omdat het (voor zover ik weet, tenminste van de standaardversies) de enige manier werken met SQLite-databases 3 ;extension=php_pgsql.dll - voor het werken met het PostgreSQL DBMS; extension=php_sockets.dll - een module voor het werken met sockets van scripts extension=php_sqlite.dll - voor het werken met de serverloze SQLite-database. Deze module ondersteunt alleen versie 2 van databasebestanden extension=php_zip.dll - voor het werken met zip-archieven (hetzelfde als voor bz2)

Bij een aantal veelgebruikte modules kunt u meteen de commentaar ongedaan maken.

Extensie=php_gd2.dll extensie=php_mbstring.dll

Hiermee is het bewerken van php.ini voltooid (vergeet niet de wijzigingen op te slaan!). Kopieer nu het bestand libmysql.dll van de map C:\php5 naar de map C:\WINNT\System32. Het is nodig voor PHP-werk met MySQL. Of voeg het pad toe, gescheiden door een puntkomma C:\php5 naar de padvariabele - Systeemeigenschappen -> Geavanceerd -> Omgevingsvariabelen -> Pad. Om de wijzigingen in dit geval van kracht te laten worden, moet u de computer opnieuw opstarten.

Ga naar de catalogus C:\Program files\Apache2.2\conf en open het httpd.conf-bestand in een teksteditor.

Laten we de regels uit het vorige artikel verwijderen:

LoadModule php5_module "c:/php/php5apache2_2.dll" PHPIniDir "C:/WINNT"

Dat is alles, de webserver en PHP zijn geconfigureerd om samen te werken. Zorg ervoor dat u uw webserver opnieuw opstart om PHP te laten werken! Gebruik hiervoor de Apache Monitor (penpictogram met groene pijl in het systeemvak)

Hoogstwaarschijnlijk moet u bij het werken met scripts de volgende instellingen in php.ini wijzigen:

1. Bij het installeren van het script verschijnt soms de volgende foutmelding:

Fatale fout: Maximale uitvoeringstijd van 30 seconden overschreden in C:\blablabla\file.php online 360

Je kunt dit oplossen door te veranderen max_uitvoeringstijd in php.ini

Max_uitvoering_tijd = 60; Maximale uitvoeringstijd van elk script, in seconden

naar een hogere waarde

Max_execution_time = 180

2. Als er grote bestanden via het script worden geladen, bijvoorbeeld audio- en videobestanden, moet u de waarde van de parameter verhogen upload_max_bestandsgrootte tot uw geplande bestandsgrootte

; Maximaal toegestane grootte voor geüploade bestanden. upload_max_filesize = 100M

In dit artikel zullen we kijken naar het installeren en configureren van een webserver Apache, PHP5 En MySQL-DBMS om ze te gebruiken lokale machine onder het Windows-besturingssysteem (2000 en XP). Gebruik lokale servers kan om vele redenen nodig zijn - u moet PHP of MySQL leren, en het testen van uw webapplicaties op hosting is óf duur, óf er bestaat helemaal geen dergelijke mogelijkheid. In dit geval heeft u Apache+PHP+MySQL op uw lokale computer nodig.

Eerst moet je distributies van Apache- en MySQL-servers verkrijgen, evenals PHP-archief. We gaan Apache 2, MySQL 4 en PHP 5 installeren en configureren.

U kunt ook php.ini-bestanden downloaden voor het configureren van PHP en httpd.conf voor Apache van onze website. Doe dit echter alleen wanneer als laatste redmiddel- als er niets voor u is gelukt met de "native" bestanden die verschenen bij het installeren van applicaties. Maar in ieder geval zullen ze voor een specifieke machine moeten worden geconfigureerd. Download php.ini en httpd.conf

U kunt Apache downloaden van de mirrors op de officiële website http://www.apache.org/dyn/closer.cgi. Houd er bij het zoeken rekening mee dat Apache ook httpd kan worden genoemd, naar de naam van zijn daemon in UNIX. Mirrors bevatten meestal veel verschillende bestanden, bijvoorbeeld:
httpd-2.0.49-win32-src.zip is een archief met broncodes(src) voor Windows (win32) Apache-webserver (httpd) versie 2.0.49.
httpd-2.0.49.tar.gz - hetzelfde, maar dan voor Linux, waarin programma's meestal in broncode worden gedistribueerd.
apache_2.0.50-win32-x86-no_ssl.exe - en hier is de Apache-server (apache) versie 2.0.50 gecompileerd voor de architectuur (x86) voor Windows (win32) zonder SSL-ondersteuning (no_ssl) - dit is wat je nodig hebt.

Opmerking

Binaire codes van Apache-distributies worden in verschillende versies gedistribueerd, beide met de extensie *.exe en *.msi, en hebben een naam als httpd_version_win32_*_.msi.

Om ervoor te zorgen dat u niet hoeft te lijden, is hier een bron waar u deze kunt verkrijgen: http://apache.rinet.ru/dist/httpd/binaries/win32/
Het tweede en derde cijfer in de versie kunnen verschillen van de cijfers die hier worden weergegeven. U moet het meeste kiezen nieuwste versie, omdat het fouten uit eerdere versies elimineert.

PHP 5 kan worden gedownload via het gedeelte van onze website.

De MySQL-distributie kunt u downloaden vanaf onze website.

Compleet referentiegids in het Russisch is te vinden op .

Zodra we alle benodigde distributies hebben ingeslagen, kunnen we beginnen met de installatie. De volgorde waarin Apache, PHP en MySQL worden geïnstalleerd, maakt niet uit. Laten we beginnen met de Apache-webserver.

Apache-webserver installeren

Voer het Apache Web Server-installatieprogramma uit. Het resultaat is een venster met licentieovereenkomst, nadat u deze heeft geaccepteerd, gaat u naar het volgende venster met korte informatie over de innovaties in de tweede versie van Apache. In het volgende venster, weergegeven in de afbeelding, kunt u informatie over de server invoeren: serverdomeinnaam, servernaam En beheerder e-mailadres. Als de installatie op een lokale machine plaatsvindt, moet u in de velden voor de domeinnaam en de servernaam invoeren lokalehost(zie afbeelding). Onderaan het venster wordt u gevraagd een keuze te maken poortnummer waarmee de server verzoeken accepteert (80 of 8080).


lokalehost is de naam voor het gebruik van de server op de lokale machine, die is gekoppeld aan het IP-adres 127.0.0.1, dat is gereserveerd voor lokaal gebruik.

Hierna wordt de installatiemethode voorgesteld: standaard ( Typisch) of selectief ( Aangepast), waarmee u handmatig servercomponenten kunt selecteren. In het volgende venster kunt u de installatiemap van de server selecteren. Standaard is dit C:Program FilesApache Group, maar we raden u aan een andere map te kiezen, bijvoorbeeld C:www. Hierna zal de installatiewizard u informeren dat deze klaar is voor het installatieproces en nadat u op de knop hebt geklikt Installeren, worden de serverbestanden gekopieerd. Als de installatie succesvol is geweest, zal Windows Apache automatisch starten.

Wanneer u na een succesvolle installatie http://localhost/ of http://127.0.0.1/ typt in het browservenster, wordt de serverpagina geladen.

Nu moet u leren hoe u Apache beheert, namelijk hoe u de server start, stopt en opnieuw opstart. Er zijn veel manieren om deze bewerkingen uit te voeren: met behulp van het hulpprogramma ApacheMonitor, met behulp van de beheerconsole Windows-services met behulp van de Start-menu-items van opdrachtregel... We zullen kijken naar de Windows-servicesbeheerconsole, waarmee u Apache kunt configureren om automatisch te starten wanneer het systeem opstart. Voer de opdracht uit om de beheerconsole te starten
Start->Instellingen->Configuratiescherm->Beheer->Services.
In het consolevenster dat verschijnt, in de onderstaande afbeelding, selecteert u de Apache2-service. Via het contextmenu, dat wordt geopend door op de rechterknop te klikken, kunt u de service starten, stoppen en opnieuw starten.


Windows-services lancering toestaan achtergrondtoepassingen bij het opstarten van het systeem. Om dit te doen, gaat u naar het venster Eigenschappen door het item in het servicecontextmenu te selecteren Eigenschappen en in het venster dat verschijnt in de vervolgkeuzelijst " Opstarttype"selecteer artikel" Auto".

Apache configureren

Een webserver is een complex softwareproduct dat draait verschillende platforms en op verschillende besturingssystemen over de hele wereld. Daarom voor een correcte werking op geïnstalleerd systeem het moet worden geconfigureerd.
Standaard bevinden de Apache-instellingen zich in het httpd.conf-bestand in de conf-directory. Hieronder worden de belangrijkste richtlijnen van het bestand httpd.conf en hun veelgebruikte betekenissen beschreven.

Bestandspaden

In Apache- en PHP-configuratiebestanden zult u vaak paden naar verschillende mappen en mappen moeten opgeven. UNIX- en Windows-besturingssystemen gebruiken verschillende mapscheidingstekens. UNIX gebruikt een slash "/", bijvoorbeeld /usr/bin/perl, terwijl Windows een backslash gebruikt, bijvoorbeeld c:Apachein. Over het algemeen werken in sommige Apache- en PHP-richtlijnen beide soorten mapscheidingstekens: forward (/) en reverse (), maar aangezien zowel Apache als PHP oorspronkelijk voor UNIX zijn ontwikkeld en hun “native” formaat gebruiken, kun je een aantal problemen vermijden. problemen. Daarom wordt aanbevolen om paden in configuratiebestanden (httpd.conf en php.ini) te schrijven met een schuine streep in het UNIX-formaat - “/”. Bijvoorbeeld:

Scriptalias "/php_dir/" "c:/php/"

httpd.conf-bestandsrichtlijnen

Haven

Poort 80

Installaties TCP-poort, dat door Apache wordt gebruikt om een ​​verbinding tot stand te brengen. Standaard wordt poort 80 gebruikt.

Opmerking

De enige reden om te gebruiken standaard poort- dit is het gebrek aan rechten om een ​​standaardpoort te gebruiken. Wanneer u een niet-standaard poort gebruikt, bijvoorbeeld 8080, moet het poortnummer in het adres worden opgegeven, bijvoorbeeld: http://localhost:8080/.

ServerAdmin

ServerAdmin [e-mailadres beveiligd]

Bevat het e-mailadres van de webserverbeheerder, dat wordt weergegeven in geval van serverfouten.

Servernaam

Servernaam mijnserver

Bevat de computernaam voor de server.

Serverroot

Serverroot "C:/Apache2"

Verwijst naar de map met Apache WEB-serverbestanden.

Opmerking

Verwar de ServerRoot-richtlijn niet met de DocumentRoot-richtlijn, die de map voor de WEB-sitebestanden specificeert.

DocumentRoot

DocumentRoot "C:/Apache2/htdocs"

Definieert de map waarin de WEB-sitebestanden zich bevinden.

Houder

Het bereik van richtlijnen binnen deze container strekt zich uit tot alle bestanden en submappen binnen DocumentRoot.


Opties FollowSymLinks Inclusief indexen
ToestaanAlles overschrijven

  • Met de AllowOverride-instructie ingesteld op All kunt u de waarden van het belangrijkste httpd.conf-configuratiebestand in .htaccess-bestanden overschrijven.
  • Met de Options FollowSymLinks-richtlijn kan Apache symbolische links volgen.
  • De Options Inclusief-richtlijn maakt de uitvoering van SSI (Server Zijkant omvat) in de code van de webpagina's.
  • De Options Indexes-richtlijn specificeert dat de inhoud van een map moet worden geretourneerd als een indexbestand ontbreekt.

DirectoryIndex

DirectoryIndex index.html index.phtml index.php

Bevat een lijst met indexbestanden die moeten worden weergegeven bij toegang tot een map zonder een bestandsnaam op te geven (bijvoorbeeld http://localhost/test/).

Standaardtekenset toevoegen

AddDefaultCharset Windows-1251

Stelt de standaardcodering in als er geen codering is ingesteld in de kop van het HTML-document. Mogelijk moet u ook de KOI8-R-coderingswaarde opgeven.

Virtuele hosts maken

U kunt meerdere WEB-sites op één Apache WEB-server installeren. Deze serverfunctie wordt virtuele hosting genoemd. Hieronder zullen we kijken naar het maken van virtuele knooppunten op basis van namen. Virtuele hosts bevinden zich meestal aan het einde van het httpd.conf-bestand.

Eerst moet u opgeven welk IP-adres wordt gebruikt voor de virtuele hosts.



# Richtlijnen virtuele gastheer

httpd.conf-bestand. Houder


Serverbeheerder webmaster@may_domain.ru
DocumentRoot c:/www/mijnsite
Servernaam www.mijnsite.ru
ServerAlias ​​www.site.ru www.host2.ru
ErrorLog-logboeken/mijnsite-error.log
CustomLog-logboeken/mysite-access.log algemeen

Laten we eens kijken naar de richtlijnen voor virtuele knooppunten:

  • DocumentRoot geeft de map aan waar de bestanden (pagina's) van dit virtuele knooppunt (WEB-site) zich bevinden
  • Servernaam specificeert de naam van de virtuele host waarmee toegang kan worden verkregen. In dit geval op http://www.mysite.ru/.
  • ServerAlias ​​bevat virtuele hostnaamaliassen. In dit geval hebt u ook toegang tot de virtuele host met behulp van de namen: http://www.site.ru/ en http://www.host2.ru/.
  • ErrorLog en CustomLog specificeren de serverlogboeknamen voor deze virtuele host.

Containers worden meestal achter elkaar aan het einde van het httpd.conf-bestand geplaatst.

httpd.conf-bestand. Virtuele hosts instellen

NaamVirtualHost 127.0.0.1:80

# Virtuele host 1-richtlijnen


# Virtuele hostrichtlijnen 2


# Virtuele hostrichtlijnen 3

Opmerking

Apache moet opnieuw worden opgestart om wijzigingen in het bestand httpd.conf van kracht te laten worden.

Om op naam toegang te krijgen tot virtuele hosts, moeten ze geregistreerd zijn in de DNS-serverdatabase. Als u Apache gebruikt om bestanden op een lokale machine te testen, moeten de namen van uw virtuele knooppunten in het hosts-bestand worden geschreven. Voor Windows 2000 en XP bevindt deze zich in de map C:WindowSystem32Driversets. Het hosts-bestand bevat vermeldingen zoals:

Hosts bestandsinvoerformaat

127.0.0.1 www.mijnsite.ru
127.0.0.1 www.site.ru
127.0.0.1 www.host2.ru

PHP installeren en configureren

Om PHP te installeren, moet u een map c:/php aanmaken en de bestanden uit het zip-distributiearchief daarin plaatsen. Hierna moet u het configuratiebestand php.ini-dist hernoemen naar php.ini en het naar de Windows-map kopiëren.

PHP als module installeren

Het installeren van PHP als module verbetert de prestaties enigszins omdat PHP-module eenmaal geladen wanneer de webserver start

Opmerking

Bij het installeren van PHP als module worden de instellingen uit php.ini eenmalig gelezen bij het opstarten van de webserver. Daarom moet u, wanneer u wijzigingen aanbrengt in php.ini, Apache opnieuw opstarten om dit te doen wijzigingen aangebracht van kracht geworden.

Om PHP te installeren, opent u het hoofdconfiguratiebestand Apache-bestand httpd.conf om de commentaartekens uit de volgende regels te bewerken en te verwijderen, en indien nodig te wijzigen:

httpd.conf-bestand. PHP aansluiten als Apache-module


LoadModule php5_module c:/php/php5apache2.dll

Opmerking

PHP installeren als een CGI-applicatie

Wanneer PHP als CGI-applicatie wordt geïnstalleerd, wordt de PHP-interpreter elke keer geladen wanneer het PHP-script wordt aangeroepen. Hierdoor kan er enige verslechtering van de prestaties optreden. Als PHP als CGI is geïnstalleerd, mag Apache niet opnieuw worden opgestart bij het aanbrengen van wijzigingen in het bestand php.ini, omdat de instellingen elke keer worden gelezen als het PHP-script wordt uitgevoerd. Door PHP als CGI te installeren, worden wijzigingen iets sneller doorgevoerd PHP-configuratie, zodat de WEB-server niet opnieuw hoeft te worden opgestart.

Opmerking

Wanneer u PHP als CGI installeert, werken sommige headers niet meer; u kunt bijvoorbeeld geen gebruikers autoriseren die PHP gebruiken. Autorisaties kunnen alleen worden geïmplementeerd met Apache zelf met behulp van .htaccess-bestanden.

Om PHP te installeren, opent u het hoofdconfiguratiebestand httpd.conf om te bewerken, zoekt u de becommentarieerde PHP-verbindingsregels daarin op en wijzigt u deze als volgt:

httpd.conf-bestand. PHP verbinden als CGI

AddType-applicatie/x-httpd-php phtml php

OptiesExecCGI

Scriptalias "/php_dir/" "c:/php/"
Actie applicatie/x-httpd-php "/php_dir/php-cgi.exe"

Opmerking

In plaats van de map c:/php vervangt u uw map door PHP geïnstalleerd.

PHP configureren (php.ini-bestand)

Omdat u hoogstwaarschijnlijk bezig bent met het testen van uw webapplicaties op uw lokale computer, moet u het php.ini-configuratiebestand correct configureren. Zoek de error_reporting richtlijn en stel deze in op volgende waarde:

Deze waarde configureert PHP zo dat bij het uitvoeren van PHP-scripts alle fouten worden weergegeven en "opmerkingen" worden genegeerd. U moet er ook voor zorgen dat de display_errors-richtlijn is ingeschakeld:

Display_errors = Aan

Als deze richtlijn is uitgeschakeld (Uit), dan worden foutmeldingen niet weergegeven in het browservenster en als er een fout optreedt in de code, vraag je je voor een spierwit venster af wat dit zou betekenen.
Het is ook noodzakelijk om ervoor te zorgen dat de richtlijn variabelen_order de volgende betekenis heeft:

Variables_order = "EGPCS"

De letters hier betekenen het volgende:
E - omgevingsvariabelen
G - variabelen verzonden via GET-methode(G)
P - variabelen overgedragen via de POST-methode (P)
C - Koekjes
S - sessies
Als u een van de letters mist, kunt u niet met de overeenkomstige variabelen werken.

De volgende richtlijn waarvoor mogelijk configuratie vereist is, is register_globals. Als deze richtlijn is ingeschakeld

Register_globals = Aan

vervolgens kunnen de variabelen die door GET, POST, via cookies en sessies worden verzonden, worden gebruikt in een PHP-script, waardoor ze eenvoudigweg kunnen worden benaderd als gewone $someone-variabelen.
Als deze richtlijn is uitgeschakeld

Register_globals = Uit

dan zijn dergelijke variabelen alleen toegankelijk via superglobal arrays ($_POST, $_GET, etc.).
Richtlijn register_long_arrays staat je toe om superglobal arrays in het oude formaat te gebruiken ("long" - $HTTP_GET_VARS, $HTTP_POST_VARS, etc.)

Register_long_arrays = Aan

Nu moet u het indexbestand configureren. Als u de regel http://localhost/ in het browservenster typt, en niet http://localhost/index.html. De server zal de browser nog steeds voorzien van index.html, aangezien dit bestand het indexbestand is en als eerste in de map wordt doorzocht als dit niet is opgegeven specifiek bestand. Nu moet u http.conf zo configureren dat de Apache-webserver op dezelfde manier reageert op index.php-bestanden. Om dit te doen, zoekt u de DirectoryIndex-richtlijn op in http.conf en corrigeert u deze als volgt:

DirectoryIndex index.html index.html.var index.php

Hierna moet u de Apache-server opnieuw opstarten en een testserver maken in de hoofdmap van de virtuele host ("C:/www/scripts") PHP-bestand(index.php):

phpinfo();
?>

Als de installatie succesvol is, wordt bij het openen van http://localhost/index.php een paarse tabel weergegeven met huidige instellingen PHP, dat wordt geretourneerd door de functie phpinfo().
Zo hebben we een combinatie van Apache en PHP geconfigureerd en kunnen we verder met het opzetten van MySQL. Pak de MySQL-distributie uit in een tijdelijke map en voer het installatieprogramma uit. U kunt de werking van de MySQL-server op dezelfde manier besturen als Apache, met behulp van de Windows Services Management Console.

MySQL-verbinding

Een gedetailleerde methode om de MySQL-extensie met PHP te verbinden wordt beschreven in het artikel op de link: .

Als de MySQL-server al op uw computer is geïnstalleerd, is de volgende stap het configureren van PHP om met MySQL-databases te werken.

Open het php.ini-bestand om vanuit te bewerken Windows-map. Om de MySQL-extensiebibliotheek te verbinden, moet u het commentaarteken (puntkomma) van de regel verwijderen:

Extensie=php_mysql.dll

Controleer ook de waarde van de extension_dir richtlijn

Extension_dir="c:/php-5.0/ext"

Het moet verwijzen naar de map waar ze zijn opgeslagen. PHP-extensies. Het wordt aanbevolen om mapscheidingstekens in UNIX-formaat (/) - backslash te schrijven. Als al het andere echter niet lukt, draait u eenvoudigweg de waarde van de extension_dir-richtlijn terug en kopieert u de bibliotheek php_mysql.dll naar de root van C:/php-5.0/ - in de meeste gevallen zou dit moeten helpen.

Als PHP als module met u is verbonden, moet u ook de bibliotheek libmysql.dll kopiëren uit de map waarin PHP is geïnstalleerd systeemmap C:/Windows/Systeem32. Start Apache opnieuw op om de wijzigingen door te voeren.

Om te controleren of MySQL werkt, start u de Apache-server opnieuw op en maakt u een testscript met de volgende code:

$dblolocatie = "127.0.0.1" ;
$dbnaam = "test" ;
$dbuser = "root";
$dbpasswd = "" ;

$dbcnx = @mysql_connect ($dblocation, $dbuser, $dbpasswd);
als (! $dbcnx )
{
echo "

Helaas is de mySQL-server niet beschikbaar

" ;
Uitgang();
}
als (!@
mysql_select_db ($dbnaam, $dbcnx))
{
echo "

Helaas is de database niet beschikbaar

"
;
Uitgang();
}
$ver = mysql_query("SELECTEER VERSIE()" );
als(!$ver)
{
echo "

Fout in aanvraag

"
;
Uitgang();
}
echo
mysql_result($ver, 0);
?>

Als MySQL succesvol is geïntegreerd in de combinatie Apache en PHP, wordt bij toegang tot het testscript de versie van de MySQL-server in het browservenster weergegeven.

In nieuwe versies van MySQL (vanaf 4.1.0) is de manier waarop nationale tekensets worden verwerkt veranderd, waardoor oude code ervoor kan zorgen dat er vraagtekens "???????" verschijnen in de databasetabel. in plaats van Russische tekst. Om te voorkomen dat dit gebeurt aan het begin van het PHP-script, na het tot stand brengen van een verbinding met de database, moet u de volgende regels plaatsen:

mysql_query( "set character_set_client="cp1251"");
mysql_query( "set character_set_results="cp1251"");
mysql_query( "set collation_connection="cp1251_general_ci"");
?>

PHP-extensies installeren

Ten slotte moet u mogelijk enkele PHP-extensies configureren; deze zijn op dezelfde manier geconfigureerd als MySQL.

Dus om verbinding te maken grafische bibliotheek GDLib in php.ini moet je de commentaarregel verwijderen:

Extensie=php_gd2.dll

Controleer hierna de aanwezigheid van deze bibliotheek in de map c:phpext. Nadat u wijzigingen in php.ini heeft aangebracht, start u de server opnieuw op. Om snel te controleren of de bibliotheek verbonden is, voert u de functie phpinfo() uit. Als alles in orde is, dan in de tabel die wordt weergegeven door de phpinfo()-functies, de sectie " gd

Als u de verouderde php.exe-naam gebruikt die in eerdere versies werd gebruikt in plaats van php-cgi.exe, kan de volgende foutmelding verschijnen:

403 Verboden U heeft geen toegang tot /__php_dir__/php.exe/test.php op deze server

HTML-bestanden worden uitgevoerd, maar PHP-scripts niet

Als de PHP-verbinding niet is geconfigureerd, wordt er bij het openen van bestanden met de php-extensie, bijvoorbeeld: http:/localohost/index.php, een venster geopend met een verzoek om een ​​dergelijk bestand te downloaden. Dit geeft aan dat de verwerking van bestanden met de php-extensie niet is geconfigureerd. Controleer of het bestand httpd.conf bestaat volgende regel:

AddType-applicatie/x-httpd-php phtml php

Opmerking: ongedefinieerde variabele...

Op een nieuwe, nieuw geïnstalleerde PHP zie je vaak berichten als:

Let op: Ongedefinieerde variabele: bericht in C:/Main/addrec.php op regel 7

Error_reporting = E_ALL & ~E_NOTICE

MySQL maakt geen verbinding

Soms zijn er problemen mee MySQL-installatie. U moet elke keer dat het systeem opstart controleren of MySQL als een service start. Open hiervoor de servicesconsole:

Begin | Instelling | Configuratiescherm | Administratie | Diensten

zoek MySQL daar - voer het uit. Om de server elke keer dat het systeem opstart te laten starten, klikt u met de rechtermuisknop op de service en selecteert u “Eigenschappen” - in de vervolgkeuzelijst “Opstarttype” die wordt geopend, selecteert u “Auto”.

Als er bij het starten van Apache en het openen van scripts een bericht verschijnt dat aangeeft dat de bibliotheek php_mysql.dll niet kan worden geladen.

PHP opstarten: Kan dynamische bibliotheek c:/php/ext/php_mysql.dll niet laden
- niet gevonden gespecificeerde module

Controleer vervolgens opnieuw de instructies in het gedeelte dat beschrijft hoe u verbinding maakt met PHP-bibliotheken voor het werken met MySQL. Gebruikt u de “juiste” versie van het bestand php_mysql.dll (precies voor de PHP-versie die op het systeem is geïnstalleerd)?
De versies van het bestand php_mysql.dll verschillen verschillende versies PHP, hoewel ze dezelfde naam hebben.

  • Windows-mapscheidingstekens gebruiken (backslash): c:apache/bin. Voor betrouwbare werking scheidingstekens moeten de UNIX-indeling hebben (slash), bijvoorbeeld: c:/apache/bin.
  • Het bestaan ​​van verschillende php.ini-configuratiebestanden op de machine, of de afwezigheid van een dergelijk bestand. Het vereiste php.ini-bestand zou aanwezig moeten zijn Windows-mappen. Doorzoek uw computerstations, vind alle onnodige versies van bestanden en verwijder ze.
  • U kunt al uw vragen stellen over het installeren van de Apache+PHP+MySQL-combinatie op ons forum gewijd aan het installeren en configureren van Apache-, PHP- en extensiebibliotheken.


    Directe link: php-5.3.10-Win32-VC9-x86.zip
    Download tegelijkertijd onmiddellijk de documentatie in het Russisch in .chm-formaat, je hebt deze nodig bij het studeren en werken: php_enhanced_ru.chm

    Pak het archief uit in de gewenste map (aanvankelijk wordt "C:\php" voorgesteld). Open het configuratiebestand met de aanbevolen instellingen - "php.ini-development" (bevindt zich in de root van de distributie), hernoem het php.ini en breng de volgende wijzigingen aan.

    php.ini bewerken:

    1. Zoek de lijn:
      post_max_size = 8M
      Verhoog de maximale ontvangen gegevensgrootte tot 16 MB POST-methode, verander het in:
      post_max_size = 16M
    2. Zoek de lijn:
      ;include_path = ".;c:\php\includes"
      Verwijder het commentaar door de puntkomma vóór de regel te verwijderen.
      (Let op uitzondering! Backslashes bij het opgeven van pad):
      include_path = ".;c:\php\includes"
      Maak een lege map "C:\php\includes" om de opgenomen klassen op te slaan.
    3. Zoek de lijn:
      extension_dir = "./"
      Stel de waarde van deze richtlijn in op het pad naar de map met extensies:
      extension_dir = "C:/php/ext"
    4. Zoek de lijn:
      ;upload_tmp_dir =
      Verwijder het commentaar en specificeer het volgende pad in de waarde:
      upload_tmp_dir = "C:/php/upload"
      Maak een lege map "C:\php\upload" om op te slaan tijdelijke bestanden gedownload via HTTP.
    5. Zoek de lijn:
      upload_max_filesize = 2M
      Verhoog de maximaal toegestane bestandsuploadgrootte naar 16 MB:
      upload_max_filesize = 16M
    6. Verbind, zonder commentaar, de extensiebibliotheekgegevens:
      extensie=php_bz2.dll
      extensie=php_curl.dll
      extensie=php_gd2.dll
      extensie=php_mbstring.dll
      extensie=php_mysql.dll
      extensie=php_mysqli.dll
    7. Zoek de lijn:
      ;datum.tijdzone=
      Verwijder de opmerkingen en stel de waarde in op de tijdzone van uw locatie (een lijst met tijdzones vindt u in de documentatie):
      date.timezone = "Europa/Moskou"
    8. Zoek de lijn:
      ;session.save_path = "/tmp"
      Verwijder het commentaar en stel de waarde van deze richtlijn in op het volgende pad:
      session.save_path = "C:/php/tmp"
      Maak een lege map "C:\php\tmp" om tijdelijke sessiebestanden op te slaan.
    Sla uw wijzigingen op en sluit het php.ini-bestand.

    Vervolgens moet u de map met de geïnstalleerde PHP-interpreter aan PATH toevoegen besturingssysteem. Om dit te doen, volgt u het pad “Start” -> “ Configuratiescherm" ("Configuratiescherm") -> "Systeem", open het tabblad "Geavanceerd", klik op de knop "Omgevingsvariabelen" in het gedeelte "Systeemvariabelen" ("Systeemvariabelen") dubbelklikken Voeg op de regel "Pad" in het veld "Variabele waarde" toe aan wat daar al bestaat, het pad naar de map waarin PHP is geïnstalleerd, bijvoorbeeld "C:\php" (zonder aanhalingstekens). Houd er rekening mee dat het puntkommateken de paden scheidt. Start uw besturingssysteem opnieuw op om de wijzigingen door te voeren.

    Voorbeeld Padreeks:
    %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\php;C:\Program Files\MySQL\MySQL Server 5.5\bin

    De installatie en configuratie van de PHP-interpreter is voltooid.

    Beschrijving van aangesloten bibliotheken:

    php_bz2.dll- Door te gebruiken van deze uitbreiding PHP kan archieven in bzip2-formaat maken en uitpakken.

    php_curl.dll– Heel belangrijk en benodigde bibliotheek, waardoor u verbinding kunt maken en kunt werken met servers die een groot aantal internetprotocollen gebruiken.

    php_gd2.dll– Nog een onmisbare bibliotheek waarmee je met afbeeldingen kunt werken. Dacht je dat je alleen HTML-pagina's in PHP kunt genereren? Maar nee! Met PHP kun je bijna alles doen, inclusief tekenen.

    php_mbstring.dll– De bibliotheek bevat functies voor het werken met multi-byte-coderingen, waaronder de coderingen van oosterse talen (Japans, Chinees, Koreaans), Unicode (UTF-8) en andere.

    php_mysql.dll– De naam van de bibliotheek spreekt voor zich - het is noodzakelijk om mee te werken MySQL-server.

    php_mysqli.dllDeze bibliotheek is een uitbreiding van de vorige en bevat extra functies PHP voor het werken met MySQL-serverversie 4.1.3 en hoger.

    Deze bibliotheken zouden voldoende moeten zijn volwaardig werk PHP. Na verloop van tijd kunt u, als dat nodig is, verbinding maken extra bibliotheken, maar je moet ze niet allemaal tegelijk verbinden met de gedachte dat je de pap niet met boter zult bederven; in dit geval kan een overmatig aantal verbonden bibliotheken PHP merkbaar vertragen.

    «

    Als je een webprogrammeur vraagt ​​welke van alle PHP-distributiebestanden het belangrijkst is, zullen velen antwoorden dat de tolk zelf, bibliotheken, extensies, enz. Nee, de meest belangrijk bestand- dit is php.ini: een klein tekstbestand dat alle PHP-instellingen (richtlijnen), configuraties van uitbreidingsmodules en omgevingsvariabelen bevat. Via het configuratiebestand kunt u PHP configureren maximale prestaties, potentieel gevaarlijke functies en modules uitschakelen, en uiteraard, als de installatie niet lukt, de werking van het hele systeem verstoren (nee, niet de hele server, hooguit de webserver en PHP).

    Maar de waarde van systeemvariabelen kan niet alleen via php.ini worden ingesteld, maar ook via andere methoden, zij het met beperkingen. Om dit te begrijpen, moeten we kort stilstaan ​​bij het mechanisme voor het verwerken van configuratiebestanden door de PHP-omgeving.

    In de eerste plaats in de zeer eenvoudig geval Wanneer PHP als CGI-toepassing draait, wordt het bestand elke keer dat de tolk wordt gestart, opnieuw gelezen. Als het als SAPI-module met de Apache-server is verbonden, wordt het pad naar het bestand bepaald door de PHPIniDir-richtlijn van de serverconfiguratie.

    Als hierna het configuratiebestand niet wordt gevonden, gaat de zoektocht verder op de volgende plaatsen: voor de Win32-server wordt de registersleutel HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath gecontroleerd, waarna het bestand wordt doorzocht huidige map, vanwaar de tolk wordt gestart (php-cli.exe), in de hoofdmap van de webserver (voor de SAPI-module) of in de PHP-hoofdmap. Vervolgens gaat het zoeken verder in de systeemmappen (C:\WINDOWS, C:\WINXP, C:\SYSTEM32) en in de map die is opgegeven tijdens de PHP-buildfase met de optie "--with-config-file-path".

    Daarnaast kunnen de opties zelf worden gespecificeerd in verschillende bestanden, bijvoorbeeld in Apache-serverconfiguratiebestanden (httpd.conf), in .htaccess-bestanden (voor individuele sitemappen), in aparte bestanden php.ini, geplaatst in mappen met scripts, en zelfs in de PHP-scripts zelf door de functie ini_set() aan te roepen. Afhankelijk van waar en hoe de variabele is ingesteld, zal deze een ander effect hebben: voor het huidige script, voor een individuele site of directory, voor de hele server tot een herstart.

    Waarom zo’n diversiteit? Heel eenvoudig. In een typische situatie, wanneer uw site zich op gedeelde hosting bevindt, kunt u bijvoorbeeld de PHP-configuratie niet voor uzelf opnieuw configureren, terwijl u tegelijkertijd, om de scripts normaal te laten werken, een aantal variabelen moet instellen die verschillen van de instellingen van de host. Vervolgens installeert u eenvoudig het php.ini-bestand in de mappen van uw site, waarin u alle benodigde instellingen opgeeft. Als u slechts één of twee variabelen wilt wijzigen, kunt u dit doen door de functie ini_set() aan het begin van het script aan te roepen. Maar let op één ding. Omdat ini_set() een PHP-functie is en dienovereenkomstig wordt uitgevoerd nadat de interpreter is geïnitialiseerd, zullen sommige instellingen worden genegeerd, omdat ze de werking alleen beïnvloeden in beginfase lancering van RNR. Maak je geen zorgen, dergelijke parameters, evenals foutieve (syntactisch) onjuiste parameters, zullen eenvoudigweg worden genegeerd en zullen niet tot enige gevolgen in het werk leiden.

    Laten we geven praktisch voorbeeld. Er is een richtlijn foutrapportage, dat het detailniveau aangeeft van de uitvoer van foutmeldingen tijdens de interpretatie van het PHP-script. Het kan worden geconfigureerd om zowel alle berichten als alleen waarschuwingen weer te geven die de werking van het programma niet beïnvloeden. U kunt het bijvoorbeeld zelf opnieuw configureren, zodat alleen uitvoeringskritieke fouten worden weergegeven. In dit geval moet de variabele de waarde "E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR" bevatten, dat wil zeggen compilerfouten, kritieke omgevings- en kernelfouten weergeven. Je kunt een variabele instellen door de functie ini_set() aan te roepen, waarvoor er twee nodig zijn tekenreeksparameters: De eerste regel beschrijft de optienaam en de tweede regel beschrijft de nieuwe waarde. In ons geval is het: ini_set("foutrapportage", "E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR");. Dat is alles. Als gevolg hiervan zal PHP de nieuwe waarde van de error_reporting variabele gebruiken elke keer dat u uw script uitvoert, terwijl voor alle andere gebruikers de standaardwaarde beschreven in php.ini blijft bestaan.

    Voordat u een omgevingsvariabele vervangt, is het raadzaam de huidige waarde ervan te controleren - dit gebeurt met behulp van een functieaanroep ini_get(), die één parameter nodig heeft, een string met de naam van de variabele, en een string retourneert met de huidige waarde. In ons voorbeeld de code echo ini_get("error_reporting"); retourneert E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR, dat wil zeggen, gewoon ingestelde waarde Tegelijkertijd, als we ini_get() aanroepen voordat we de nieuwe waarde instellen, krijgen we iets als E_ALL & ~E_NOTICE (op verschillende hostings kan verschillen) – geef berichten weer over alle fouten, met uitzondering van waarschuwingen.

    Maar voordat u variabelen instelt, is het raadzaam om door de bestandsstructuur te navigeren php.ini en in de beschikbare opties. Er is weinig informatie over dit onderwerp, afgezien van de opmerkingen in php.ini zelf, dus we zullen proberen de belangrijkste variabelen waarmee u te maken krijgt, in detail te beschrijven.

    De algemene structuur van het php.ini-bestand is heel eenvoudig. Het hele bestand is verdeeld in secties, waarbij elke sectie variabelen groepeert die betrekking hebben op een bepaalde module of de hele PHP-omgeving als geheel. In elke sectie worden variabelen (richtlijnen) gespecificeerd in het formulier variabele_naam=waarde, Waar betekenis kan een willekeurige tekenreeks zijn (als deze spaties bevat, staat deze tussen dubbele aanhalingstekens) of een waarde Aan/uit(dan wordt zo’n variabele ook wel een vlag genoemd). Variabelen worden één per regel gespecificeerd, en alle regels die beginnen met " ; " worden behandeld als commentaar en niet verwerkt. Houd er rekening mee dat namen van richtlijnen hoofdlettergevoelig zijn en meestal in kleine letters worden geschreven.

    De sectienaam staat tussen vierkante haakjes. De eerste sectie is bijvoorbeeld de sectie Algemene omgevingsinstellingen - . De sectie van de ODBC-module voor communicatie met databases heeft de naam, MySQL-toegangsinstellingen worden in de sectie gemaakt en nieuwe interface MySQLI is geconfigureerd in , sessieparameters worden gespecificeerd in de sectie. Elke sectie, met uitzondering van de systeembrede sectie, komt overeen met een extensie, als deze uiteraard moet worden geconfigureerd.

    Laten we voorlopig beginnen met de richtlijnen die in sectie worden beschreven. We kijken naar een PHP-versie 5.0.x-configuratie, dus als je meer dan hebt vroege versie, ontbreken mogelijk enkele richtlijnen.

    motor =— een vlag waarmee PHP op de Apache-server kan werken. Standaard staat deze altijd op Aan.

    zend.ze1_compatibility_mode =— de richtlijn verscheen in PHP 5.0 en stelt je in staat om over te schakelen naar de compatibiliteitsmodus met scripts die daarvoor zijn geschreven eerdere versies. Als u PHP voor uzelf aanpast en u de compatibiliteit niet hoeft te behouden, zet u de vlag op Uit, maar als PHP is geconfigureerd voor een gedeelde server, dan is het logisch om gebruikers toe te staan ​​alle scripts uit te voeren die zijn geschreven met de Zend I-kern ( PHP 4.x) in gedachten.

    short_open_tag =— PHP kan verschillende tags herkennen voor het begin en het einde van een programmablok. Deze vlag maakt het gebruik ervan mogelijk korte opmerking vriendelijk.

    precisie =— geeft aan met hoeveel significante cijfers PHP rekening moet houden bij het werken met fractionele getallen. De standaardinstelling is 12 tekens, wat voldoende is.

    uitvoer_buffering =— maakt uitvoerbuffering voor alle pagina's mogelijk of stelt de buffergrootte in bytes in (als de waarde een geheel getal is, bijvoorbeeld 4096, wordt de buffergrootte ingesteld op 4 KB). Wordt gebruikt om HTTP-headers en cookies tijdelijk te bufferen voordat andere inhoud naar de client wordt verzonden.

    uitvoer_handler =- Hiermee kunt u een functie opgeven om alle pagina-uitvoer om te leiden. Tegelijkertijd wordt, als de functie is opgegeven, de richtlijn output_buffering ingeschakeld. Kan worden gebruikt voor het transcoderen, comprimeren, caching of andere nabewerking van gegenereerde inhoud. Als de richtlijn niet wordt gebruikt, geef deze dan een lege waarde (een lege string of de waarde geen).

    veilige_modus =— schakelt PHP naar een speciale beschermde bedieningsmodus, die de veiligheid vergroot, maar ook beperkingen oplegt aan het programmeren. Het kan erg handig zijn bij het creëren van systemen met verhoogde beveiliging. Deze richtlijn is gekoppeld aan verschillende andere met namen die beginnen met safe_mode_, die specifieke beperkingen en aanvullende controles instellen. Standaard is de richtlijn ingesteld op Uit.

    uitschakelen_functies =— specificeert een lijst met functies waarvan het gebruik verboden is in gebruikersscripts. Kan gebruikt worden voor extra beveiliging beveiliging door potentieel gevaarlijke functies te blokkeren (bijvoorbeeld systeemoproepen). Om functies te specificeren, plaatst u ze tussen dubbele aanhalingstekens, gescheiden door komma's. “exec,php_info,file,ini_set” verbiedt bijvoorbeeld het aanroepen van de functies exec(), php_info(), file(), ini_set(). Maar deze richtlijn kan alleen worden geïnstalleerd naar PHP-initialisatie, dat wil zeggen in het php.ini- of httpd.conf-bestand.

    max_execution_time =— geeft de tijd in seconden aan gedurende welke één script kan worden uitgevoerd. Als de limiet wordt overschreden, wordt de uitvoering van het script geforceerd beëindigd met een fout. Dit kan handig zijn voor het forceren van een stop van verkeerd geschreven programma's die interfereren normale werking server. Tegelijkertijd moet u de tijd niet te kort instellen, omdat u in het geval van werken met externe gastheren, databases of bestanden, kan de toegewezen tijd verstrijken voordat het script wordt uitgevoerd.

    max_input_time = [-1/geheel getal]— specificeert de tijd in seconden gedurende welke het script gegevens kan uitvoeren. Het is raadzaam om deze niet lager in te stellen dan de max_execution_time richtlijn. Als het script bijvoorbeeld intensief gegevens uitvoert, iets in een lus verwerkt en grote tekstfragmenten weergeeft, dan moet aan de richtlijn grote waarden worden toegewezen of helemaal niet worden ingesteld - dan is de enige beperking de totale uitvoeringstijd van de opdracht. script. De richtlijn kan alleen via php.ini worden geïnstalleerd.

    geheugen_limiet =— stelt de grootte in RAM, toegewezen voor één script. Het voorvoegsel M geeft aan dat de grootte in megabytes is, en K - KB. Voor openbare server(Bijvoorbeeld, virtuele hosting) kunt u een lagere waarde instellen, maar als u intensieve berekeningen moet uitvoeren of van plan bent serieus te gaan hardlopen commerciële programma's, kan de waarde worden verhoogd (afhankelijk van de grootte van het RAM-geheugen op de server).

    display_errors =— stelt de gebruiker in staat berichten over runtimefouten en PHP-waarschuwingen weer te geven. Ik zou aanraden om deze richtlijn altijd in te schakelen, niet alleen in de debug-modus, maar ook in echt werk en configureer het uitvoerdetail nauwkeuriger met behulp van de optie error_reporting.

    error_reporting = [set van vooraf gedefinieerde constanten]— geeft de gewenste details aan van berichten over fouten en storingen in de tolk.

    Constanten kunnen worden gecombineerd met behulp van bitsgewijze opteloperatoren. De belangrijkste constanten zijn: E_ALL (alle fouten en waarschuwingen), E_COMPILE_ERROR (fatale compilerfouten), E_CORE_ERROR (fatale fouten tijdens PHP-kernelinitialisatie), E_ERROR (fatale runtime-fouten), E_PARSE (syntaxisfouten), E_NOTICE en E_WARNING (runtime-waarschuwingen ).

    Om het script te debuggen is het raadzaam om bijvoorbeeld het maximale berichtdetail in te stellen error_reporting = E_ALL Bij feitelijk gebruik is het wenselijk om waarschuwingen uit te sluiten die de werking niet beïnvloeden, b.v. error_reporting = E_COMPILE_ERROR|E_CORE_ERROR|E_ERROR toont alleen fatale fouten (een andere optie: error_reporting = E_ALL & ~E_NOTICE & ~ E_WARNING).

    Het configuratiebestand php.ini is het belangrijkste configuratiehulpmiddel voor de PHP-kern. Het wordt elke keer geteld als PHP wordt geïnitialiseerd. Als de wijziging niet zichtbaar is, zorg er dan voor dat u httpd stopt en opnieuw start. Als de aangebrachte wijzigingen nog steeds van kracht zijn, gebruik dan de functie phpinfo() om te controleren waar php ini zich bevindt.

    Het configuratiebestand is goed becommentarieerd en gedetailleerd. Parameters zijn hoofdlettergevoelig, waarden trefwoorden- Nee; spaties en regels die beginnen met een puntkomma worden genegeerd. Booleaanse waarden kunnen worden weergegeven als 1/0, Ja/Nee, Aan/Uit of Waar/False. Standaardwaarden in php.ini zijn van invloed PHP-installatie, die later kan worden geconfigureerd.

    In dit artikel zullen we kijken belangrijke instellingen in het bestand php.ini, dat mogelijk vereist is voor de PHP-parser.

    short_open_tag = Uit

    Korte open tags zien er als volgt uit:. Deze instelling moet op Uit staan ​​als u de XML-verwerkingsfuncties wilt gebruiken.

    veilige_modus = Uit

    Als deze instelling AAN staat, heb je waarschijnlijk PHP gecompileerd met de vlag enable-safe-mode. Veilige modus is het belangrijkst voor het gebruik van CGI.

    safe_mode_exec_dir =

    Deze optie heeft alleen betekenis als deze is ingeschakeld veilige modus. Het kan ook worden geïnstalleerd met de vlag --with-exec-dir tijdens het Unix-bouwproces. PHP voert externe functies uit in de veilige modus binaire bestanden alleen uit deze catalogus. De standaardmap is /usr/local/bin . Dit heeft niets te maken met het aanbieden van een gewone PHP/HTML-webpagina.

    safe_mode_allowed_env_vars =

    Deze php ini-optie specificeert welke omgevingsvariabelen gebruikers kunnen wijzigen in de veilige modus. Standaard zijn dit alleen de variabelen waaraan 'PHP_' is toegevoegd. Als deze richtlijn leeg is, kunnen de meeste variabelen worden gewijzigd.

    safe_mode_protected_env_vars =

    De parameters stellen in welke omgevingsvariabelen gebruikers niet kunnen wijzigen in de veilige modus, zelfs als de optie safe_mode_allowed_env_vars is ingeschakeld.

    uitschakelen_functies =

    Genoeg nuttige toevoeging in de PHP4-configuratie, die behouden is gebleven in de PHP5-versie, is de mogelijkheid om geselecteerde functies om veiligheidsredenen uit te schakelen. Voorheen vereiste dit het handmatig bewerken van de C-code waarin de PHP-interpreter was geschreven. Functies bestandssysteem, besturingssysteem en netwerk zouden bovenaan deze lijst moeten staan, omdat de mogelijkheid om bestanden te schrijven en het systeem via HTTP te wijzigen niet veilig is.

    max_execution_time = 30

    Wanneer u php ini instelt, moet u er rekening mee houden dat de functie set_time_limit() niet werkt in de veilige modus. Daarom is dit de belangrijkste manier om het vertragen van de uitvoering van scripts in de veilige modus te implementeren. Op Windows moet u geforceerd stoppen op basis van maximaal niveau geheugenverbruik, niet tijd. U kunt ook de time-outinstelling van Apache gebruiken om een ​​vertraging te implementeren. Maar het is ook van toepassing op niet-PHP-sitebestanden.

    error_reporting = E_ALL & ~E_NOTICE

    De standaardwaarde is E_ALL & ~E_NOTICE , alle fouten behalve meldingen. Servers moeten minimaal op de standaardwaarde worden ingesteld. En alleen op hoofdservers kunt u een lagere waarde gebruiken.

    error_prepend_string = [""]

    Samen met » wordt gebruikt met tekenreeksen, zoals bij het vormen van de waarde van een formulierveld.

    variabelen_order = EGPCS

    Vervangt gpc_order . Beide versies zijn verouderd, samen met register_globals. Het bepaalt de volgorde van verschillende variabelen: Environment, GET, POST, COOKIE en SERVER ( of ingebouwd). U kunt deze volgorde wijzigen. Variabelen worden opeenvolgend van links naar rechts overschreven, waarbij de meest rechtse altijd " wint" Dit betekent dat als u de standaardwaarde laat staan ​​en één naam gebruikt omgevingsvariabele, een POST-variabele en een COOKIE-variabele, dan zal uiteindelijk de naam bij de COOKIE-variabele horen.

    register_globals = Uit

    Dit php-parameter ini set stelt u in staat te bepalen of EGPCS-variabelen als globale variabelen moeten worden geregistreerd. Deze methode is nu verouderd en vanaf PHP 4.2 staat deze vlag standaard op Uit. Gebruik in plaats daarvan superglobale arrays.

    gpc_order = GPC

    Deze optie is verouderd.

    magic_quotes_gpc = Aan

    Verwijdert aanhalingstekens in GET/POST/COOKIE-invoer. Als u veel formulieren gebruikt die gegevens naar zichzelf of naar andere formulieren verzenden en formulierwaarden weergeven, moet u deze richtlijn inschakelen of de functies addlashes() gebruiken voor tekenreeksgegevenstypen.

    magic_quotes_runtime = Uit

    Met deze optie worden aanhalingstekens in binnenkomende databasetekenreeksen en tekstregels. Houd er rekening mee dat SQL een schuine streep toevoegt aan enkele aanhalingstekens en apostrofs bij het opslaan van tekenreeksen en verwijdert deze niet bij het retourneren van tekenreeksen. Als deze optie is uitgeschakeld, moet u de functie stripslashes() gebruiken bij het uitvoeren van elk type tekenreeksgegevens uit een SQL-database. Als magic_quotes_sybase is ingesteld op On, dan moet deze instelling op Off staan.

    magic_quotes_sybase = Uit

    Escapet enkele aanhalingstekens in binnenkomende databasereeksen en tekstreeksen met enkele aanhalingstekens in Sybase-stijl in plaats van backslashes. Als magic_quotes_runtime is ingesteld op On , moet deze optie worden uitgeschakeld.

    auto-prepend-file=

    Als deze php ini-parameter een pad specificeert, moet PHP automatisch een include()-constructie toevoegen aan het begin van elk PHP-bestand. Er moet rekening worden gehouden met beperkingen op de paden van de opgenomen bestanden.

    auto-toevoegen-bestand=

    Als deze parameter een pad specificeert, moet PHP automatisch een include()-constructie invoegen aan het einde van elk PHP-bestand, behalve bij het afsluiten met behulp van de exit()-functie. Er moet rekening worden gehouden met beperkingen op het gebied van include-bestandspaden.

    include_path =

    Als u deze waarde instelt, mag u alleen bestanden opnemen of opvragen gespecificeerde mappen. De include-map bevindt zich meestal onder het hoofddocument. Dit is nodig als u in de veilige modus werkt. Stel de parameter in op .in om bestanden op te nemen uit de map waarin uw script zich bevindt. Meerdere mappen worden gescheiden door dubbele punten: .:/usr/local/apache/htdocs:/usr/local/lib.

    doc_root =

    Als u bij het instellen van php ini Apache gebruikt, is in het bestand httpd.conf de hoofdmap van het document voor deze server of virtuele host al ingesteld. Stel deze waarde hier in als u de Veilige modus gebruikt of PHP slechts voor een deel van de site wilt toestaan ​​( bijvoorbeeld in slechts één submap).

    bestand_uploads =

    Activeer deze vlag als u bestanden uploadt met behulp van een PHP-script.

    upload_tmp_dir =

    Verwijder geen opmerkingen van deze regel als u niet begrijpt wat!

    session.save-handler = bestanden

    Behalve in zeldzame gevallen hoeft u deze instelling niet te wijzigen.

    negeer_gebruiker_abort =

    Bepaalt wat er zal gebeuren als een bezoeker van de site op de knop ' Stop" De standaardinstelling is Aan, wat betekent dat het script blijft draaien totdat het is voltooid of een time-out optreedt. Als u de waarde van deze parameter wijzigt in Off , wordt het script onderbroken. Deze optie werkt alleen in modulemodus, niet in CGI-modus.

    mysql.default_host = hostnaam

    De standaard hostserver die moet worden gebruikt bij het verbinden met de databaseserver als er geen andere host is opgegeven.

    mysql.default_user = gebruikersnaam

    Deze php ini-parameter specificeert de standaardgebruikersnaam die wordt gebruikt bij het verbinden met de databaseserver als er geen andere naam is opgegeven.

    mysql.default_password = wachtwoord

    Het standaardwachtwoord dat wordt gebruikt bij het verbinden met de databaseserver, tenzij een ander wachtwoord is opgegeven.

    Vertaling van het artikel " PHP 7 - PHP.INI-bestandsconfiguratie» werd voorbereid door het vriendelijke team van het project Website bouwen van A tot Z.