![]() |
.htaccess - Code nur auf einem Server ausführen
damit aktuell auf meinem Server .php mit PHP5 ausgeführt wird (standardmäßig noch mit PHP4)
füge ich in die .htaccess folgende Zeile ein:
Code:
Leider führt diese Zeile auf meinem lokalen Testserver zu einem 500er-Fehler.
AddHandler x-httpd-php5 .php
Da ich einen automatischen Upload/Abgleich zwischen Verzeichnissen beider Server nutze, hätte ich somit immer auf einem Server ein Problem (falsche PHP-Version oder nichtfunktionierender Server) und die Dateien als .php5 zu benennen wollte ich auch weglassen. Gefunden hätte ich jetzt <Directory und <DirectoryMatch ,
Code:
aber hier wird auch ein 500 Internal Error geworfen und die Log meint "<DirectoryMatch not allowed here".
<DirectoryMatch "^/home/www/nchXXX/html">
AddHandler x-httpd-php5 .php </DirectoryMatch> Gibt es nun noch etwas Anderes, womit man in der htaccess die Server unterscheiden kann? |
AW: .htaccess - Code nur auf einem Server ausführen
Der 500er-Fehler kommt daher, dass in deiner .htaccess wohl kein AddType erlaubt. Pruefe daher die AllowOverride-Direktive in deiner VHost- oder Apache-Konfiguration.
BTW, was heisst "auf dem Server mit PHP5 (standardmaessig mit PHP4)"? Soll das heissen dein Server laeuft auf PHP5, deine lokale Umgebung mit PHP4 oder wie muss man das verstehn? Greetz alcaeus |
AW: .htaccess - Code nur auf einem Server ausführen
Wieso AddType?
Nein, mein lokaler Apache hat nur PHP 5 installiert. Aber auf dem Webspace sind sowohl PHP 4, als auch PHP 5 installiert und .php ist standardmäßig mit PHP 4 verbunden, aber über dieses AddHandler werden *.php-Dateien mit PHP 5 ausgeführt. (das klappt auch und ist dort der offizielle Weg) .php > PHP 4 .php4 > PHP 4 .php5 > PHP 5 Auf diese Konfiguration hab ich aber keinen direkten Zugriff. Sobald die's geschafft haben PHP 5.3 auch in den kleineren Hostingpaketen einzupflegen (aktuell ist dort nur ein 5.2.4 verfügbar), würde ich das ganze Paket upgraden und .php auf PHP5 umstellen lassen. Mein lokaler Testserver mag aber dieses "AddHandler x-httpd-php5 .php" nicht und drum wäre es schön, wenn ich nur eine .htaccess hätte, welcher aber lokal diesen Befehl ignoriert. |
AW: .htaccess - Code nur auf einem Server ausführen
Wie alcaeus schon sagte, musst du dafür in der Konfiguration deines Apachen was ändern. Du brauchst die AllowOverride Direktive. Schau dir dazu am besten mal die
![]() Liebe Grüße, Valle |
AW: .htaccess - Code nur auf einem Server ausführen
Zitat:
Wie valle bereits gesagt hat, guck dir die AllowOverride-Direktive an. Diese musst du wie bereits gesagt im VHost oder in der globalen Apache-Config setzen. Greetz alcaeus |
AW: .htaccess - Code nur auf einem Server ausführen
Mal sehn ob der Support da was dran drehen kann/mag.
|
AW: .htaccess - Code nur auf einem Server ausführen
Zitat:
Mein Tipp: reinen PHP5-Hoster suchen. Greetz alcaeus |
AW: .htaccess - Code nur auf einem Server ausführen
Zitat:
|
AW: .htaccess - Code nur auf einem Server ausführen
Soeinen Tipp hatten die auch schon ... in den größeren VServern könnte ich mir auch sofort das neuste PHP installieren (lassen) und sonstwas machen ... ist dann natürlich auch teurer.
Ansonsten hatte ich mir schon einiges um-/verstellen lassen. so scheint die maximale Scriptlaufzeit aktuell nicht grade klein zu sein. (die war damals auf 15 sekunden eingestellt und bei der Skalierung (Berechnung der Vorschaubilder und Co.) einige Fotos ging dann regelmäßig was schief. |
AW: .htaccess - Code nur auf einem Server ausführen
Hi!
Vielleicht verstehe ich dein Posting nicht, aber sagst du nicht, dass das mit AddHandler beim Hoster geht und nur auf deinem lokalen Testsystem nicht? Dann müsstest du ja nur lokal bei dir was drehen... Liebe Grüße, Frederic |
AW: .htaccess - Code nur auf einem Server ausführen
Das AddHandler geht beim Hoster, aber lokal nicht.
(auf'm Server läuft PHP als CGI und hier/lokal als MOD) Das <Directory und <DirectoryMatch läuft (noch) auf beiden Servern nicht. |
AW: .htaccess - Code nur auf einem Server ausführen
Zitat:
Linux und Scirptsprachen sind wohl nichts für unseren himi. :roll: Directory und DirectoryMatch funktionieren nunmal nicht in htaccess Dateien. Das geht nur in der Server-Konfiguration selbst. Liebe Grüße, Valle |
AW: .htaccess - Code nur auf einem Server ausführen
Zitat:
Der nötige Befehl ist ja schließlich erlaubt, nur daß er eben nur auf dem Webserver ausgeführt werden soll. Darum wäre es schön, wenn man in der .htaccess sagen kann "diesen Code bitte nur dort ausführen" ... so ähnlich wie es eben mit DirectoryMatch der Fall gewesen wäre. DirectoryMatch macht ja eigentlich überhaupt nichts, außer abzufragen in welchem Verzeichnis der darin enthaltene Code ausgeührt werden soll. Durch das unterschiedliche Rootverzeichnis wäre das ja gegangen, da sich so die absoluten Verzeichnissnamen unterscheiden. Da ich eben durch einen automatischen Upload in beiden Servern die selben Dateien hab. |
AW: .htaccess - Code nur auf einem Server ausführen
Schau doch einfach in die Apache Doku :zwinker:
|
AW: .htaccess - Code nur auf einem Server ausführen
Zitat:
Bei RewriteRule schreibst'e ein RewriteCond davor ... nur daß RewriteCond hier natürlich nicht funktioniert. |
AW: .htaccess - Code nur auf einem Server ausführen
also hier steht:
![]() addHandler darf in .htaccess verwendet werden. also legst du einfach in dem verzeichnis wo das php laufen soll, eine htaccess mit nur dem addhandler befehl. |
AW: .htaccess - Code nur auf einem Server ausführen
Das wollte ich ja, nur mag mein lokaler Testserver diesen Befehl dann nicht, da PHP dort anders eingebunden ist (CGI <> ApacheMOD).
Wie gesagt, beide Server haben die selben Dateien drauf. Wenn der lokale Testserver soeine .htaccess findet, dann werden dort die .php-Dateien garnicht mehr ausgeführt und direkt zum Download angeboten. Drum soll ja der Befehl auch nur auf dem Webserver ausgeführt werden. |
AW: .htaccess - Code nur auf einem Server ausführen
Hi!
Wäre es nicht einfacher, dein lokales Testsystem umzustellen? Liebe Grüße, Frederic |
AW: .htaccess - Code nur auf einem Server ausführen
Dann definiere auf den Systemen Variablen und Frage diese in der .htaccess ab.
Bei Bedarf führst du dann die Befehle aus. |
AW: .htaccess - Code nur auf einem Server ausführen
Zitat:
|
AW: .htaccess - Code nur auf einem Server ausführen
Hi!
Das ist aber oftmals nicht möglich, weil die Installation ja nicht für dich alleine ist (es klingt für mich nach einem SharedHosting-Server). Außerdem bin ich der Meinung, dass ein lokales Testsystem dem Produktiv-System so ähnlich wie möglich sein sollte. Liebe Grüße, Frederic |
AW: .htaccess - Code nur auf einem Server ausführen
Zitat:
|
AW: .htaccess - Code nur auf einem Server ausführen
Jupp, bin nicht alleine auf dem Shared-Server.
@fkerber: der versteht ja PHP, allerdings standardmäßig halt PHP 4. Über Dateien mit der Endung .php5 oder eben das AddHandler (eher ChangeHandler) kann man das umstellen. Durch das AddHandler wären dann also die "wichtigen" Teile für meine Ansprüche vergleichbar genug. Das lokale System entspricht in etwa dem geplanten neuen "Server" mit PHP 5.3. Aktuell ist es nur ein 5.2.4, aber auch da läuft der PHP-Code (mit 2 kleinen Anpassungen, welche ich aber via PHP unterscheiden kann). Und Testsystem ist wörtlich gemeint: Es ist ein portabler Apache 2.2, welcher aktuell mit PHP 5.3, MySQL 5.1 und PHPMyAdmin ausgestattet ist. (und nein, es ist nicht XAMPP, sondern Mowes) |
AW: .htaccess - Code nur auf einem Server ausführen
Dort wird er keinen Zugriff auf die Konfig haben (gehosteter Server)
|
AW: .htaccess - Code nur auf einem Server ausführen
Ist es denn so schwer in die "httpd.conf" die Zeile "AllowOverride FileInfo" hinzuzufügen? :gruebel: Ich kann zwar auf Anhieb nicht sagen, ob sich das mit mod_php5 verträgt, aber ein Versuch ist es wohl wert...
Liebe Grüße, Valle |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz