Git Product home page Git Product logo

docker-php's Introduction

PHP für Docker

Befehle

composer-extension-install

Prüft ob eine Datei /var/www/html/composer.json existiert und installiert benötigte PHP-Erweiterungen per apk.

php-syntax-check

Geht ein Verzeichnis rekursiv durch und prüft die darin enthaltenen PHP-Dateien auf korrekten Syntax.

apache2-module-enable

Aktiviert ein Modul, dass sich in /etc/apache2/modules-available befindet. Ist im Image foobox/php:7.1-apache verfügbar.

apache2-module-disable

Deaktiviert ein Modul, dass sich in /etc/apache2/modules-enable befindet. Ist im Image foobox/php:7.1-apache verfügbar.

Einstellungen

Sessions

Die Sessions von PHP werden standardmässig im Memcached gespeichert, um die Sessiondaten über mehrere Instanzen auf verschiedenen Hosts verwenden zu können. Auch bleiben die Sessiondaten bei einem Neustart des Containers zu erhalten.

Es muss ein Host memcache im Stack verfügbar sein. Hier kann z.B. foobox/memcached verwendet werden.

Umgebungsvariablen

Folgende Umgebungsvariblen können beim Starten des Containers übergeben werden, damit diese Einstellungen von PHP übernommen werden.

Sollte ein bestimmter Bereich (wie Admin) der Seite ein höheres Limit benötigen, so sollte zuerst versucht werden einen weiteren Container mit einem höheren Limit zu starten, der nur für diesen Bereich zuständig ist. Hierfür muss der Pfad mit den höheren Anforderungen im Loadbalancer auf den weiteren Container zeigen.

PHP_TIME_LIMIT

Die maximale Laufzeit eines PHP-Scripts in Sekunden, falls dieses über foobox/php:7.1-apache oder foobox/php:7.1-fpm gestartet wurde. Unter foobox/php:7.1-cli, dass für Cronjobs verwendet werden kann wird dieses Limit ignoriert.

Standardwert: 10 (Sekunden)

PHP_INPUT_TIME_LIMIT

Maximale Zeit die zum Parsen der GET und POST-Parameter erlaubt ist.

Standardwert: 10 (Sekunden)

PHP_MEMORY_LIMIT

Die maximaler Speicherverbrauch eines PHP-Scripts, falls dieses über foobox/php:7.1-apache oder foobox/php:7.1-fpm gestartet wurde. Unter foobox/php:7.1-cli, dass für Cronjobs verwendet werden kann wird dieses Limit ignoriert.

Standardwert: 64M

PHP_POST_SIZE_LIMIT

Maximale Grösse des Post-Requests.

Standardwert: 8M

PHP_UPLOAD_SIZE_LIMIT

Maximale Grösse einer Datei in einem Post-Request.

Standardwert: 8M

PHP_XDEBUG_REMOTE_HOST

Host zu dem sich xdebug verbinden soll. Da die IP des Hostsystems evtl. nicht direkt direkt verfügbar ist, kann eine Umgebungsvariable auf dem Hostsystem per PHP_XDEBUG_REMOTE_HOST=$(hostname) z.B. in der Datei ~/.bashrc definiert werden und dem Container foobox/php:7.1-apache-dev beim Starten übergeben werden, damit xdebug sich zum gewünschten Host verbinden kann.

Der Standardwert localhost könnte nur funktionieren, falls der Container mit --net=host gestartet wurde.

Standardwert: localhost

PHP_XDEBUG_REMOTE_PORT

Wird von foobox/php:7.1-apache-dev verwendet.

Standardwert: 9000

PHP_XDEBUG_PROFILE_PATH

Der Pfad unter dem die Ergebnisse des Profilers gespeichert werden sollen. Der Profiler kann über die GET oder POST-Variable XDEBUG_PROFILE aktiviert werden. Diese Dateien können sehr viel Speicherplatz benötigen und sollten regelmässig gelöscht werden, falls diese nicht mehr benötigt werden.

https://xdebug.org/docs/profiler

Wird von foobox/php:7.1-apache-dev verwendet.

Standardwert: /tmp

APPLICATION_ENV

Sollte die Umgebungsvariable APPLICATION_ENV nicht den Wert production haben, so wird per mod_alias unter /robots.txt verfügbar sein, die alle Suchmaschinenzugriffe verbietet. Zusätzlich wird per mod_headers ein Header X-Robots-Tag mit dem Wert noindex, nofollow, noarchive, nosnippet, noodp, noimageindex gesetzt. Auch werden die Cachezeiten per mod_expires auf maximal eine Minute gesetzt damit Änderungen während der Entwicklung schneller sichtbar werden.

Diese Einstellung wird aktuell nur von foobox/php:7.1-apache verwendet.

Images

foobox/php:7.1-common

Dieses Image wird von allen PHP-Images verwendet um eine gemeinsame Basis für oft benutzte Einstellungen und Erweiterungen bereitzustellen. Die php.ini wurde unter /etc/php7/conf.d in mehrere kleine Konfigurationsdateien in aufgeteilt um Änderungen zu erleichtern.

foobox/php:7.1-apache

foobox/php:7.1-apache enthält einen Apache 2.4 als Webserver und PHP 7.1 als Modul um Anwendungen auszuführen.

foobox/php:7.1-apache-dev

foobox/php:7.1-apache-dev ist eine Erweiterung zu foobox/php:7.1-apache und enthält xdebug. In der Dokumentation von xdebug zum Debugging gibt es auch eine Liste von Browsererweiterungen mit denen das Remote-Debugging aktiviert werden kann, damit sich PHP z.B. zu PHPStorm verbindet.

foobox/php:7.1-cli

foobox/php:7.1-cli kann für Cronjobs verwendet werden.

foobox/php:7.1-cli-dev

foobox/php:7.1-cli-dev ist eine Erweiterung zu foobox/php:7.1-cli und enthält composer und phpunit die im Deployment für das Installieren von Abhängigkeiten und für Unittests verwendet werden können.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.