>  기사  >  PHP 프레임워크  >  Mac에서 Swoole을 컴파일하고 설치할 때 .h 파일이 존재하지 않는 문제에 대한 해결 방법

Mac에서 Swoole을 컴파일하고 설치할 때 .h 파일이 존재하지 않는 문제에 대한 해결 방법

谨言慎行
谨言慎行원래의
2020-11-05 14:27:312353검색

머리말

1. 사실 설치 과정이 이렇게까지 될 줄은 정말 예상도 못했어요 음... 어떻게 표현하자면 어렵다고 하면 사실 어렵지 않은데 꽤 역겹고, 성격도 Mac의 기기 자체 환경으로 인해 발생하는 다양한 문제와 일부 파일이 자동으로 로딩되지 않습니다.

2. 그리고 이런 질문은 정보가 정말 거의 없으니 기록해두세요.


기본 환경


및 Xcode가 설치되지 않았습니다.
로컬 버전은 PHP 버전 7.3과 함께 제공됩니다.
로컬 환경 구성 도구는 PHP 개발 환경의 Mac 버전인 MxSrvs를 사용합니다. 도구 공식 웹사이트: http://www.xsrvs.com/ 도구는 작지만 모든 필수 요소를 갖추고 있으며 개발에 충분합니다.

주요 문제

1. PHP의 헤더 파일을 찾을 수 없습니다

2 Openssl의 헤더 파일을 찾을 수 없습니다(오류 메시지는 PHP의 헤더 파일과 유사합니다)

준비 작업

공식 웹사이트 요구 사항

여기서 한 가지 더 말씀드리고 싶은 점은 공식에서 autoconf의 버전 수 이상이 필요한지 명시하지 않았지만 컴파일하고 설치할 때 2.68 이상이 필요하다는 것입니다.

Git에서 소스 코드 패키지를 다운로드다운로드 주소, 내가 다운로드한 것은

설치 과정

로컬이기 때문에 다운로드한 패키지를 CD 앞에 아무것도 쓰지 않고 콘솔 디렉터리에 직접 넣습니다. 디렉토리 또는 이와 유사한 것을 선택한 후 다음 코드를 실행합니다. 도구에서 PHP 버전으로 컴파일하고 싶기 때문에 도구에서 제공하는 것을 사용합니다phpzie.

/Applications/MxSrvs/bin/php/bin/phpize./configure \--enable-openssl \--enable-http2  \make && sudo make install

당연히 문제 1이 발생했습니다. Baidu나 Bing 모두 이 문제와 관련된 것을 찾지 못했습니다. 그러다가 몇몇 그룹 친구들에게 물어보니 어떤 사람들은 버전이 너무 높아서 Swoole이 가장 적합하다고 말했습니다. 버전은 7.2 버전입니다.

결국 질문의 본질을 지적한 답변이 저에게 영감을 주었습니다. 일반적인 답변은 macOs 10.10 이상 버전부터 Mac에 포함된 PHP 버전이 일부 폴더를 취소했다는 의미입니다. 함께 제공되는 PHP 컴파일 및 설치에 필요한 파일은 없습니다.很 그 이유를 알고 보면 결국 우리가 개발한 것들이 적지 않기 때문에 시스템 환경 변수에 동적으로 대응하는 방법만 고려하면 됩니다. 이전에 시스템 환경변수 경로를 설정한 적이 있어서 약간의 감회가 있어서 환경변수 설정 방법을 알아봤습니다.

실제로는 .bash_profile



을 통해 환경 변수를 설정하지만, 다시 시작한 후에는 매번 명령줄에

source ~/.bash_profile

를 입력해야 적용되기 때문에 Mac을 사용하면 더 번거롭습니다. .zshrc 파일을 자동으로 로드합니다. 파일 끝에

source ~/.bash_profile

를 추가하여 매번 수동으로 입력할 필요가 없도록 하는 메커니즘입니다. 환경 변수를 동적으로 설정하는 목적을 달성합니다.


이 시점에서 첫 번째 문제가 해결되었습니다.
두 번째 설치를 계속하면 두 번째 문제가 발생합니다. 이 문제를 해결하는 방법은 비교적 간단합니다.

실제로 발생하는 문제는 모두 Mac과 함께 제공되는 소프트웨어에 이 .h 헤더 파일이 없기 때문에 발생합니다. 따라서 이러한 문제는 도구에 바인딩된 변수를 통해 발생합니다. 변경되는 환경 변수를 구현하는 것은 이를 처리하는 영리한 방법입니다. 논리적으로 말하면 openssl의 이 확장은 여러 곳에서 사용되므로 시스템의 전체 환경에 설치됩니다.

openssl을 설치하기 전에 먼저 Xcode를 설치해야 하는데 이 단계를 건너뛰지 않았습니다. Mac의 많은 환경 변수가 Xcode 파일 디렉터리에 연결되어 있는 것 같습니다. 하지만 설치 후에는 무시할 수 없습니다. openssl을 다시 설치합니다. 명령줄 입력

brew install openssl

이미 존재하는 것으로 감지되면 다시 설치하고 실행하라는 메시지가 표시됩니다

brew reinstall openssl@1.1


其中有一句,就是让把这个添加到

If you need to have openssl@1.1 first in your PATH run:  echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc

把这个也添加之前修改过的 .zshrc 文件即可。
接下来就是重头戏了。说白了就是简单的粘贴复制,把 openssl 的文件夹,路径为

/usr/local/Cellar/openssl@1.1/1.1.1h/include/openssl

复制到

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

目录下即可
至此,第二个问题解决。

然后再运行编译 Swoole ,等待编译完成就可以了

成果


打完收工!

위 내용은 Mac에서 Swoole을 컴파일하고 설치할 때 .h 파일이 존재하지 않는 문제에 대한 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.