Настроить:
- cURL 7.32.0
- Apache 2.2.25
- PHP 5.5.4
Всякий раз, когда я пытаюсь:
$ch = curl_init('www.google.com');
curl_exec($ch);
var_dump(curl_error($ch));
в PHP я получаю:
Не удалось разрешить хост: www.google.com
Если я изменю на curl_init('80.233.168.207')
(решено на google.com), скрипт выполнится.
Хотя, запустив curl www.google.com
в CLI, я получаю страницу 302 Moved
HTML, из-за перенаправления на локализованный сайт (* .lv), но все же это означает, что cURL успешно выполнен.
Я видел несколько похожих вопросов (но не о SE), большинство из них говорили, что Apache запускается либо раньше, либо одновременно с Network Manager, поэтому не получает информацию DNS. На большинство вопросов есть ответы, объясняющие, что проблема может быть временно решена / отлажена путем явной остановки, а затем запуска демона Apache (вместо restart / graceful-restart).
fsockopen
, file_get_contents
работает безупречно, хотя.
Мой виртуальный хост Apache:
<VirtualHost *.777>
ServerAdmin stone@altas.lv
ServerName localhost
DocumentRoot "/srv/stone/public"
ErrorLog "/srv/stone/app/storage/logs/apache-errors.log"
CustomLog "/srv/stone/app/storage/logs/apache-custom.log" common
<Directory /srv/stone/public>
php_admin_value open_basedir /
# Pretty URL rewrites, better not to rely on .htaccess
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
# Prevent further overrides
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
А в глобальном конфиге просто есть специальная запись для Listen 777
.
Это и это, и то и другое приводят к проблеме с DNS, так что, думаю, у меня тоже могут быть проблемы с этим, плюс, похоже, это выглядит так.
Я попробовал изменить записи виртуального хоста на 0.0.0.0:777
и другие конфигурации безрезультатно.
Как мне исправить проблему?