php.ini
.sudo apt install gcc make llvm-13-dev libclang-13-dev protobuf-c-compiler
apk add gcc make musl-dev llvm15-dev clang15-dev protobuf-c-compiler
The officially recommended way to install Rust is via rustup
.
But because the source code toolchain is override by rust-toolchain.toml
, so if you don't need multi version Rust, we recommend to install Rust by these way:
Install through OS package manager (The Rust version in the source must be >= 1.65).
Through standalone installers.
For linux x86_64 user:
wget https://static.rust-lang.org/dist/rust-1.65.0-x86_64-unknown-linux-gnu.tar.gz tar zxvf rust-1.65.0-x86_64-unknown-linux-gnu.tar.gz cd rust-1.65.0-x86_64-unknown-linux-gnu ./install.sh
Through rustup
but set default-toolchain
to none.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain none
Notice: If you compile
skywalking_agent
in Alpine Linux, you have to disablecrt-static
, otherwise the problem will be throw: “the libclang shared library at /usr/lib/libclang.so.15.0.7 could not be opened: Dynamic loading not supported”.You can disable
crt-static
by environment variable:export RUSTFLAGS="-C target-feature=-crt-static"
pecl install skywalking_agent
git clone --recursive https://github.com/apache/skywalking-php.git cd skywalking-php phpize ./configure make make install
Configure skywalking agent in your php.ini
.
[skywalking_agent] extension = skywalking_agent.so ; Enable skywalking_agent extension or not. skywalking_agent.enable = Off ; Log file path. skywalking_agent.log_file = /tmp/skywalking-agent.log ; Log level: one of `OFF`, `TRACE`, `DEBUG`, `INFO`, `WARN`, `ERROR`. skywalking_agent.log_level = INFO ; Address of skywalking oap server. skywalking_agent.server_addr = 127.0.0.1:11800 ; Application service name. skywalking_agent.service_name = hello-skywalking
Refer to the Configuration section for more configuration items.
Notice: It is not recommended to enable
skywalking_agent.enable
by default globally, because skywalking agent will modify the hook function and fork a new process to be a worker. Enabling it by default will cause extra meaningless consumption when skywalking agent is not needed (such as simply executing a php script).
Start php-fpm
server:
php-fpm -F -d "skywalking_agent.enable=On"
Notice: It is necessary to keep the
php-fpm
process running in the foreground (by specifying the >-F
parameter, etc.), runningphp-fpm
as a daemon will cause theskywalking-agent
reporter process immediately exit.