PHP 7.3.8. MacOS Catalina 10.15의 ZIP 확장

PHP 7.3.8. MacOS Catalina 10.15의 ZIP 확장

ZIP 확장자를 직접 컴파일하여 MacOS Catalina 10.15에 내장된 PHP를 사용하려고 합니다.

새로운 MacOS Catalina에서는 phpize도구 내부에 PHP 라이브러리에 대한 잘못된 경로가 포함되어 있으므로 더 이상 사용할 수 없습니다. 볼륨이 /usr읽기 전용으로 마운트되어 이전에 사용된 모든 방법이 유효하지 않게 됩니다.

설치했습니다엑스코드 11앱스토어에서.

phpize그런 다음 Xcode를 데스크탑에 복사하여 참조하는 또 다른 것을 만들었습니다.

cp /usr/bin/phpize ~/Desktop/

그런 다음 편집을 위해 열었습니다.vim

vim ~/Desktop/phpize

8행을 다음과 같이 수정했습니다.

includedir = "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php"

그런 다음 다운로드PHP-7.3.8, MacOS Catalina 10.15에 내장된 동일한 PHP 버전입니다.

다운로드 폴더에 있는 아카이브 파일의 압축을 푼 후 터미널을 해당 폴더까지 열었습니다.

cd ~/Downloads/php-7.3.8/ext/zip

안으로 들어가면 구성할 ZIP 확장을 준비하기 위해 사용자 정의된 phpize를 시작합니다.

~/Desktop/phpize

이제 확장을 구성할 수 있습니다. 필수 경로에 대한 추가 경로로 구성을 시작했습니다.zlib

sudo ./configure --with-zlib-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/

다음 단계는 컴파일하고 설치하는 것이지만 여전히 오류가 발생합니다.php.h file not found

make && make install

어쩌면 어딘가에 여전히 잘못된 길이 있을 수도 있습니다.

답변1

를 사용하여 내부에 있는 오른쪽을 CPPFLAGS가리킬 수 있습니다 .make/usr/includeXcode.app

INCLUDE_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include

make CPPFLAGS="-I${INCLUDE_PATH}/php -I${INCLUDE_PATH}/php/main -I${INCLUDE_PATH}/php/TSRM -I${INCLUDE_PATH}/php/Zend -I${INCLUDE_PATH}/php/ext -I${INCLUDE_PATH}/php/ext/date/lib"

또한 편집 시 phpize법적 기호( ) 주위에 공백이 있어서는 안 됩니다 =.

편집하다

후속 댓글을 해결하기 위해 make install확장 프로그램을 올바른 위치로 이동할 수 없기 때문에 실패합니다. 그러나 파일에 서명하므로 명령을 실행해야 합니다 *.so.

일단 make install실행되면 실행 파일을 안전한 곳으로 옮깁니다. 나는 사용한다 /usr/local/php/extensions.

예를 들어 ( 이름을 확장 이름으로 Xdebug변경 ):.so

sudo mkdir -p /usr/local/php/extensions
sudo cp $(php-config --extension-dir)/xdebug.so /usr/local/php/extensions

그런 다음 하단에 필요한 줄을 추가하여 확장 기능을 활성화하도록 PHP 구성을 편집합니다 sudo nano /etc/php.ini(zip의 정확한 줄은 모릅니다).

이 작업이 완료되면 내장 서버를 다시 시작하여 다음을 확인하세요.

sudo apachectl restart

관련 정보