<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://docs.artisancommerce.at/index.php?action=history&amp;feed=atom&amp;title=Intern%3AHauptseite%2FBplaced%2FPHP-ini-Konfiguration</id>
	<title>Intern:Hauptseite/Bplaced/PHP-ini-Konfiguration - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://docs.artisancommerce.at/index.php?action=history&amp;feed=atom&amp;title=Intern%3AHauptseite%2FBplaced%2FPHP-ini-Konfiguration"/>
	<link rel="alternate" type="text/html" href="https://docs.artisancommerce.at/index.php?title=Intern:Hauptseite/Bplaced/PHP-ini-Konfiguration&amp;action=history"/>
	<updated>2026-04-18T15:35:39Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in ArtisanCommerce Dokumentation</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://docs.artisancommerce.at/index.php?title=Intern:Hauptseite/Bplaced/PHP-ini-Konfiguration&amp;diff=98&amp;oldid=prev</id>
		<title>Admin am 25. Februar 2026 um 19:49 Uhr</title>
		<link rel="alternate" type="text/html" href="https://docs.artisancommerce.at/index.php?title=Intern:Hauptseite/Bplaced/PHP-ini-Konfiguration&amp;diff=98&amp;oldid=prev"/>
		<updated>2026-02-25T19:49:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://docs.artisancommerce.at/index.php?title=Intern:Hauptseite/Bplaced/PHP-ini-Konfiguration&amp;amp;diff=98&amp;amp;oldid=96&quot;&gt;Änderungen zeigen&lt;/a&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://docs.artisancommerce.at/index.php?title=Intern:Hauptseite/Bplaced/PHP-ini-Konfiguration&amp;diff=96&amp;oldid=prev</id>
		<title>Admin: Die Seite wurde neu angelegt: „= PHP-CGI Wrapper &amp; PHP-ini-Konfiguration auf bplaced =  == Übersicht == Dieses Skript dient als Wrapper für PHP-CGI auf Shared-Hosting-Systemen wie bplaced.   Ziele: * Automatische PHP-Versionserkennung * Dynamische Pfad- und Modulkonfiguration * OpenBaseDir-Management * Integration von Composer-, Mailparse- und IMAP-Pfaden * Logging &amp; Debugging  == Aufbau des Wrappers ==  === 1. Debug-Flag &amp; Argumente === &lt;syntaxhighlight lang=&quot;bash&quot;&gt; DEBUG=0 for ARG…“</title>
		<link rel="alternate" type="text/html" href="https://docs.artisancommerce.at/index.php?title=Intern:Hauptseite/Bplaced/PHP-ini-Konfiguration&amp;diff=96&amp;oldid=prev"/>
		<updated>2026-02-25T19:36:06Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „= PHP-CGI Wrapper &amp;amp; PHP-ini-Konfiguration auf bplaced =  == Übersicht == Dieses Skript dient als Wrapper für PHP-CGI auf Shared-Hosting-Systemen wie bplaced.   Ziele: * Automatische PHP-Versionserkennung * Dynamische Pfad- und Modulkonfiguration * OpenBaseDir-Management * Integration von Composer-, Mailparse- und IMAP-Pfaden * Logging &amp;amp; Debugging  == Aufbau des Wrappers ==  === 1. Debug-Flag &amp;amp; Argumente === &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; DEBUG=0 for ARG…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= PHP-CGI Wrapper &amp;amp; PHP-ini-Konfiguration auf bplaced =&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
Dieses Skript dient als Wrapper für PHP-CGI auf Shared-Hosting-Systemen wie bplaced.  &lt;br /&gt;
Ziele:&lt;br /&gt;
* Automatische PHP-Versionserkennung&lt;br /&gt;
* Dynamische Pfad- und Modulkonfiguration&lt;br /&gt;
* OpenBaseDir-Management&lt;br /&gt;
* Integration von Composer-, Mailparse- und IMAP-Pfaden&lt;br /&gt;
* Logging &amp;amp; Debugging&lt;br /&gt;
&lt;br /&gt;
== Aufbau des Wrappers ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Debug-Flag &amp;amp; Argumente ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
DEBUG=0&lt;br /&gt;
for ARG in &amp;quot;$@&amp;quot;; do&lt;br /&gt;
    if [ &amp;quot;$ARG&amp;quot; = &amp;quot;-vv&amp;quot; ]; then&lt;br /&gt;
        DEBUG=1&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Prüft, ob `-vv` übergeben wird, um Debug-Ausgaben zu aktivieren.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Fallstrick:&amp;#039;&amp;#039;&amp;#039; Zu viele Debug-Ausgaben können CGI-Output zerstören.&lt;br /&gt;
