Mac OS X 10.11(El Capitan)에 PHP 5.6.14를 어떻게 설치합니까?

Mac OS X 10.11(El Capitan)에 PHP 5.6.14를 어떻게 설치합니까?

최근 OS X Yosemite에서 El Capitan으로 업그레이드했는데 PHP를 다시 설치해야 했습니다. 그래서 php(버전 5.6.14)를 다운받고 파일 을 실행 ./configure한 후 sudo make. 그러나 그렇게 하면 다음 메시지와 함께 컴파일이 실패합니다.

ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [sapi/cli/php] Error 1

Mac OS X 10.9.5(Yosemite)에서는 이 메시지를 본 적이 없습니다.

이 메시지를 어떻게 해결합니까? SIP(시스템 무결성 보호)를 비활성화해 보았지만 소용이 없었습니다.

답변1

이 GitHub 문제 보고서에 따르면 Mac OS X 10.11(El Capitan)에서 PHP 5.6.11 베타를 빌드하는 것과 관련된 주요 문제는 libxml2. Homebrew의 경우 다음 brew link명령을 실행하는 것이 좋습니다.

brew link libxml2 --force

그러나 순수 소스 코드에서 컴파일하는 경우 어떻게 처리될지 100% 확신할 수 없습니다.

즉, 나는 이것에서 논의된 비슷한 문제를 발견했습니다.노코기리 요지—"libxml2가 바보라면 어떻게 해야 할까요?"라는 유쾌한 제목의 —다음과 같은 LibXML2 항목을 명시적으로 가리키는 단서가 있습니다.

--with-xml2-include=/usr/local/include/libxml2

하지만 물론 이는 Nokogiri의 구성 옵션에 대한 것입니다. 하지만 보면공식 PHP 문서다음을 설명합니다:

선택 사항--with-libxml-dir지시문은 위치를 지정하는 데 사용됩니다.libxmlPHP가 컴파일되는 시스템에서 그렇지 않으면 기본 위치만 스캔됩니다.

따라서 아래와 같이 경로가 설정된 명령 --with-libxml-dir에 추가하는 것으로 보인다는 것을 알면 작동합니다../configure

--with-libxml-dir=/usr/local/include/libxml2

즉,이 사람의 웹사이트에 좋은 튜토리얼이 있어요Mac OS X 10.10.5 및 Mac OS X 10.11에 대응하도록 업데이트된 Mac OS X에서 PHP 5.5.24를 컴파일하는 방법에 대해 설명합니다. 그리고 명령어를 보면 ./configure그 사람이 --with-libxml-dir=/usr. 정보는 PHP 5.5.24에 대한 것으로 표시되지만 PHP 5.6.14의 프로세스는 동일하지는 않더라도 유사해야 한다고 생각합니다. ./configure참조용 전체 명령은 다음과 같습니다 .

./configure '--prefix=/usr' \
  '--mandir=/usr/share/man' \
  '--infodir=/usr/share/info' \
  '--sysconfdir=/private/etc' \
  '--with-apxs2=/usr/sbin/apxs' \
  '--enable-cli' \
  '--with-config-file-path=/etc' \
  '--with-config-file-scan-dir=/Library/Server/Web/Config/php' \
  '--with-libxml-dir=/usr' \
  '--with-openssl=/usr' \
  '--with-kerberos=/usr' \
  '--with-zlib=/usr' \
  '--enable-bcmath' \
  '--with-bz2=/usr' \
  '--enable-calendar' \
  '--disable-cgi' \
  '--with-curl=/usr' \
  '--enable-dba' \
  '--with-ndbm=/usr' \
  '--enable-exif' \
  '--enable-fpm' \
  '--enable-ftp' \
  '--with-icu-dir=/usr' \
  '--with-ldap=/usr' \
  '--with-ldap-sasl=/usr' \
  '--with-libedit=/usr' \
  '--enable-mbstring' \
  '--enable-mbregex' \
  '--with-mysql=mysqlnd' \
  '--with-mysqli=mysqlnd' \
  '--without-pear' \
  '--with-pear=no' \
  '--with-pdo-mysql=mysqlnd' \
  '--with-mysql-sock=/var/mysql/mysql.sock' \
  '--with-readline=/usr' \
  '--enable-shmop' \
  '--with-snmp=/usr' \
  '--enable-soap' \
  '--enable-sockets' \
  '--enable-sysvmsg' \
  '--enable-sysvsem' \
  '--enable-sysvshm' \
  '--with-tidy' \
  '--enable-wddx' \
  '--with-xmlrpc' \
  '--with-iconv-dir=/usr' \
  '--with-xsl=/usr' \
  '--enable-zip'

답변2

특별히 최신 버전이 필요하지 않은 한, PHP 5.5.27은 OS X El Capitan과 함께 기본으로 제공됩니다.

LoadModule php5_module libexec/apache2/libphp5.sohttpd.conf 내부 행 ( sudo nano /etc/apache2/httpd.conf액세스에 사용) 앞의 주석 처리를 해제(# 제거)할 수 있습니다.

관련 정보