Ответ 1
Это означает, что ваш сервер не может подключиться к внешнему миру
Это, вероятно, ничего не изменит, учитывая проблемы DNS
Итак, если у вас есть разрешение, попробуйте изменить серверы имен в файле /etc/resolv.conf на другие серверы имен.
Я пытаюсь загрузить изображение с сервера с помощью php script на моем сайте на сервере xampp.
Изображение загружается с помощью функции file_get_contents.
PHP-код для загрузки на сервере:
if(isset($_GET['path']) && isset($_GET['username'])) {
echo "path:".$_GET['path'];
$temp = explode(".", $_GET['path']);
$extension = end($temp);
$fname="images/".$_GET['title'];
$filenameIn = $_GET['path'];
$filenameOut = "" . $fname;
$contentOrFalseOnFailure = file_get_contents($filenameIn);
$byteCountOrFalseOnFailure = file_put_contents($filenameOut,$contentOrFalseOnFailure);
}
Но я получаю эту ошибку:
Предупреждение: file_get_contents(): php_network_getaddresses: getaddrinfo не удалось: имя или услуга, неизвестные в /opt/lampp/htdocs/xampp/project/upload _art.php в строке 19
Предупреждение: file_get_contents (http://app6.pixlr.com/_temp/528afa6e2f7cc6a5b1000101.jpg): не удалось открыть поток: php_network_getaddresses: getaddrinfo не удалось: Имя или услуга, не известные в /opt/lampp/htdocs/xampp/project/upload _art.php в строке 19
Я проверил все опубликованные ответы здесь, но никто, кажется, не решил проблему. Пожалуйста, помогите!
Это означает, что ваш сервер не может подключиться к внешнему миру
Это, вероятно, ничего не изменит, учитывая проблемы DNS
Итак, если у вас есть разрешение, попробуйте изменить серверы имен в файле /etc/resolv.conf на другие серверы имен.
Должно быть так же httpd разрешено подключаться наружу. Проверьте политику selinux. это помогает мне решить проблему соединения:
setsebool -P nis_enabled 1
setsebool -P httpd_can_network_connect 1
Вот советы, если вы используете Docker env для своего веб-приложения. У меня была такая же проблема, когда я использовал docker php image, добавил параметры dns в yml файле решил мою проблему.
Докер-compose.yml
version: '2'
services:
webserver:
build: ./docker/webserver
image: my_webapp
dns: 8.8.8.8
dns_opt:
- use-vc
- no-tld-query
ports:
- 80:80
- 443:443
volumes:
- ./:/var/www/html
В отношении одного из комментариев @DUzun и тех, кто, как я, знаком с сервером в целом, но не специализируется в области компьютерных наук, я исправил проблему в Linux/Centos6 (Plesk Onyx) следующим образом:
1) Открытие /etc/resolv.conf
(мой файл был пуст)
2) Добавлено:
nameserver 8.8.8.8
nameserver 8.8.4.4
options rotate
options timeout:3
Надеюсь, это поможет кому-то там.
во-первых, и до того, как все будет в курсе подключения к Интернету
Если вы используете имя вместо IP-адреса в вашем вызове smtp_host fsockopen(), и ваш сервер не может преобразовать это имя в IP-адрес. Если возможно, выясните IP-адрес сервера, к которому вы пытаетесь подключиться, и используйте его вместо этого. Надеюсь, что так будет хорошо. пример
$config = Array(
'protocol' => 'smtp',
'smtp_host' => '166.62.73.4', // mail.servername.com
'smtp_port' => 587,
'smtp_timeout' => '7',
'smtp_user' =>'[email protected]',
'smtp_pass' => 'password',
'_smtp_auth' => false,
'mailtype' => 'html',
'charset' => 'iso-8859-1',
'crlf' => '\r\n',
'newline' => "\r\n"
);