MacOs 安裝擴充套件錯誤列表

laravel_lost發表於2020-05-23

作業系統 MacOs 10.15.4
整理今日安裝php擴充套件遇到的問題

1、could not find php.h
2、Operation not permitted
3/usr/include: Read-only file system

以上問題都是由於無腦查詢安裝擴充套件方法,不理解實際運用導致的問題,其實道理很簡單,都是由於macOS Catalina 這個SIP(System integrity Protection-系統完整性保護)導致,同時還有就是系統自帶的php的include目錄引發的一系列問題,具體的問題在網上可以搜尋到很多。
先關閉SIP保護,然後再安裝擴充套件

    # 檢視狀態
    csrutil status 
    # 重啟電腦  Cmd+R開機啟動
    # 進命令列 關閉SIP保護
    csrutil disable
    #再檢視狀態 確保關閉 重啟電腦

以安裝swoole擴充套件為例

1、下載原始碼包swoole-4.5.1
2、解壓縮目錄 完成後目錄名成swoole-src-4.5.1

    tar -zxvf swoole-src-4.5.1.tar.gz

3、進入目錄

    cd swoole-src-4.5.1

4、檢視SDK工作目錄(這一步需要xcode支援,一般系統預設安裝,在此不盡興展開)[https://bbqsoftwares.com/blog/xdebug-catalina#installation-of-xdebug-on-macos-catalina-10-15]

    xcrun --show-sdk-path

=>

    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk

5、建立軟連線(根據上面的實際目錄進行連結)

    ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/include /usr/include

6、拷貝 phpize 和 php-config 至此工作目錄

    sudo cp /usr/bin/phpize ./
    sudo cp /usr/bin/php-config ./

7、修改phpize和php-config
vim 編輯phpize 和 php-config 查詢includedir 所在行修改includedir為剛剛建立軟連線的目錄,根據自己就實際的目錄進行修改
phpize

  4    prefix='/usr'
  5 datarootdir='/usr/php'
  6 exec_prefix="`eval echo ${prefix}`"
  7 phpdir="`eval echo ${exec_prefix}/lib/php`/build"
  8 includedir="`eval echo ${prefix}/local/include/include`/php"

php-config

  9 include_dir="${prefix}/local/include/include/php"

8、執行phpize命令

    ./phpize

9、執行

    ./configure 

10、執行make

    make
執行完成會在當前目錄下的modules目錄生成swoole.so動態連結檔案

11、執行make install

    make install 

這一步會報錯沒關係,執行就好,這裡摘自別人的解釋
[Again, this command will fail because it can’t move the extension to the right place. SIP will prevent it. But no worries, we’ll take care of that manually at the next step. make install is still required as it will sign the *.so file.]

12、建立php extension資料夾,並將swoole.so拷貝至extension目錄

    sudo mkdir -p /usr/local/php/extensions
    sudo cp modules/swoole.so /usr/local/php/extensions/

13、修改php.ini

[swoole]
extension=/usr/local/php/extensions/swoole.so

14、重啟php-fpm

15、檢視擴充套件

    php -m|grep swoole

或者 phpinfo()檢視

本次問題總結 在於MacOs 10.15.4系統下出現的情況的解決方案,僅供參考,此係統下的擴充套件安裝都可以參考這種解決方法。
參考文件
Installation of Xdebug on MacOS Catalina 10.15
macOS Catalina 下安裝PHP Redis擴充套件作業系統 MacOs 10.15.4
整理今日安裝php擴充套件遇到的問題

1、could not find php.h
2、Operation not permitted
3/usr/include: Read-only file system

以上問題都是由於無腦查詢安裝擴充套件方法,不理解實際運用導致的問題,其實道理很簡單,都是由於macOS Catalina 這個SIP(System integrity Protection-系統完整性保護)導致,同時還有就是系統自帶的php的include目錄引發的一系列問題,具體的問題在網上可以搜尋到很多。
先關閉SIP保護,然後再安裝擴充套件

    # 檢視狀態
    csrutil status 
    # 重啟電腦  Cmd+R開機啟動
    # 進命令列 關閉SIP保護
    csrutil disable
    #再檢視狀態 確保關閉 重啟電腦

以安裝swoole擴充套件為例

1、下載原始碼包swoole-4.5.1
2、解壓縮目錄 完成後目錄名成swoole-src-4.5.1

    tar -zxvf swoole-src-4.5.1.tar.gz

3、進入目錄

    cd swoole-src-4.5.1

4、檢視SDK工作目錄(這一步需要xcode支援,一般系統預設安裝,在此不盡興展開)[https://bbqsoftwares.com/blog/xdebug-catalina#installation-of-xdebug-on-macos-catalina-10-15]

    xcrun --show-sdk-path

=>

    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk

5、建立軟連線(根據上面的實際目錄進行連結)

    ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/include /usr/include

6、拷貝 phpize 和 php-config 至此工作目錄

    sudo cp /usr/bin/phpize ./
    sudo cp /usr/bin/php-config ./

7、修改phpize和php-config
vim 編輯phpize 和 php-config 查詢includedir 所在行修改includedir為剛剛建立軟連線的目錄,根據自己就實際的目錄進行修改
phpize

  4    prefix='/usr'
  5 datarootdir='/usr/php'
  6 exec_prefix="`eval echo ${prefix}`"
  7 phpdir="`eval echo ${exec_prefix}/lib/php`/build"
  8 includedir="`eval echo ${prefix}/local/include/include`/php"

php-config

  9 include_dir="${prefix}/local/include/include/php"

8、執行phpize命令

    ./phpize

9、執行

    ./configure --with-php-config=./   

10、執行make

    make
執行完成會在當前目錄下的modules目錄生成swoole.so動態連結檔案

11、執行make install

    make install 

這一步會報錯沒關係,執行就好,這裡摘自別人的解釋
[Again, this command will fail because it can’t move the extension to the right place. SIP will prevent it. But no worries, we’ll take care of that manually at the next step. make install is still required as it will sign the *.so file.]

12、建立php extension資料夾,並將swoole.so拷貝至extension目錄

    sudo mkdir -p /usr/local/php/extensions
    sudo cp modules/swoole.so /usr/local/php/extensions/

13、修改php.ini

[swoole]
extension=/usr/local/php/extensions/swoole.so

14、重啟php-fpm

15、檢視擴充套件

    php -m|grep swoole

或者 phpinfo()檢視

本次問題總結 在於MacOs 10.15.4系統下出現的情況的解決方案,僅供參考,此係統下的擴充套件安裝都可以參考這種解決方法。
參考文件
Installation of Xdebug on MacOS Catalina 10.15
macOS Catalina 下安裝PHP Redis擴充套件

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章