Yosemite로 업그레이드 한 후 Mac 웹 서버가 작동하지 않습니다. apachectl
터미널에 입력 하면 다음과 같이 나타납니다.
httpd: Syntax error on line 527 of /private/etc/apache2/httpd.conf: Syntax error on line 8 of /private/etc/apache2/other/+php-osx.conf: Cannot load /usr/local/php5/libphp5.so into server: dlopen(/usr/local/php5/libphp5.so, 10): Symbol not found: _unixd_config\n Referenced from: /usr/local/php5/libphp5.so\n Expected in: /usr/sbin/httpd\n in /usr/local/php5/libphp5.so
입력 한 sudo apachectl [re]start
것처럼 아무 일도 일어나지 않고 다시 입력하면 이미 실행 중이라고 표시됩니다. 또한 웹 공유 환경 설정 창이 설치되어 있고 ( http://clickontyler.com/web-sharing/ ) 스위치를 끄기에서 켜기로 튕기면 스위치가 켜기 위치에 있어도 여전히 꺼져 있다고 표시됩니다 .
어떤 파일을보고 싶습니까? 이 문제를 해결해야합니다.
답변
또한 Yosemite 설치 프로그램은 전체 /private/etc/apache2/httpd.conf 파일을 새로운 기본 Apache 2.4 구성 파일로 덮어 씁니다.
예를 들어, Listen
지시문이 추가 된 경우 지시문이 사라지고 다시 추가해야합니다. 예 :
Listen 127.0.0.1:81
다음 파일에서 이전 구성을 찾았지만 2.2와의 차이로 인해 http.conf 파일로 직접 복사해서는 안됩니다.
/private/etc/apache2/httpd.conf~ 이전
http://httpd.apache.org/docs/2.4/upgrading.html에 업그레이드 안내서가 있습니다.
이전에 포함 된 추가 구성 파일이 여전히 포함되어 있는지 확인한 후 다음 명령으로 구성을 테스트하십시오.
sudo apachectl configtest
답변
이 문제는 Yosemite가 최신 버전의 Apache (2.4)를 설치하는 반면 이전 버전의 Mac OS X은 Apache 버전 2.2를 사용했기 때문에 발생합니다.
오류로 인해 Apple에서 제공 한 표준 버전의 PHP가 아니라 liip.ch에서 제공 한 다른 버전의 PHP를 사용하고있는 것 같습니다. 위에서 Nuttyx에서 제안한대로 # 기호를 제거하면 Apple 버전의 php (5.5.14)가로드됩니다. liip에서 제공 한 버전을 계속 실행하려면 Apache 2.4에서 제대로로드되도록 다시 설치해야합니다. 자세한 설명은 여기를 참조하십시오 : ( http://blog.liip.ch/archive/2014/06/11/php-osx-available-for-os-x-10-10-yosemite.html )
NB 가상 호스트를 사용하는 경우 구성 파일을 약간 변경해야합니다. 특히 다음을 변경해야합니다.
2.2 구성 :
Order allow,deny
Allow from all
2.4 구성 :
Require all granted
답변
당신이이 문제를 해결할 수 있음을 보인다 제거 을 #
에 다음 줄의 beggining에서 /etc/apache2/httpd.conf
파일 :
LoadModule php5_module libexec/apache2/libphp5.so
답변
인수없이 ‘sudo apachectl’을 실행하면 conf 파일의 문제점이 표시됩니다. 필자의 경우 php를 업그레이드하면 문제가 해결되었습니다.
curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6
그 후 Apache가 다시 실행되지만 가상 호스트를 재구성해야했습니다.
답변
위의 질문에 답했지만 다음과 같은 오류가 발생할 가능성이 있습니다.
/private/etc/apache2/httpd.conf: Cannot load /usr/libexec/apache2/mod_XYZ.so into server: dlopen(/usr/libexec/apache2/mod_XYZ.so, 10): image not found
위의 이름으로 참조되고 찾을 수없는 심볼릭 링크를 만든 경우에 발생할 수 있습니다. 해결하려면 실제 파일의 절대 경로를 제공하고 제공되는 심볼릭 링크 파일 이름과 동일한 경로를 제공하는 기호 링크를 작성하십시오.