Skywalking PHP客戶端編譯安裝

becage發表於2020-11-20

其實就是一個PHP擴充套件,按照官方說明來安裝就行,
不要相信網上亂七八糟的說法,網上說需要安裝report client我搞了半天沒明白是啥,
問作者,作者回答不需要這玩意。
安裝skywalking擴充套件官方文件https://github.com/SkyAPM/SkyAPM-php-sdk/blob/master/docs/install.md
因為牆的原因,下載goole子模組會失敗,在此分享Protobuf、GRPC的原始碼百度網盤地址:連結:https://pan.baidu.com/s/1KA1F0syeVs9aGY_e9HZsQw 提取碼:01js 連結:https://pan.baidu.com/s/1XIkohUC3EVTEIyHCCx950w 提取碼:7oej,下載完成後,可以scp或者共享資料夾的方式傳到Linux機器
(順便說下windows解壓縮工具 7z 很好用)

ubuntu 18.04
PHP 7.2.24-0ubuntu0.18.04.7
gcc version 7.5.0
cmake 3.18
swoole 4.5.8
skywalking 4.1.1

注意gcc和cmake的版本,越高越好,太低會失敗

下文中$符號開始的命令表示需要執行的

Install Protobuf

$ sudo apt-get install autoconf automake libtool curl make g++ unzip
# 先下載protobuf檔案,我上文分享到百度網盤的,然後解壓執行下面的操作
$ cd protobuf
$ ./autogen.sh
$ ./configure
$ make -j$(nproc) # 此過程耗時
$ make check # 此過程耗時,有一個test FAIL也沒問題
$ sudo make install
$ sudo ldconfig # refresh shared library cache.

Install GRPC

$ sudo apt-get install build-essential autoconf libtool pkg-config cmake
# 先下載grpc檔案,我上文分享到百度網盤的,然後解壓執行下面的操作
$ cd grpc
$ mkdir -p cmake/build
$ cd cmake/build
$ cmake ../.. -DBUILD_SHARED_LIBS=ON -DgRPC_INSTALL=ON
$ make -j$(nproc) # 此過程耗時
$ sudo make install
$ make clean
$ sudo ldconfig

Install PHP Extension

$ cd ~
$ curl -Lo v4.1.1.tar.gz https://github.com/SkyAPM/SkyAPM-php-sdk/archive/v4.1.1.tar.gz
$ tar zxvf v4.1.1.tar.gz
$ cd SkyAPM-php-sdk-4.1.1
$ apt install php7.2-dev # 根據自己的php選擇版本
$ apt install libcurl4-gnutls-dev # 當make報錯curl不存在時安裝即可
$ phpize && ./configure && make && make install

如果報錯fatal error: curl/curl.h: No such file or directoryapt-get install libcurl4-openssl-dev

如果報錯configure: error: wrong gpr lib version or lib not found就重新安裝cmake,走上一步重新Install GRPC

$ sudo apt install build-essential libssl-dev
$ sudo apt remove --purge cmake
$ # find last stable release at https://github.com/Kitware/CMake/releases and download the source .tar.gz,eg:
$ wget https://github.com/Kitware/CMake/releases/download/v3.18.4/cmake-3.18.4.tar.gz
$ tar -zxvf cmake-3.18.4.tar.gz
$ cd cmake-3.18.4
$ ./bootstrap
$ make 
$ sudo make install
$ cmake --version
cmake version 3.18.4 CMake suite maintained and supported by Kitware (kitware.com/cmake).

$ php --ini 檢視php配置檔案,例如我的是 Loaded Configuration File: /etc/php/7.2/cli/php.ini 修改ini

$ vim /etc/php/7.2/cli/php.ini
; Loading extensions in PHP
extension=skywalking.so
; enable skywalking
skywalking.enable = 1
; Set skyWalking collector version (5 or 6 or 7 or 8)
;跟你的skywalking服務一般是skywalking8+elasticsearch7
skywalking.version = 8
; Set app code e.g. MyProjectName
skywalking.app_code = php-sky
; Set grpc address
skywalking.grpc=127.0.0.1:11800

此時如果php -m | grep s報錯curl擴充套件沒安裝,則apt install php7.2-curl安裝自己PHP版本的,然後就成功看到了

$ php -m | grep sky
skywalking

最簡單大概就是
官網下載elasticsearch7的tar.gz包,啟動 ./bin/elasticsearch
官網下載skywalking-for-es7的包,修改配置storage為es7,啟動./bin/start.sh

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

相關文章