Я использовал phpoffice
функциональность обработки шаблонов с Laravel, и он работал на Ubuntu
, Windows
и Mac
. Функциональность перестала работать, когда я перешел на centos
сервер. Я понял, что phpoffice вызывал file_get_contents
, чтобы открыть файл шаблона, и он не работает.
Итак, начал тестировать функцию file_get_contents.
echo file_get_contents('http://my-server-ip-address/api/public/storage/templates/template.docx');
Ошибка,
ErrorException (E_WARNING)
file_get_contents(http://my-server-ip-address/api/public/storage/templates/template.docx): failed to open stream: Connection timed out
php .ini конфигурация,
allow_url_fopen = On // tried allow_url_fopen = 1 also
Пробовал,
user_agent = "PHP"
Я не могу изменить вызов функции на CURL
подход, поскольку это внутренне обрабатывается в phpoffice composer пакет. Есть ли решение для этого?
Я могу получить доступ к файлу прямо в браузере. Никаких проблем с этим.
Редактировать:
echo file_get_contents('http://my-ip/api/public/storage/templates/template.docx');
echo file_get_contents('http://my-domain/api/public/storage/templates/template.docx');
echo file_get_contents('https://www.google.com/');
echo file_get_contents('http://localhost/api/public/storage/templates/template.docx');
Здесь 1 и 2 не работают с того же сервера, на который указывает IP / домен, но работают с любыми другими системами, включая локальные.
Сводка
Та же проблема с wget
и CURL
.
Сервер не может найти себя, используя IP или домен, но другие системы могут взаимодействовать с сервером.
Сервер идентифицирует себя только как localhost
.