2016-11-09 3 views
-1

Ich arbeite mit der voip.ms php api Ich möchte ein PHP-Skript von der CLI laufen es funktioniert gut auf meinem Mac im Terminal, aber auf dem Ubuntu-Server schlägt es fehl ...php-cli require_once() fehlgeschlagen auf ubuntu funktioniert auf mac

das Skript:

<?php 
require_once("class.voipms.php"); 
$voipms = new VoIPms(); 
... 

der Anfang von class.voipms.php

<? 
class VoIPms{ 
... 

der Fehler

ersten spuckt es 2000+ Linien von class.voipms.php aus dann

PHP Fatal error: Class 'VoIPms' not found in /root/voipreg/check.php on line 3 

offensichtlich die Klasse in class.voipms.php und das Skript kann class.voipms.php finden, weil es auf die cli gedruckt wird und Alles läuft gut von Terminal auf meinem Mac so bin ich ziemlich verwirrt!

Jede Hilfe wäre toll!

Antwort

3

PHP Short Tags (nur <? vs die vollständige Tag <?php) sind wahrscheinlich auf dem Ubuntu-System deaktiviert. Ich würde vorschlagen, keine kurzen Tags zu verwenden, da sie nicht überall aktiviert sind, wie das vollständige Tag. Wenn nicht aktiviert, erhalten Sie genau das, was Sie beschreiben. PHP erkennt die Datei nicht als Code und spuckt sie einfach als Text aus.

Während Sie die kurzen Tags in php.ini aktivieren können, würde ich vorschlagen, es einfach nicht zu verwenden. Du kannst dich nicht darauf verlassen, dass es überall möglich ist, und es ist nicht so schwierig, einfach das Ganze zu tippen. Sie können das Kurzecho-Tag <?= auch mit deaktivierten Kurztags noch eine Weile verwenden.

+0

Das war es, jetzt habe ich Funktionen in der Datei class.voipms.php mit der Klasse nicht gefunden ist es gibt eine Menge Dinge, die ich erwarten sollte, nicht funktionieren von Mac zu Ubuntu? – JJD

+0

Klingt wie ein anderes Problem, das davon abhängt, welche Klassen nicht gefunden werden (eingebaut vs benutzerdefiniert). Die Unterschiede zwischen den beiden und Ihrem Code sind wahrscheinlich nur die installierten Erweiterungen. Wenn diese übereinstimmen, sollte der Code noch ausgeführt werden. Sehr wenig in PHP ist plattformspezifisch. Und das wäre normalerweise nur zwischen Windows und einem * nix-System. –

+0

:-(sie sind alle benutzerdefiniert – JJD

0

Die angegebene Klassendatei kann nicht gefunden werden. Die Art und Weise, die Datei anzugeben, erwartet, dass sie sich entweder in demselben Verzeichnis befindet, in dem dieses Skript ausgeführt wird, oder in einem der Verzeichnisse in Ihrem PHP-Pfad.

Möglicherweise haben Sie unterschiedliche Include-Pfade in den verschiedenen Umgebungen konfiguriert, wenn sich die Klassendatei wirklich nicht im selben Verzeichnis wie dieses Skript befindet.

Verwandte Themen