Zurück

Lokale Installation von PHP vs. PHP in Docker

30/10/2020
Pavel Trzaskalik

PHP ist eine serverseitige Skriptsprache, die für Webentwicklungen entwickelt wurde, die aber auch als allgemeine Programmiersprache verwendet werden kann. PHP kann zu reinem HTML hinzugefügt werden oder es kann mit einer Vielzahl von Template-Engines und Web-Frameworks verwendet werden. PHP-Code wird normalerweise von einem Interpreter verarbeitet, der entweder als natives Modul auf dem Webserver oder als Common Gateway Interface (CGI) implementiert ist.

Beide Installationsarten sehen gleich aus, aber der Unterschied liegt in der Lokalisierung der ini-Dateien. Der Standardpfad zu ini-Dateien für ein lokales PHP ist /usr/local/etc/php. Die Docker-Installation verwendet den gleichen Pfad, aber man findet hier zwei Dateien - php.ini-development und php.ini-production sowie einen Ordner namens conf.d. Wenn Sie phpinfo() in beiden Systemen hinzufügen, können Sie folgendes sehen:

‍

‍

Und das ist das Problem. Leider sucht PHP nach der standardmäßigen php.ini-Datei im Standardpfad. Dateien mit dem Namen ini-development oder ini-production werden nicht akzeptiert. Andere ini-Dateien können von einem anderen Ort geladen werden: /usr/lokal/etc/php/conf.d.

‍

Wie kann man das Problem lösen?

1/ Wenn man Dateien mit Standardwerten hochladen möchte, kann eine der Dateien in /usr/local/etc/php/ umbenannt werden. In Dockerfile wie folgt:

{% c-block language="markdown" %}
FROM PHP:apache
           WORKDIR /var/www/html
           COPY . . #copy your awesome app to workdir
           RUN mv /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini

{% c-block-end %}

‍

2) Wenn man eine Datei mit Standardwerten und einige mit benutzerdefinierten Werten hochladen möchte, kann man den Befehl Echo nach dem Umbenennen der Dateien wie in Lösung Nr. 1 wie folgt verwenden:

{% c-block language="markdown" %}
FROM PHP:apache
           WORKDIR /var/www/html
           COPY . . #copy your awesome app to workdir
           RUN mv /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini \
                       && echo “my_values” > /usr/local/etc/php/conf.d/my_php_ini.ini
‍
{% c-block-end %}

‍

3) Um nur Dateien mit benutzerdefinierten Werten zu verwenden, können wir Echo- oder Multiple-Echo-Befehle verwenden oder wir können unsere eigene ini-Datei im Repo verwenden und in den richtigen Pfad kopieren bzw. wenn wir die GitLab Pipeline verwenden, können wir die Echo-Umgebung (GitLab ENV) für einige ini-Dateien im Pfad /usr/local/etc/php/conf.d/ verwenden

{% c-block language="markdown" %}
‍FROM PHP:apache
           WORKDIR /var/www/html
           COPY . . #copy your awesome app to workdir
           COPY “path_to_your_ini_file(s)” /usrlocal/etc/php/conf.d
‍
{% c-block-end %}

oder:

{% c-block language="markdown" %}
‍RUN echo “my_values” > /usr/local/etc/php/conf.d/my_php_ini.ini (creating file)
           RUN echo “my_other_values” >> /usr/local/etc/php/conf.d/my_php_ini.ini (add_lastline_into_file)
‍
{% c-block-end %}

‍

Bis bald bei der nächsten Folge unserer DevOps-Serie.

‍

Pavel ist ein erfahrener DevOps-Guru und begeisterter SysAdmin, der für Application Life Cycle, Continuous Integration und Continuous Delivery verantwortlich ist, sowohl für Kunden als auch für interne SABO Projekte. Er schult Software-Entwickler in unserem Team und koordiniert alle DevOps-Aktivitäten. Hat immer einen Spruch parat, wechselt unberechenbar ins Polnische und kocht und backt gerne.

Profil anzeigen
SABO Mobile IT logo
SABO Mobile IT – Experience
SABO Mobile IT – Experience
SABO Mobile IT – Experience
SABO Mobile IT – Experience
SABO Mobile IT – Experience

SABO IT

SABO IT entwickelt Individualsoftware für Unternehmen mit komplexen technischen Prozessen, vom Steuergerät über die Cloud bis in die Unternehmenssysteme, auch in regulierten Umgebungen. Dazu kommen eigene Plattformen: SenseDrive für geprüfte Antworten aus dem eigenen Wissensbestand und SABOT für die Sprachbedienung von Maschinen. Softwareentwicklung seit 1983, als SABO IT seit 2012; die durchschnittliche Kundenbeziehung dauert 6,5 Jahre.
Über uns

Weitere Artikel

Artikelbild (Platzhalter)
Recommended for you

Was kostet KI im Unternehmen wirklich? Warum der Preis pro Nutzer die falsche Zahl ist

Drei Meldungen aus diesem Jahr zeigen, warum Rechenleistung für europäische Unternehmen zu einer strategischen Frage wird: Laut Siemens-Vorstand Cedrik Neike liegen europäische Rechenzentren bei den Betriebskosten 20 bis 30 Prozent über dem US-Niveau, zahlen würden Unternehmen dafür nach seiner Einschätzung aber nur 5 bis 10 Prozent mehr.
Guido Stanovsky,  October 29, 2026
Mehr erfahren

Termin buchen

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.