2016-11-09 23 views
-1

voip.ms php apiで作業していますcliからphpスクリプトを実行したいのですが、端末のMacでうまく動作しますが、ubuntuサーバーでは失敗します。 ...php-cli require_once()はMacでうまく動作しません

スクリプト:

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

class.voipms.php

<? 
class VoIPms{ 
... 

エラーの初め

最初のそれはclass.voipms.phpから2000+行を吐き出し、その後

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

明らかにクラスがclass.voipms.phpであり、それは、CLIに印刷されますので、スクリプトがclass.voipms.phpを見つけることができますし、すべてが私のマックの端末からうまく動くので、私はむしろ混乱しています!

何か助けが素晴らしいだろう!

答えて

3

Ubuntuシステムでは、PHPショートタグ(ちょうど<?とフルタグ<?php)が無効になっている可能性があります。私は短いタグを使用しないことをお勧めします。なぜなら、完全なタグがどこでも有効になっているからです。有効になっていない場合は、あなたが説明しているものを正確に取得します。 PHPはファイルをコードとして認識せず、単にテキストとして吐き出します。

php.iniでショートタグを有効にできますが、私はそれを使用しないことをお勧めします。あなたはそれがどこでも可能であることに頼ることはできませんし、完全なものをタイプするのは難しいのではありません。短いタグを無効にしても、しばらくの間、短いエコータグ<?=を使用することもできます。

+0

これは今、class.voipms.phpファイルの中にクラスが見つからないという関数がありますが、私はMacからubuntuに向かうことは期待できません。 – JJD

+0

どのようなクラスが見つからないかによって異なる問題が発生します(組み込みユーザーと定義ユーザー)。 2つのコードとあなたのコードの違いは、おそらくインストールされている拡張機能だけです。それらが一致していれば、コードは実行されます。プラットフォーム固有のPHPはほとんどありません。そして、それは通常、ウィンドウといくつかの* nixシステムの間にしかありません。 –

+0

:-(それらはすべてユーザ定義です – JJD

0

指定されたクラスファイルが見つかりません。ファイルを指定する方法は、このスクリプトが実行されているディレクトリと同じディレクトリにあるか、またはPHPのディレクトリのいくつかにパスが含まれていることを期待しています。

おそらく、クラスファイルが本当にこのスクリプトと同じディレクトリにない場合は、さまざまな環境で異なるインクルードパスが設定されている可能性があります。

関連する問題