dedlfix: PHP-Skripte von Windows nach Linux portieren

Beitrag lesen

Tach!

Soweit sehe ich einen wesentlichen Unterschied: MariaDB als Ersatz für MySQL. Bist Du sicher, dass Deine mysql-Funktionen unter PHP reibungslos mit MariaDB zusammenarbeiten?

Ja. Es sind noch keine generellen Inkompatibilitäten der API bekanntgeworden.

Obwohl ich in Notpad++ bei allen Zeilenenden das CR rausgenommen habe. Die Kodierung steht auf UTF-8. Ist das so richtig? UTF-8 ist richtig. "Ohne BOM" wäre eine dazu nützliche Einstellung.

Da UTF-8 zu ASCII kompatibel ist und alle syntaxrelevanten Teile ASCII verwenden, gibt es kein generelles Problem, an dem die Kodierung schuld wäre.

Die CRs würde ich aber lassen. Unter Windows solltest Du immer CRLF als Zeilenenden haben, Linux kann das auch wunderbar verarbeiten.

Lediglich der Windows-Editor hat damit Probleme. Ansonsten kommt Windows nicht direkt mit den Zeilenenden in PHP in Berührung. PHP kann in beiden Welten mit beiden Arten umgehen, den Apachen stört es nicht. Die Empfehlung kann ich so nicht teilen. Im Zweifelsfall ist das CR störend. Beispielsweise, wenn man Shellscripts für Linux schreibt. Es ist aber ein sehr unwahrscheinlicher Anwendungsfall, dass man Scripts hat, die unter Windows im Apachen laufen und unter Linux in der Shell funktioniern sollen.

Konkret bekomme ich für fast jede Zeile die Meldung "Kommando nicht gefunden"

Es kann durchaus sein, dass die CR hier die Ursache sind, wenn man den sehr unwahrscheinlichen Fall doch probiert.

Wenn Du im Browser Deinen Apache kontaktierst? Welche "Internetadresse" gibst Du denn ein? http://localhost/? Und das führt im Fehlerlog (s.o.) zu "Kommando nicht gefunden"? Sehr seltsam das.

Wohl eher nicht, aber da er nicht genau sagt, was er konkret wie macht, kann man nur mehr raten als helfen.

Liegt es vielleicht am kopieren mit WinSCP. Hier ist Default:binary für das Transferformat eingestellt. Auch das sieht absolut richtig aus.

Das sieht eher komisch aus, weil das Zeilenenden-Umfummeln eine Spezialität von FTP ist und nicht von SSH/SCP.

Also: Was steht in der Fehlerlog-Datei (/var/log/apache2/error.log)?

Wenn PHP nicht auf die eine oder andere Weise in den Webserver eingebunden ist (und dann ein Fehler im PHP-Skript steckt), ist es aus der Sicht des Apachen kein Fehler, eine Datei ungesichtet und uninterpretiert auszuliefern.

dedlfix.