Hoe Stel Je Environment Variables In Voor PHP In Apache?

Gepubliceerd 20 januari 2026

Probleem: PHP Omgevingsvariabelen Instellen In Apache

Het instellen van omgevingsvariabelen voor PHP in Apache kan lastig zijn. Deze variabelen helpen bij het configureren van PHP applicaties en bepalen hoe ze werken, maar ze correct instellen in Apache is niet altijd makkelijk.

Oplossing: De SetEnv Directive Gebruiken In Apache Virtual Host Configuratie

Omgevingsvariabelen Configureren In Apache

Apache biedt de SetEnv directive om omgevingsvariabelen voor PHP applicaties in te stellen. Met deze directive kun je aangepaste variabelen definiëren in je Apache configuratiebestanden. De basis syntax is: SetEnv VARIABELE_NAAM waarde. Je kunt deze directive gebruiken om omgevingsvariabelen in te stellen die nodig zijn voor je PHP applicatie.

Tip: Gevoelige Data Beveiligen

Gebruik altijd omgevingsvariabelen voor gevoelige informatie zoals database credentials of API keys. Deze aanpak houdt je gevoelige data buiten je broncode, wat de beveiliging verbetert.

Domain-Specifieke Omgevingsvariabelen Instellen

Apache gebruikt VirtualHost blokken om configuraties voor verschillende domeinen te beheren. Deze blokken stellen je in staat om specifieke instellingen op te zetten voor elke website op je server. Om verschillende omgevingsvariabelen voor elk domein te configureren, voeg je de SetEnv directives toe binnen het juiste VirtualHost blok.

Hier is een voorbeeld van het instellen van omgevingsvariabelen voor twee domeinen in je Apache configuratie:

<VirtualHost *:80>
    ServerName voorbeeld1.com
    DocumentRoot /var/www/voorbeeld1
    SetEnv DB_HOST localhost
    SetEnv DB_NAME voorbeeld1_db
</VirtualHost>

<VirtualHost *:80>
    ServerName voorbeeld2.com
    DocumentRoot /var/www/voorbeeld2
    SetEnv DB_HOST 192.168.1.100
    SetEnv DB_NAME voorbeeld2_db
</VirtualHost>

Deze configuratie stelt verschillende DB_HOST en DB_NAME variabelen in voor voorbeeld1.com en voorbeeld2.com. Je PHP applicatie kan deze variabelen opvragen met de getenv() functie.

Example: Omgevingsvariabelen Gebruiken In PHP

<?php
$dbHost = getenv('DB_HOST');
$dbName = getenv('DB_NAME');

$db = new PDO("mysql:host=$dbHost;dbname=$dbName", $username, $password);
?>

Stapsgewijze Handleiding Voor Het Implementeren Van Omgevingsvariabelen

Apache Configuratiebestanden Vinden En Bewerken

Om omgevingsvariabelen in Apache in te stellen, moet je het configuratiebestand vinden en bewerken. Op de meeste Linux systemen staat het hoofdconfiguratiebestand van Apache op /etc/apache2/apache2.conf of /etc/httpd/httpd.conf. Het is vaak beter om aparte configuratiebestanden te gebruiken voor elke virtual host.

Deze bestanden staan meestal in /etc/apache2/sites-available/ of /etc/httpd/conf.d/. Zoek naar bestanden die zijn vernoemd naar je domein of die een .conf extensie hebben.

Om deze bestanden veilig te bewerken:

  1. Maak een backup van het originele bestand:

    sudo cp /etc/apache2/sites-available/jouw-site.conf /etc/apache2/sites-available/jouw-site.conf.bak
  2. Open het bestand met een teksteditor met sudo:

    sudo nano /etc/apache2/sites-available/jouw-site.conf

Tip: Controleer Bestandsrechten

Voordat je Apache configuratiebestanden bewerkt, controleer je de rechten om er zeker van te zijn dat je de nodige toegang hebt. Gebruik het volgende commando:

ls -l /etc/apache2/sites-available/jouw-site.conf

Als je niet de vereiste rechten hebt, moet je ze mogelijk wijzigen met het chmod commando.

Omgevingsvariabelen Toevoegen Aan VirtualHost Blokken

Om omgevingsvariabelen toe te voegen, gebruik je de SetEnv directive binnen het VirtualHost blok voor je domein. Hier is de basis syntax:

<VirtualHost *:80>
    ServerName jouwdomein.com
    DocumentRoot /var/www/jouwdomein
    SetEnv VARIABELE_NAAM waarde
</VirtualHost>

Hier zijn enkele voorbeelden van veelvoorkomende omgevingsvariabele instellingen:

  1. Database verbindingsgegevens:

    SetEnv DB_HOST localhost
    SetEnv DB_NAME myapp_database
    SetEnv DB_USER myapp_user
    SetEnv DB_PASS myapp_password
  2. Applicatie modus:

    SetEnv APP_ENV production
  3. API keys:

    SetEnv API_KEY jouw_api_key_hier
  4. Aangepaste applicatie instellingen:

    SetEnv CACHE_TIMEOUT 3600
    SetEnv DEBUG_MODE false

Voeg deze SetEnv directives toe binnen het juiste VirtualHost blok voor elk domein. Op deze manier kun je verschillende omgevingsvariabelen hebben voor verschillende domeinen op dezelfde server.

De Omgevingsvariabele Configuratie Verifiëren En Testen

Apache Herstarten Om Wijzigingen Toe Te Passen

Nadat je omgevingsvariabelen hebt ingesteld in je Apache configuratie, herstart je de Apache service zodat de wijzigingen worden toegepast. Gebruik deze commando's om Apache te herstarten:

Voor Ubuntu/Debian systemen:

sudo systemctl restart apache2

Voor CentOS/RHEL systemen:

sudo systemctl restart httpd

Controleer voor het herstarten op configuratiefouten:

sudo apache2ctl configtest

Als dit commando "Syntax OK" teruggeeft, is je configuratie correct en kun je herstarten.

Tip: Geleidelijke Herstart

Om downtime tijdens het herstart proces te minimaliseren, kun je een geleidelijk herstart commando gebruiken:

Voor Ubuntu/Debian:

sudo systemctl reload apache2

Voor CentOS/RHEL:

sudo systemctl reload httpd

Dit stelt Apache in staat om huidige verzoeken af te handelen voordat het herstart, waardoor de impact op actieve gebruikers wordt verminderd.

Omgevingsvariabelen Bevestigen In PHP

Om te verifiëren dat je omgevingsvariabelen correct zijn ingesteld, gebruik je PHP functies om hun waarden te controleren:

  1. Maak een PHP bestand (bijvoorbeeld env_test.php) in je web root directory met deze inhoud:
<?php
phpinfo();
?>
  1. Open dit bestand via je webbrowser. Zoek naar de "Environment" sectie in de output. Je aangepaste variabelen zouden daar moeten staan.

  2. Voor een specifieke controle gebruik je de getenv() functie in een PHP script:

<?php
echo "DB_HOST: " . getenv('DB_HOST') . "
"; echo "DB_NAME: " . getenv('DB_NAME') . "
"; ?>

Als je problemen hebt:

  1. Controleer Apache error logs (/var/log/apache2/error.log of /var/log/httpd/error_log) op fouten.

  2. Zorg ervoor dat de SetEnv directives in het juiste VirtualHost blok staan.

  3. Verifieer dat mod_env is ingeschakeld in Apache:

    apache2ctl -M | grep env

    Als het niet wordt vermeld, schakel het dan in met:

    sudo a2enmod env
  4. Als je PHP-FPM gebruikt, moet je omgevingsvariabelen mogelijk anders doorgeven. Overweeg om SetEnvIf te gebruiken in plaats van SetEnv.

Door deze stappen te volgen, kun je omgevingsvariabelen voor je PHP applicaties in Apache instellen, verifiëren en problemen oplossen.