Nachdem ich den Anweisungen im Benutzerhandbuch gefolgt bin, kann ich das Testskript nicht über die Befehlszeile ausführen.
Mein Controller befindet sich unter /var/www/mysite/application/controllers/
class Tools extends CI_Controller { public function message($to = 'World') { echo "Hello {$to}!".PHP_EOL; } }
In einem Browser, auf den ich zugreifen kann
http://mysite/tools/message/ben
Diese Funktion gibt „Hallo Ben“ korrekt aus
Vom Terminal aus sollte ich Folgendes ausführen können:
$ php index.php Tool-Nachricht „Ben“
Mein Terminal sollte Folgendes drucken: „Hallo Ben“
Allerdings erhalte ich die folgende Fehlermeldung:
Schwerwiegender PHP-Fehler: Klasse „CI_Controller“ nicht in /var/www/mysite/system/core/CodeIgniter.php in Zeile 233 gefunden
Mein Server ist Standard-Ubuntu-LAMP. Codeigniter ist ebenfalls Standard und ich habe kein Problem damit, Nicht-CI-Skripte über die Befehlszeile auszuführen.
Mein PHP ist nur in /usr/bin/php <-- installiert. Dieser Artikel weist auf das Problem hin, CI direkt von usr/bin/php auszuführen. Ich verwende jedoch keinen gemeinsam genutzten PHP-Dienst und verstehe nicht, wie das funktioniert beeinflussen PHP Wie die Ausführung von CI-Skripten einen Unterschied macht.
Vielen Dank für Ihre Hilfe im Voraus.
要解决错误“找不到类'CI_Controller'”,请尝试转到
Application -> Config -> database.php
,然后检查数据库详细信息,例如hostname、username、password和database。已解决!(部分)问题是CodeIgniters错误日志记录。
在application/config/config.php中,我修改了以下配置属性:
这将禁用日志记录,并允许
$ php index.php
执行。如果有人能解释为什么CI只在CLI PHP上显示此错误-可能会帮助其他遇到此问题并需要通过错误日志记录解决的人。