====== PHP-Skripte ====== Zu den üblichen [[:Webhosting]]-Paketen gibt es die Möglichkeit, eigene [[http://www.php.net|PHP-Skripte]] zu verwenden: Im folgenden wird ein wenig genauer auf die zur Verfügung stehenden Features eingegangen. ===== Eingesetzte PHP-Version ===== Momentan wird auf den Servern PHP in der Version **7.4** eingesetzt, allerdings bieten wir auch alle Versionen seit 5.2 an - jeweils eine Version pro Minor-Version (also 5.2, 5.3, 5.4, etc.). Ein automatisches Update auf die neuste Version findet nur innerhalb der Major-Version statt (z.B. innerhalb von PHP 7). Um Inkompatibilitäten zu vermeiden verbleiben Bestandskunden auch nach einem größeren Versionssprung in ihrer bekannten PHP-Version. Über die php.ini kann auch eine Versions-Präferenz gesetzt werden. Diese setzt sich typischerweise aus der Major-Version und ggf. einer Minor-Version zusammen. Weitere Komponenten sollten nicht verwendet werden, da nicht sichergestellt werden kann, dass die gewünschte PHP-Version auch vorhanden ist: Beispiel: Stets PHP 7.2 verwenden [php] version = 7.2 Beispiel: Stets das aktuellste PHP 7 verwenden [php] version = 7 Um immer die aktuellste bei uns verfügbare PHP-Version zu nutzen, kann das Schlüsselwort "latest" verwendet werden. ===== Opcode-Cache ===== Als Opcode-Cache verwenden wir den PHP-eigenen "Opcache" (ehemals Zend Optimizer). Dieser ist für alle Kunden voreingestellt, kann jedoch bei Bedarf deaktiviert werden. Alternativ steht der [[http://pecl.php.net/package/APC|Alternative PHP Cache (APC)]] zur Verfügung, wobei der "Opcache" immer zu bevorzugen ist. Der User-Space-Teil von APC kann auch über die Erweiterung [[http://pecl.php.net/package/APCu|APCu]] bereitgestellt werden. ===== Anbindung der PHP-Skripte an den Webservern ===== Anders als meistens üblich werden bei tiggersWelt.net PHP-Skripte weder via mod_php, noch als CGI-Prozess ausgeführt, sondern mittels **FastCGI**-Servern unter der jeweiligen User- und GroupID des Besitzers ausgeführt. Dies hat zum einen den Vorteil, dass alle Kunden immer mit ihren FTP-Rechten an ihre Dateien können zum anderen werden so die z.T. durch normales CGI entstehenden Performance-Probleme umgangen. ===== Eigene Bibliotheken ===== Es besteht die Mäöglichkeit neben den durch [[#Verfügbare PEAR-Module|tiggersWelt.net bereitgestellten PEAR-Modulen]] noch eigene PEAR-Module oder PHP-Bibliotheken bequem mit dem Webhosting zu verwenden - neben dem systemweiten Bibliothekenpfad gibt es noch einen kundenspezifischen Pfad auf das FTP-Verzeichnis /php/lib In diesem Verzeichnis hat jeder Kunde die Möglichkeit eigene Bibliotheken abzulegen und wie eine vorinstallierte Bibliothek zu nutzen. ===== Einschränkungen ===== PHP wird standardmäßig **nicht** im ''safe_mode'' ausgeführt, ebenfalls besteht keine Einschränkung wie z.B. ''open_basedir''. Diese Option ist auf Wunsch des Kunden jedoch verfügbar. Je nach Webhosting-Paket variiert der maximal verfügbare Arbeitsspeicher. So beträgt das Speicherlimit im Starter-Webhosting z.B. 256 MB. Die CPU-Laufzeit((CPU-Laufzeit entspricht nicht der realen Zeit, sondern errechnet sich aus der CPU-Belastung)) pro Skript beträgt 12 Sekunden. Alle Details finden sich in der jeweiligen Tarif-Berschreibung (z.B. [[https://tiggerswelt.net/Hosting/|hier]]) und sind ggf. aktueller als dieses Wiki. ===== Konfiguration ===== Momentan übernimmt der [[:Support]] Einstellungen am System. ===== Verfügbare Module ===== * **Opcache** oder APC, je nach eingesetztem "Optimizer" * APCu * bcmath * big_int * bz2 * calendar * **ctype** * curl * **date** * dba * **dom** * doublemetaphone (nur PHP 5) * ev * event * **exif** * **fileinfo** * **filter** * ftp * **gd** * gettext * gmp * **hash** * htscanner (nur PHP 5) * iconv * igbinary * **imagick** * imap * inotify * intl * **json** * libevent (nur PHP 5) * **libxml** * **mbstring** * mcrypt (nur PHP 5) * memcache * mssql (nur PHP 5) * mysql (nur PHP 5) * **mysqli** * **mysqlnd** * **openssl** * parallel (nur PHP 7) * pcntl * **pcre** * **PDO** * **pdo_mysql** * pdo_dblib * pdo_sqlite * **Phar** * **posix** * **readline** * **Reflection** * **session** * shmop * **SimpleXML** * soap * sockets * sodium (nur PHP 7) * **SPL** * **standard** * sqlite3 * svn * sysvmsg * sysvsem * sysvshm * **tokenizer** * weakref (nur PHP 5) * xdebug * **xml** * **xmlreader** * xmlrpc * xsl * **xmlwriter** * **zip** * **zlib** ===== Verfügbare PEAR-Module ===== PEAR steht für "PHP Extension and Application Repository". * Auth * Auth::SASL * Cache * Crypt::Blowfish * Crypt::CBC * Crypt::CHAP * Crypt::DiffieHellman * Crypt::HMAC * Crypt::HMAC2 * Crypt::RC4 * Crypt::RSA * Crypt::XTea * Crypt::XXTea * Date * DB * File * HTTP::Request * Log * Mail * Mail::MIME * Mail::MIMEDecode * Net::SMTP * Net::Socket * Services::Weather * XML::Serializer * Archive::TAR * Console::getopt * File::CSV * MDB2 * Net::FTP * Net::URL * OS::Guess * PEAR * SOAP * XML::Parser Weitere auf [[:Support|Anfrage]]... ===== Weiterführende Links ===== * Website von PHP: [[http://php.net/]] * Umfassende Online-Dokumentation zur Sprache: [[http://www.php.net/manual/de/]] * Informationen zu FastCGI in der Wikipedia: [[http://de.wikipedia.org/wiki/FastCGI]] * Suhosin Website: [[http://www.hardened-php.net/suhosin/]] * Website zum Alternative PHP Cache (APC): [[http://pecl.php.net/package/apc]] * Dokumentation zur GnuPG-Einbindung in PHP: [[http://livedocs.phpdoc.info/index.php?l=en&q=ref.gnupg]] * Alles rund um PEAR: [[http://pear.php.net/]]