1. 目的
一个项目核心代码用C语言来编写,PHP环境建立的时候编译成PHP扩展,达到保证项目商业机密不外泄
2. PHP源码安装
2.1 环境依赖安装
# 依赖安装
yum install -y gcc libxml2 *openssl* libcurl* libjpeg* libpng* freetype* libzip* libmcrypt*
2.2 源文件下载
# 进入这个目录,把PHP源码下载到这里
cd /usr/local/src
# 下载源码
wget -c https://www.php.net/distributions/php-7.1.29.tar.gz
2.3 源文件解压安装
# 解压
tar -zxvf php-7.1.29.tar.gz
# 运行configure可执行文件
./configure --prefix=/usr/local/php --with-config-file-path=/etc
# 编译和安装
make && make install
# 设置成全局
ln -s /usr/local/php/bin/php /usr/local/bin/php
2.4 常用查看PHP命令
# 查看php.ini位置
php --ini
# 查看php扩展
php -m
# 查看版本
php -v
# 查看swoole扩展是否成功
php --ri swoole
# 配置php环境变量
vim ~/.bash_profile
加入:alias php=/usr/local/php/bin/php 保存
source ~/.bash_profile
# 查看具体extension_dir
php -i| grep extension_dir
3. C开发PHP扩展
3.1 进入ext目录
cd /usr/local/src/php-7.1.29/ext
3.2 生成buddha模块
./ext_skel --extname=buddha
To use your new extension, you will have to execute the following steps:
1. $ cd ..
2. $ vi ext/buddha/config.m4
3. $ ./buildconf
4. $ ./configure --[with|enable]-buddha
5. $ make
6. $ ./sapi/cli/php -f ext/buddha/buddha.php
7. $ vi ext/buddha/buddha.c
8. $ make
3.3 执行步骤
cd ..
vim ext/buddha/config.m4
- 把16、17、18三行的dnl去掉并保存
./buildconf --force
cd ext/buddha
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
执行make,之后会在./modules/目录下生成buddha.so文件
执行make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/
php -m
vim /etc/php.ini
vim /usr/local/src/php-7.1.29/ext/buddha/buddha.c
<?php
$result = confirm_buddha_compiled('buddha');
var_dump($result);
php index.php