我有这个代码和相同的 twilio.php 库在本地(XAMPP)服务器和 VPS 上运行:
checkConnection.php
<?php
// Include Twilio PHP Library here
require '/twilio-php/twilio/autoload.php';
use Twilio\Rest\Client;
$sid = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // Your Account SID from www.twilio.com/console
$token = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // Your Auth Token from www.twilio.com/console
$client = new Twilio\Rest\Client($sid, $token);
$message = $client->messages->create(
'XXXXXXXXXXXXX', // Text this number
array(
'from' => 'XXXXXXXXXXXXX', // From a valid Twilio number
'body' => 'MySQL down!'
)
);
print $message->sid;
?>
代码在本地运行完美,但我的 VPS 输出以下错误:
PHP Warning: require(/twilio-php/twilio/autoload.php): failed to open stream: No such file or directory in /var/www/html/thsportsmassagetherapy.com/mysql-monitor/checkConnection.php on line 4
PHP Fatal error: require(): Failed opening required '/twilio-php/twilio/autoload.php' (include_path='.:/usr/share/php:/usr/share/pear') in **/var/www/html/thsportsmassagetherapy.com/mysql-monitor/checkConnection.php** on line 4
在本地,脚本和 twilio 库位于
C:\xampp\htdocs\mysql-monitor\
在 VPS 上,它们位于
/var/www/html/thsportsmassagetherapy.com/mysql-monitor/
这可能是路径错误还是我的 PHP 设置有问题?
要解决此问题,请正确设置 autoload.php 的路径。
例如,如果 autoload.php 位于 /usr/local/lib/myapp 中。
require '/usr/local/lib/myapp/autoload.php';
还可以设置 include_path。
例如,在您的 PHP 文件中,您可以这样做。
set_include_path('/usr/local/lib');
那么你可以代替上面的要求
require 'myapp/autoload.php';
或者你可以像我一样,使用像 Symfony 这样的应用程序框架,它使用 composer 来管理这些事情。即使我不使用 Symfony,我仍然使用 Composer。
既然有工具可以让这件事变得简单,为什么还要这么努力呢?