2016-09-22 5 views
-1

У меня есть этот код и ту же библиотеку 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 libary расположены на

C:\xampp\htdocs\mysql-monitor\ 

На VPS, они расположены на

/var/www/html/thsportsmassagetherapy.com/mysql-monitor/ 

ли это, вероятно, ошибка путь или проблема с моими настройками PHP?

+0

Какие у вас права на autoload.php? если вы можете вручную просмотреть файл, это может быть проблемой с правами. Сначала подумал ... – brad

+0

'require '/twilio-php/twilio/autoload.php';' поэтому используйте полный путь к серверу, затем 'require '/ var/www/html/twilio-php (или любую другую папку) .. .. '; 'так же, как вы упомянули о VPS. –

+0

Или .. относительная ссылка 'require './twilio-php/twilio/autoload.php'; 'Предполагая, что twillio-php находится в том же DIR, что и этот скрипт –

ответ

0

Чтобы устранить эту проблему, установите путь к 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, я все еще использую композитора.

Зачем работать так сложно, когда есть инструменты, которые облегчают этот процесс?

Смежные вопросы