Mempersiapkan:
- CURL 7.32.0
- Apache 2.2.25
- PHP 5.5.4
Setiap kali saya mencoba untuk:
$ch = curl_init('www.google.com');
curl_exec($ch);
var_dump(curl_error($ch));
dalam PHP, saya mendapatkan:
Tidak dapat menyelesaikan host: www.google.com
Jika saya berubah menjadi curl_init('80.233.168.207')
(diselesaikan google.com), skrip dijalankan.
Padahal, berlari curl www.google.com
di CLI, saya mendapatkan 302 Moved
Halaman HTML, karena mengarahkan ulang ke situs yang dilokalkan (* .lv), tetapi tetap saja, itu berarti bahwa cURL berhasil dijalankan.
Saya telah melihat beberapa pertanyaan serupa (bukan pada SE), kebanyakan dari mereka mengatakan bahwa Apache dimulai sebelum atau bersamaan dengan Network Manager, karenanya tidak menerima informasi DNS. Sebagian besar pertanyaan memiliki jawaban yang menjelaskan, bahwa masalah ini dapat sementara diselesaikan / di-debug dengan menghentikan secara eksplisit, kemudian memulai daemon Apache (bukan restart / anggun-restart).
fsockopen
, file_get_contents
bekerja dengan sempurna, meskipun.
Tuan rumah virtual Apache saya:
<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>
Dan konfigurasi global hanya memiliki entri khusus untuk Listen 777
.
Ini dan ini , keduanya mengarah ke masalah DNS, jadi, saya pikir saya mungkin punya masalah dengan itu juga, ditambah, jelas terlihat seperti itu.
Saya telah mencoba dengan mengubah entri host virtual menjadi 0.0.0.0:777
dan konfigurasi lainnya tidak berhasil.
Bagaimana cara memperbaiki masalah ini?
80.233.168.207 www.google.com
di Anda/etc/hosts
Anda harus dapat mengonfirmasi bahwa ini adalah masalah DNS. Agak aneh bahwa perintah CLI Anda berhasil melakukan pencarian. FYI, kodenya berfungsi pada sayaApache
instalasi.