Teilweise Scriptfehler nach Update von PHP4 nach PHP5
-
chris_cross
- Posts: 13
- Joined: 2006-04-12 01:31
Teilweise Scriptfehler nach Update von PHP4 nach PHP5
Hallo,
Ich habe bereits das Forum durchsucht aber keine brauchbare Antwort gefunden.
Folgende Situation:
Plattform ist Suse9.3 mit Plesk 7.5.4 und der Standartkonfiguration (php4). Nach Update via Yast gab es einige Fehler, die teilweise durch nachträgliches Setzen von php_safemode = off register_globals=on behoben werden konnten.
Das Problem besteht darin, dass nun einige Seiten nicht mehr korrekt angezeigt werden können.
Das Problem besteht vor allem bei Seiten in denen ein selbstgebrautes Templatesystem zum Einsatz kommt (prinzipiell wird dort nur mit fopen eine Datei geöffnet und mit preg_replace/ereg_replace was ersetzt in der Zwischenzeit die Datei gelockt).
Es treten auch keine Basedir Fehler auf...
Alle anderen Seiten die dies nicht verweden laufen ohne Probleme...
Hat jemand noch einen Tip woran das liegen könnte?
Help 8O
Ich habe bereits das Forum durchsucht aber keine brauchbare Antwort gefunden.
Folgende Situation:
Plattform ist Suse9.3 mit Plesk 7.5.4 und der Standartkonfiguration (php4). Nach Update via Yast gab es einige Fehler, die teilweise durch nachträgliches Setzen von php_safemode = off register_globals=on behoben werden konnten.
Das Problem besteht darin, dass nun einige Seiten nicht mehr korrekt angezeigt werden können.
Das Problem besteht vor allem bei Seiten in denen ein selbstgebrautes Templatesystem zum Einsatz kommt (prinzipiell wird dort nur mit fopen eine Datei geöffnet und mit preg_replace/ereg_replace was ersetzt in der Zwischenzeit die Datei gelockt).
Es treten auch keine Basedir Fehler auf...
Alle anderen Seiten die dies nicht verweden laufen ohne Probleme...
Hat jemand noch einen Tip woran das liegen könnte?
Help 8O
Last edited by chris_cross on 2006-06-01 18:48, edited 1 time in total.
Re: Teilweise Scriptfehler nach Update von PHP4 nach PHP5
Das entsprechende Script ist nicht PHP5 konform. Es gab da einige Änderungen und PHP5 ist nicht komplett abwärts kompatibel. Da wird dirt wohl nichts anderes übrig bleiben als das Script zu debuggen. :-)
-
chris_cross
- Posts: 13
- Joined: 2006-04-12 01:31
Re: Teilweise Scriptfehler nach Update von PHP4 nach PHP5
genau das ist der Punkt:
unter meiner Entwicklungsinstallation auf dem Laptop (php5.1.2) funktionieren die Scripten einwandfrei.
Auf dem Server (5.0.3) nun leider nicht. Bin fast sicher, dass ich die php.ini angeglichen habe.
Oder kann es evtl. an der "alten" php Version liegen?
Ich wollte es mir ersparen wüst auf dem Server rumzuexperimentieren...
unter meiner Entwicklungsinstallation auf dem Laptop (php5.1.2) funktionieren die Scripten einwandfrei.
Auf dem Server (5.0.3) nun leider nicht. Bin fast sicher, dass ich die php.ini angeglichen habe.
Oder kann es evtl. an der "alten" php Version liegen?
Ich wollte es mir ersparen wüst auf dem Server rumzuexperimentieren...
-
chris_cross
- Posts: 13
- Joined: 2006-04-12 01:31
Re: Teilweise Scriptfehler nach Update von PHP4 nach PHP5
Habe das Problem provisorisch behoben. Für alle die´s interessiert:
Plesk legt bei jedem neuen Kunden defaultmäßig einen Ordneran.
Dort liegt eine Datei namens an.
In dieser Datei stand bei mir zumindest bei den betroffenen Domains sowas:
Dieser Eintrag sorgt dafür, dass beim Starten des Apachen die Basedir-einstellung auf eben genannten Pfad gesetzt wird und damit die Defailteinstellung aus der php.ini ersetzt wird (denn in der war kein basedir definiert).
Löscht man diese Zeile funktioniert alles wunderbar.
Nun muss ich nochmal nachsehen in welcher Datei die Vorlagen für die Ordner und Dateien abgelegt werden, damit das in Zukunft beim Anlegen nicht wieder passiert.
LG
Chris
Plesk legt bei jedem neuen Kunden defaultmäßig einen Ordner
Code: Select all
conf Dort liegt eine Datei namens
Code: Select all
httpd.includeIn dieser Datei stand bei mir zumindest bei den betroffenen Domains sowas:
Code: Select all
php_admin_value open_basedir "/var/www/vhosts/maxmustermann.de/httpdocs:/tmp"
Löscht man diese Zeile funktioniert alles wunderbar.
Nun muss ich nochmal nachsehen in welcher Datei die Vorlagen für die Ordner und Dateien abgelegt werden, damit das in Zukunft beim Anlegen nicht wieder passiert.
LG
Chris
Re: Teilweise Scriptfehler nach Update von PHP4 nach PHP5
Du willst wirklich deine Scripte ohne open_basedir und wahrscheinlich auch ohne jede andere Absicherung starten?!?
-
chris_cross
- Posts: 13
- Joined: 2006-04-12 01:31
Re: Teilweise Scriptfehler nach Update von PHP4 nach PHP5
Nein nicht langfristig - das Problem ist dass die beiden Seiten solange sie nicht umgeschrieben sind weiterlaufen müssen. Der Rest des Servers läuft auf im safe_mode und mit base_dirs.
Nun habe ich aber das Problem, dass mir bei jedem Webserver restart die Datei httpd.include der jeweiligen vhosts überschrieben werden.
Leider kann ich in einer vhost.conf aber das Basedir nicht modifizieren -zumindest ist mir das bislang nicht gelungen. Noch ne Idee?
Beim restarten des Webservers bekomme ich etwas derartiges:
Außerdem steht in den httpd.include der vhosts folgednes:
Wenn ich nun alle base_dir Einträge lösche funktioniert alles wunderbar :-S
Ach ja:
Wenn ich die Fehlerausgabe global aktiviere wirft mir das Script folgende Fehler:
LG
Chris
Nun habe ich aber das Problem, dass mir bei jedem Webserver restart die Datei httpd.include der jeweiligen vhosts überschrieben werden.
Leider kann ich in einer vhost.conf aber das Basedir nicht modifizieren -zumindest ist mir das bislang nicht gelungen. Noch ne Idee?
Beim restarten des Webservers bekomme ich etwas derartiges:
Code: Select all
Creating new config (0x83eb640) for /var/www/vhosts/domainname.de/web_users/
Getting engine=0 for 0x83eb640 (0)
Merge dir (0x80f0aa8) (0x83d1bd0)Code: Select all
<VirtualHost 123.456.789>
ServerName meine-domain.de:80
ServerAlias www.meine-domain.de
UseCanonicalName Off
SuexecUserGroup user_x psacln
ServerAdmin "user@t-online.de"
DocumentRoot /var/www/vhosts/meine-domain.de/httpdocs
CustomLog /var/www/vhosts/meine-domain.de/statistics/logs/access_log plesklog
ErrorLog /var/www/vhosts/meine-domain.de/statistics/logs/error_log
<IfModule mod_userdir.c>
UserDir /var/www/vhosts/meine-domain.de/web_users
</IfModule>
ScriptAlias /cgi-bin/ /var/www/vhosts/meine-domain.de/cgi-bin/
Alias /plesk-stat /var/www/vhosts/meine-domain.de/statistics/
Alias /webstat /var/www/vhosts/meine-domain.de/statistics/webstat
Alias /webstat-ssl /var/www/vhosts/meine-domain.de/statistics/webstat-ssl
Alias /ftpstat /var/www/vhosts/meine-domain.de/statistics/ftpstat
Alias /anon_ftpstat /var/www/vhosts/meine-domain.de/statistics/anon_ftpstat
<IfModule mod_ssl.c>
SSLEngine off
</IfModule>
<Directory /var/www/vhosts/meine-domain.de/httpdocs>
<IfModule mod_perl.c>
<Files ~ (.pl$)>
SetHandler perl-script
PerlHandler ModPerl::Registry
Options ExecCGI
allow from all
PerlSendHeader On
</Files>
</IfModule>
<IfModule sapi_apache2.c>
php_admin_flag engine on
php_admin_value open_basedir "/var/www/vhosts/meine-domain.de/httpdocs:/tmp"
</IfModule>
<IfModule mod_php5.c>
php_admin_flag engine on
php_admin_value open_basedir "/var/www/vhosts/meine-domain.de/httpdocs:/tmp"
</IfModule>
Options +Includes +ExecCGI
</Directory>
<Directory /var/www/vhosts/meine-domain.de/web_users>
<IfModule sapi_apache2.c>
AddType text/plain .php .php4 .php3 .phtml
php_admin_flag engine off
</IfModule>
<IfModule mod_php5.c>
AddType text/plain .php .php5 .php4 .php3 .phtml
php_admin_flag engine off
</IfModule>
</Directory>
<Directory "/var/www/vhosts/meine-domain.de/statistics">
AuthType Basic
AuthName "Domain-Statistiken"
AuthUserFile /var/www/vhosts/meine-domain.de/pd/d..plesk-stat
require valid-user
</Directory>
</VirtualHost>
Ach ja:
Wenn ich die Fehlerausgabe global aktiviere wirft mir das Script folgende Fehler:
Code: Select all
Warning: %v%v() [function.%v]: open_basedir restriction in effect. File(/include.inc.php) is not within the allowed path(s): (/var/www/vhosts/meine-domain.de/httpdocs:/tmp) in /var/www/vhosts/meine-domain.de/httpdocs/begruess/begruess.php on line 6
Warning: %v%v() [function.%v]: failed to open stream: Operation not permitted in /var/www/vhosts/meine-domain.de/httpdocs/begruess/begruess.php on line 6
Warning: %v%v() [function.include]: Failed opening 'include.inc.php' for inclusion (include_path='.:') in /var/www/vhosts/meine-domain.de/httpdocs/begruess/begruess.php on line 6
...
Chris
Re: Teilweise Scriptfehler nach Update von PHP4 nach PHP5
erstelle im conf order der domain eine vhost.conf und pass die werte da an diese wird nicht über schreiben aber beachtet
sollte aber in jedem fall nur sein bis du die scripte angepasst hast
sollte aber in jedem fall nur sein bis du die scripte angepasst hast
-
chris_cross
- Posts: 13
- Joined: 2006-04-12 01:31
Re: Teilweise Scriptfehler nach Update von PHP4 nach PHP5
Das mit der vhost hatte ich schon versucht. Zum einen werden meine Einträge ignoriert - zum anderen wird von woher auch immer ein
eingebaut. Wobei das engine off ne gany miese Sache ist. Der vhost ist aber laut Plesk berechtigt php auszuführen und auch im ersteren IfModule Block ist die engine auf on.
Irgendwo müssen doch die einzelnen Dateien zu finden sein, die am Bau der httpd.include beteiligt sind. (die eine ist ja wohl die vhost.conf aber wo ist der Rest?)
LG
Chris[/code]
Code: Select all
<IfModule sapi_apache2.c>
AddType....
php_admin_flag engine off
</IfModule sapi_apache2.c>
Irgendwo müssen doch die einzelnen Dateien zu finden sein, die am Bau der httpd.include beteiligt sind. (die eine ist ja wohl die vhost.conf aber wo ist der Rest?)
LG
Chris[/code]
-
Anonymous
Re: Teilweise Scriptfehler nach Update von PHP4 nach PHP5
Hab genau das selbe Problem ... gibt es hier schon eine Lösung ? .....
-
Roger Wilco
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Teilweise Scriptfehler nach Update von PHP4 nach PHP5
http://www.php.net/manual/en/migration5.phpthundergod wrote:Hab genau das selbe Problem ... gibt es hier schon eine Lösung ? .....