Linux下源码安装PHP和Swoole
羡仙. • 2019 年 06 月 23 日
PHP 安装
安装依赖yum -y install gcc openssl* libxml2-devel bzip2
PHP源码下载
解压tar -xjvf php-7.3.3.tar.bz2
设置全局cd php-7.3.3
# 配置PHP路径
./configure --prefix=/usr/local/php
# 构建
make
# 安装
make install
# 设置PHP全局
vim /root/.bash_profile
# 添加如下
alias ll='ls -al'
alias cls=clear
alias php=/usr/local/php/bin/php
# 保存并退出,令配置生效
source /root/.bash_profile
# 查看PHP是否生效
php -v
# 返回以下说明成功
PHP 7.3.3 (cli) (built: Jun 22 2019 01:35:56) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.3, Copyright (c) 1998-2018 Zend Technologies
配置文件
我们编译好的php目录下是没有php.ini文件的.而我们一开始解压好的php目录下面是有配置文件的.所以我们现在需要把解压好的目录下面的php.ini放到我们安装 的php目录下cd /data/softpackage/php-7.3.3
ll | grep php.ini
# 我们需要php.ini-production
-rw-r--r--. 1 qvbilam qvbilam 70877 3月 5 08:50 php.ini-development
-rw-r--r--. 1 qvbilam qvbilam 71149 3月 5 08:50 php.ini-production
# 复制配置文件到安装目录
cp php.ini-development /usr/local/php/etc/php.ini
我们一开源码安装只设定了php的路径,没有设置配置文件的路径.查看一下配置文件的路径.php -i | grep php.ini
# 返回路径,明显不再etc下
Configuration File (php.ini) Path => /usr/local/php/lib
# 移动配置文件
mv /usr/local/php/etc/php.ini /usr/local/php/lib
Swoole 安装
下载# 安装git
yum install -y git
# 下载
cd /data/softpackage/
git clone https://github.com/swoole/swoole-src.git
安装# 进入目录
cd swoole-src
# 拓展模块,生成confgure文件
/usr/local/php/bin/phpize
# 返回出现错误
Configuring for:
PHP Api Version: 20180731
Zend Module Api No: 20180731
Zend Extension Api No: 320180731
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
# 解决方法
# 下载autoconf
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz
tar xzf autoconf-2.68.tar.gz
cd autoconf-2.68
./configure
make && make install
# 下载m4
cd /data/softpackage/
wget http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
tar -zvxf m4-1.4.9.tar.gz
cd m4-1.4.9/
./configure && make && make install
# 配置swoole
cd ../swoole-src/
./configure --with-php-config=/usr/local/php/bin/php-config
# 可以看到部分的错误信息
checking for g++... no
checking for c++... no
checking for gpp... no
checking for aCC... no
checking for CC... no
checking for cxx... no
checking for cc++... no
checking how to run the C++ preprocessor... /lib/cpp
configure: error: in `/data/softpackage/swoole-src':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details
# 还是因为缺少依赖包,安装他们
yum install -y glibc-headers gcc-c++
# again
cd ../swoole-src
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
# 返回
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/
Installing header files: /usr/local/php/include/php/
# 查看拓展
cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/
ll
# 有swoole了哦~
总用量 18400
drwxr-xr-x. 2 root root 58 6月 22 13:38 .
drwxr-xr-x. 3 root root 39 6月 22 01:39 ..
-rwxr-xr-x. 1 root root 4212370 6月 22 01:39 opcache.a
-rwxr-xr-x. 1 root root 2277744 6月 22 01:39 opcache.so
-rwxr-xr-x. 1 root root 12341360 6月 22 13:38 swoole.so
# 编辑配置文件
find / -name 'php.ini' # 查找配置文件
vim /usr/local/php/lib/php.ini
# 添加
extension=swoole
# 保存,退出.
php -m | grep swoole
# 成功的话会返回swoole.
验证# 首先现在个net工具
yum install -y net-tools
# 回到swoole解压目录
cd /data/softpackage/swoole-src/
# 启动测试文件
php examples/server/echo.php
# 不用等返回结果啦~令开一个端口输入
netstat -anp | grep 9501
# 如果下面返回的有结果,说明安装成功
tcp 0 0 0.0.0.0:9501 0.0.0.0:* LISTEN 44070/php
OJBK.睡觉,接下来要更新Swoole咯哦~