추가 읽기

추가 읽기

Hyper-V에서 실행되는 Fedora 25 VM이 있습니다. 이 가상 머신은 Apache에서 실행되는 PHP 애플리케이션에 사용됩니다. 최신 상태이며 모든 작업을 수행하고 있습니다.

원격 웹사이트에 연결하는 간단한 PHP 스크립트는 Apache에서 실행 시 실패하지만 명령줄에서는 정상적으로 실행됩니다.

$host='tcp://www.shinyandnew.ca/';
$socket = stream_socket_client($host, $errno, $errstr, 10, STREAM_CLIENT_CONNECT, stream_context_create());

if (!$socket) {
    print ("Unable to connect to ${host}: ${errno} ${errstr}\n");
} else {
    print ("Connected to ${host} successfully \n");
  fclose($socket);
}

오류는 다음과 같습니다

php_network_getaddresses: getaddrinfo 실패: 알 수 없는 이름 또는 서비스

그러나 가상 머신은 네트워크에 액세스할 수 있으며 PHP 명령줄에서는 모든 것이 잘 작동합니다. 이는 Apache 문제임을 나타냅니다. 또한: Apache를 다시 시작하면 문제가 사라집니다.

그래서 내 질문은 다음과 같습니다

Apache를 다시 시작한 후 이름을 올바르게 확인하도록 하려면 어떻게 해야 합니까? 네트워크가 변경될 때마다 Apache를 다시 로드해야 하는 경우 이 설치(개발 워크스테이션)에 이것이 허용됩니까? 시작 시 작동하도록 자동으로 트리거하려면 어떻게 해야 합니까? 이를 수행하는 체계적인 방법이 있습니까?

답변1

다시 로드하거나 다시 시작할 필요가 없습니다. /etc/resolv.conf부트로더에서 이 작업을 수행하도록 작성된 프로그램이 완료될 때까지 Apache가 시작되지 않는지 확인하기만 하면 됩니다 . PHP 버그 추적기의 제안은 시스템 오버레이 파일을 사용하여 After=문제의 서비스 이름을 지정하는 확장을 추가하는 것입니다 httpd.service.

CD /etc/systemd/system/
설치 -m 0755 -d httpd.d
echo >> httpd.d/after.conf "[단위]"
echo >> httpd.d/after.conf "After=network.service systemd-networkd.service network-online.target"

추가 읽기

답변2

Apache 다시 로드 스크립트를 /etc/NetworkManager/dispatcher.d폴더에 넣습니다. 원천:무선 인터페이스가 시작된 후 Fedora 13에서 시작 시 데몬 실행

또는 Upstart conf에서 Apache 구성 다시 로드를 트리거합니다.

내 말은 이게 무슨 뜻이야

start on net-device-up- 하지만 이는 우분투에만 해당될 수 있습니다.

관련 정보