CentOS7 编译安装 php 7.2.9 , swoole

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的扩展, 这个扩展就是我们编译的扩展, 会自动放在此目录

猜你喜欢

转载自blog.csdn.net/weixin_42843343/article/details/83931938