Ich habe eine PHP-Einstellung, die nur in der INI-Datei geändert werden kann. Ich kann diese Einstellung aufgrund von Konflikten nicht in der globalen php.ini ändern, daher muss ich sie benutzerspezifisch machen. Kann dies durchgeführt werden, wenn PHP als Modul ausgeführt wird? Oder muss ich PHP ändern, sodass es als CGI ausgeführt wird?
Die beste Antwort scheint „nicht wirklich“ zu sein, aber Sie können mit den folgenden Tricks einige Parameter umgehen.
Antwort1
Mir ist keine Möglichkeit bekannt, eine separate php.ini anzugeben, wenn PHP als Apache-Modul verwendet wird, nur wenn PHP als CGI verwendet wird. Allerdings können alle Konfigurationsoptionen in der php.ini in der .htaccess
Datei geändert werden, wie unter gezeigt.http://php.net/configuration.changessolange Sie AllowOverride in der Apache-Konfiguration auf Options
oder gesetzt haben All
.
Ich habe dies auf vielen meiner Websites getan, um gängige PHP-Konfigurationen zu ändern. Ich gehe davon aus, dass Sie nicht jede Einstellung ändern müssen, sodass die Anzahl leicht zu verwalten sein sollte, indem Sie die Optionen zu Ihrer .htaccess
Datei in dem Verzeichnis hinzufügen, in dem Sie die Änderungen benötigen.
Das Folgende verwende ich auf einigen Websites, um die und -Einstellungen zu ändern include_path
und festzulegen . Verwenden Sie für boolesche Flag-Elemente einfach anstelle von .auto_prepend_file
auto_append_file
php_flag
php_value
<IfModule mod_php5.c>
php_value auto_prepend_file 'header.inc.php'
php_value auto_append_file 'footer.inc.php'
php_value include_path '/path/to/private/includes:/usr/share/pear'
</IfModule>
Antwort2
Ich habe den Handler für PHP für einen PHP-CGI-Wrapper überschrieben und konnte eine php.ini-Datei angeben
Gehen Sie dazu wie folgt vor: Erstellen Sie in dem Ordner, den Sie ändern möchten, eine htaccess-Datei, etwa wie folgt:
Action php5-cgi /cgi-bin/php5-cgi.cgi
AddHandler php5-cgi .php
Erstellen Sie dann eine Datei „php5-cgi.cgi“ mit etwa Folgendem:
#!/bin/sh
exec /usr/bin/php-cgi "$@" -c "/home/user/php.ini"
Legen Sie die Berechtigungen für diese Datei fest, um sie als „Benutzer“ auszuführen. Führen Sie dann eine Testdatei mit phpinfo(1) aus, um zu prüfen, ob Ihre INI-Datei geladen ist.
Danke für alle Hilfe!!
Antwort3
Alle Details gibt es hier:http://php.net/configuration.changes
Antwort4
Sie können Apache „php_admin_value“ pro virtuellem Host/Benutzer verwenden.
Wenn ich mich recht entsinne, kann man mit diesem Befehl jeden php.ini-Wert neu definieren