&lt;br /&gt;
=== 2. System-Pfad Fix ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ORIGINAL_PATH=&amp;quot;$PATH&amp;quot;&lt;br /&gt;
export PATH=&amp;quot;/usr/share/7.4/ext/bin:/usr/share/8.2/ext/bin:/usr/share/8.3/ext/bin:$ORIGINAL_PATH&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Priorisiert bplaced-spezifische PHP-Binaries.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Fallstrick:&amp;#039;&amp;#039;&amp;#039; Fehlende Binaries verhindern Script-Ausführung.&lt;br /&gt;
&lt;br /&gt;
=== 3. Wrapper-Signal ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[[ &amp;quot;$DEBUG&amp;quot; -eq 1 ]] &amp;amp;&amp;amp; echo &amp;quot;PHPWRAPPER_CALL&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Signalisiert den Start des Wrappers bei Debug-Modus.&lt;br /&gt;
&lt;br /&gt;
=== 4. Output-Kontrolle ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exec 3&amp;gt;&amp;amp;1 4&amp;gt;&amp;amp;2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Speichert stdout &amp;amp; stderr für spätere Wiederherstellung.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Fallstrick:&amp;#039;&amp;#039;&amp;#039; Falsches Zurücksetzen unterdrückt Ausgabe.&lt;br /&gt;
&lt;br /&gt;
=== 5. Fehlerbehandlung ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
handle_error() {&lt;br /&gt;
    [[ &amp;quot;$DEBUG&amp;quot; -eq 1 ]] &amp;amp;&amp;amp; echo &amp;quot;Error on line $1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
trap &amp;#039;handle_error $LINENO&amp;#039; ERR&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Fängt Script-Fehler ab.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Fallstrick:&amp;#039;&amp;#039;&amp;#039; Subshell-Fehler werden nicht immer erfasst.&lt;br /&gt;
&lt;br /&gt;
=== 6. Laufzeit- &amp;amp; Kontextdaten ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
datetime=$(date +&amp;quot;%Y-%m-%d %H:%M:%S&amp;quot;)&lt;br /&gt;
calling_process_info=$(ps -p $$ | tail -n 1)&lt;br /&gt;
current_directory=$(pwd)&lt;br /&gt;
script_name=&amp;quot;$0&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Nützliche Metadaten für Logging.&lt;br /&gt;
&lt;br /&gt;
=== 7. User- &amp;amp; Host-Kontext ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
USERNAME=&amp;#039;peterpatoschka&amp;#039;&lt;br /&gt;
HOST=&amp;#039;server6.bplaced.net&amp;#039;&lt;br /&gt;
source /users/_core/${USERNAME}/env&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Lädt Benutzer-Umgebungsvariablen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Fallstrick:&amp;#039;&amp;#039;&amp;#039; `env` muss lesbar sein.&lt;br /&gt;
&lt;br /&gt;
=== 8. PHP-Versionserkennung ===&lt;br /&gt;
* Erkennung via `.php-version` oder Verzeichnisregel für Support-Projekte.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Fallstrick:&amp;#039;&amp;#039;&amp;#039; Leerzeichen in `.php-version` oder fehlende Datei verhindern korrekte Erkennung.&lt;br /&gt;
&lt;br /&gt;
=== 9. PHP Basis-Konfiguration ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PHP_INI_SCAN_DIR=&amp;quot;/users/${USERNAME}/etc/php/${PV}&amp;quot;&lt;br /&gt;
export PHPRC=&amp;quot;${PHP_INI_SCAN_DIR}/php.ini&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Bestimmt benutzerdefinierte PHP-INIs.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Fallstrick:&amp;#039;&amp;#039;&amp;#039; Falsche Pfade verhindern Modul-Laden.&lt;br /&gt;
&lt;br /&gt;
=== 10. Pfaddefinitionen ===&lt;br /&gt;
* BASE_PATH, TEMP_PATH, Composer-Pfade, Vendor-Pfade.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Fallstrick:&amp;#039;&amp;#039;&amp;#039; Schreibrechte prüfen.&lt;br /&gt;
&lt;br /&gt;
=== 11. OpenBaseDir ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
OB=&amp;quot;/users/${USERNAME}/:/users/_temp/${USERNAME}:/etc/ssl/certs/:/etc/ca-certificates/&amp;quot;&lt;br /&gt;
OB=&amp;quot;${OB}:${COMPOSER_CONFIG_PATH}:${COMPOSER_CACHE_PATH}:${COMPOSER_SHARE_PATH}&amp;quot;&lt;br /&gt;
OB=&amp;quot;${OB}:${DIRTYFIX_PATH}&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Limitiert Dateizugriffe auf sichere Pfade.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Fallstrick:&amp;#039;&amp;#039;&amp;#039; Fehlerhafte OB-Pfade blockieren Zugriff auf Temp, Composer, SSL.&lt;br /&gt;
&lt;br /&gt;
=== 12. Projekt- / Release-Erkennung ===&lt;br /&gt;
* Fügt Vendor-Pfade dynamisch zu OB hinzu.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Fallstrick:&amp;#039;&amp;#039;&amp;#039; Einzelne Dateien als OB-Pfad können fehlschlagen.&lt;br /&gt;
&lt;br /&gt;
=== 13. PHP-Module ===&lt;br /&gt;
* IonCube, Mailparse, IMAP werden nur geladen, wenn vorhanden.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Fallstrick:&amp;#039;&amp;#039;&amp;#039; Fehlende `.so` Dateien verhindern PHP-Start.&lt;br /&gt;
&lt;br /&gt;
=== 14. PHP-CGI Kommando ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
CGI=(&lt;br /&gt;
    /usr/share/${PV}${PR}/bin/php&lt;br /&gt;
    -c /users/${USERNAME}/etc/php/${PV}${PR}/php.ini&lt;br /&gt;
    $IC $MP $IMAP&lt;br /&gt;
    -d curl.cainfo=/etc/ssl/certs/ca-certificates.crt&lt;br /&gt;
    -d memory_limit=${MM:=256}M&lt;br /&gt;
    -d open_basedir=&amp;quot;${OB}&amp;quot;&lt;br /&gt;
    -d upload_tmp_dir=&amp;quot;${TEMP_PATH}/&amp;quot;&lt;br /&gt;
    -d session.save_path=&amp;quot;${TEMP_PATH}/&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Fallstricke:&amp;#039;&amp;#039;&amp;#039; curl-Zertifikate, Memory-Limit, Schreibrechte beachten.&lt;br /&gt;
&lt;br /&gt;
=== 15. Logging ===&lt;br /&gt;
* Aufruf wird in zentralem Logfile protokolliert.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Fallstrick:&amp;#039;&amp;#039;&amp;#039; Logfile muss beschreibbar sein.&lt;br /&gt;
&lt;br /&gt;
=== 16. Cleanup &amp;amp; Ausführung ===&lt;br /&gt;
* Temporäre Variablen löschen und PHP-CGI ausführen.&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung Fallstränge ==&lt;br /&gt;
* OpenBaseDir → Zugriff auf Temp, Composer, SSL&lt;br /&gt;
* PHP-Module → IonCube, Mailparse, IMAP&lt;br /&gt;
* SSL → curl.cainfo&lt;br /&gt;
* Schreibrechte → Temp-Ordner, Logfile&lt;br /&gt;
* PHP-Version → Module/Pfade unterschiedlich&lt;br /&gt;
* Debug/Logging → CGI-Output zerstörbar&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>