CentOS7 编译安装 php 7.2.9 , swoole
php.net 下载最新版源码
将压缩包丢入服务器中 (/home/work)
后缀名为 tar.bz2 解压缩方式为 tar -xjvf (php).tar.bz
如出现此错误, 即为没有安装bzip2软件包
tar (child): bzip2: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
解决方式
安装bzip2软件包:
yum install bzip2
即可解压成功
进入解压后的php目录
输入:
./configure --help
可以看到当前环境是否满足要安装的一些软件的依赖关系
然后进行编译
./configure --prefix=/home/work/soft/php
–prefix 是指定php的安装位置, 后面可再接扩展
编译出现错误
configure: error: no acceptable C compiler found in $PATH
是因为没有安装编译所需的依赖包, 安装即可
yum install gcc autoconf gcc-c++
yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel readline readline-devel libxslt libxslt-devel
yum install systemd-devel
yum install openjpeg-devel
然后再进行编译:
出现 thank you for using PHP.
然后进行构建
make
构建是如果出错
make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1
是因为vps内存小于1G导致的, 解决方法:
./configure --prefix=/home/work/soft/php --disable-fileinfo
在选择目录后面 添加 --disable-fileinfo
即可
构建成功的界面
根据提示执行 make test
最后执行 make install
编译安装php 完成
在php目录下新建 test.php 文件
<?php
echo time();
执行此文件 验证php是否安装成功
./bin/php test.php
返回时间戳 php安装成功
简化php执行时需要的代码
执行其他目录是php程序时, 需加上此文件的位置 再加上 ./bin/php
第一个方式,修改根目录下的文件
vi ~/.bash_profile
在export PATH 下面添加一行
alias php=/home/work/soft/php/bin/php
php安装目录下的bin目录中的php文件
此时 输入 php -v 无效
提示为 php 这个命令不存在
需要执行 source ~/.bash_profile
此时 输入 php -v 则可以显示当前php的版本
执行其他目录下的php文件时 只需在执行文件前添加 php 而不需要添加完整的php文件安装时的目录
安装完成后 我们需要从php的源码目录将php.ini文件复制到编译后的文件夹,以用于以后的修改使用
第一个为开发版 第二个为生产版 因为是本地只需要拷贝开发版即可
cp php.ini-development /home/work/soft/php/etc/
然后将其改名
此时我们修改 php.ini 文件中配置时会发现配置不生效
这时候输入 php -i | grep php.ini
会发现 进行编译后的php, php.ini文件并不是放在etc目录下的, 而是放在lib目录下才会生效
需要将php.ini 文件放在etc目录下, 在编译时即需要带上配置参数
通过命令将 php.ini 文件移动到 lib 文件夹下
mv ./etc/php.ini ./lib/
编译安装swoole
前往swoole下载最新版swoole源码, 我将其下载至 /root/Desktop/swoole
git clone https://gitee.com/swoole/swoole.git
此时下载的源码当中没有configure文件 我们需要通过php自带的phpize文件来生成configure文件
直接在swoole源码目录运行php文件夹下的phpize文件
/home/work/soft/php/bin/phpize
此时swoole文件夹下就会多出很多文件
执行configure 找到之前安装的php位置
./configure --with-php-config=/home/work/soft/php/bin/php-config
此时会检查一下文件的完整性
完成之后进行构建
make
构建之后会提示 make test
然后根据错误进行修改或者继续
make install
完成安装
swoole 扩展会放在此目录下
/home/work/soft/php/lib/php/extensions/no-debug-non-zts-20170718
进入此目录
会发现多了一个swoole.so的扩展, 这个扩展就是我们编译的扩展, 会自动放在此目录