Не могу включить файл на удаленный сервер

Моя проблема в том, что я не могу включить файл на удаленный сервер.

<?php
  echo "Including\n";
  require_once("http://xx.xxx.xxx.xx:8080/path/to/myfile.inc");
  echo "Done..\n";
?>

Сценарий завершается ошибкой в ​​функции require_once. Я запускаю сценарий с: php -d allow_url_include=On script.php, но чтобы убедиться, что я установил для allow_url_include и allow_url_fopen значение On в php.ini

Если я http://xx.xxx.xxx.xx:8080/path/to/myfile.inc в браузер, файл будет передан мне. Я также попытался включить другие удаленные файлы (на стандартный порт 80), но все равно не повезло

Что меня действительно смущает, так это то, что все работает с моих локальных компьютеров в моем офисе (mac, ubuntu), а не с наших серверов. Я проверил его на 2 разных серверах, виртуальном и выделенном. Я могу получить файл с помощью fopen().

2 ответа

Это можно сделать, установив allow_url_include в on на php.ini.

Но, как уже упоминалось в комментариях, это открывает

огромный

дыра в безопасности вашего приложения.

Require_Once следует использовать только для локальных файлов. Если вы хотите получить удаленный файл, используйте file_get_contents. Помните, что если вы пытаетесь включить php с такого удаленного сервера, это будет действительно небезопасно, или php будет выполняться на удаленном сервере.

Другие вопросы по тегам