
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/include
Xcode.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