因為公司有需求要 include .so 到 common php 使用,記錄一下處理的過程。
首先你必須先拿到這個 .so 檔案,以下稱為 custom.so
以 php7.0 為例
把 custom.sh 放到 /usr/lib/php/20151012
$ mv custom.so /usr/lib/php/20151012/
寫 extenion 設定到 mods-avaiable,priority 設在 30
$ sudo tee /etc/php/7.0/mods-available/custom.ini <<EOF ; configuration for php custom module ; priority=30 extension=custom.so EOF
做 soft link 到 fpm 和 cli 的 conf.d
$ ln -s /etc/php/7.0/mods-available/custom.ini /etc/php/7.0/fpm/conf.d/30-custom.ini $ ln -s /etc/php/7.0/mods-available/custom.ini /etc/php/7.0/cli/conf.d/30-custom.ini
如果 mod_php 也需要再自行加上
重啟讓設定檔生效
$ sudo service {php7.0-fpm,apache2} restart
小知識:php extension 的位置是和 version number 有關係
- php 5.6 =>/usr/lib/php/20131226
- php 7.0 =>/usr/lib/php/20151012
- php 7.1 => /usr/lib/php/20160303
要查看 extension dir 的位置可以透過 php-config (要安裝 php-dev) 或是 phpinfo 來看
$ php-config --extension-dir /usr/lib/php/20151012