php源码 要安装,Swoole学习之PHP源码安装(一)

在学习Swoole之前,我们先从源码安装PHP,Swoole,这里介绍两种环境安装方法,第一种是在Mac系统中直接安装的,第二种方法是通过Docker安装Ubuntu镜像,然后在容器里边进行php源码安装。

一、Swoole简介

使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。Swoole 可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。 使用 PHP + Swoole 作为网络通信框架,可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新产品。

PHP异步网络通信引擎

最终编译为so文件作为PHP的扩展

二、准备工作

Linux环境下开发

php7 swoole2.1 redis

源码安装php7 源码安装swoole

我们的开发环境系统为:MacOS,如果为Windows系统,需要使用虚拟机运行Linux系统

三、PHP7源码安装

生成环境我们一般是通过源码安装的,进入php官网下载:http://php.net/,源码必须从官网下载,其他地方的不安全。

bVbwTHa?w=904&h=396

下载 7.2.21版本

步骤:

解压 tar -xjvf

configure(进入解压后的目录执行该命令)

make

make install

1、解压:

➜ softpackage tar -xjvf php-7.2.21.tar.bz2

2、进入解压目录

cd php-7.2.21

3、编译

# ./configure 为shell脚本,作用为需要安装的包进行依赖环境检测

➜ php-7.2.21 ./configure --prefix=/work/study/soft/php

--prefix表示php安装到哪个路径,如果不写系统会默认放到一个路径。

bVbwW4S?w=789&h=552

4、make && make install

mac中使用docker装Ubuntu环境

在mac系统中,为防止搞乱系统,所以,直接使用docker环境来安装PHP。

默认我们已经安装好了docker

1、拉取Ubuntu镜像到本地

docker pull daocloud.io/ubuntu

2、创建容器

sudo docker run -it -p 2221:22 -p 8880:80 -v /work:/work 7698f /bin/bash

7698f 镜像名

-v 将宿主机的目录映射到容器对应的目录

3、安装编译需要的安装包

进入到容器中,然后执行以下命令:

apt-get update

apt-get install gcc

apt-get install autoconf

apt-get install libxml2-dev

4、编译

cd /work/study/softpackage/php7.2.21

php7.2.21# ./configure --prefix=/work/study/soft/php

php7.2.21# make && make install

5、测试

我们安装的目录在:/work/study/soft/php,该目录下有这几个文件夹。

root@5ee6bfcc1310:/work/study/soft/php# ls -l

total 4

drwxr-xr-x 12 root root 408 Aug 27 18:08 bin

drwxr-xr-x 3 root root 102 Aug 27 18:08 etc

drwxr-xr-x 3 root root 102 Aug 27 18:07 include

drwxr-xr-x 3 root root 102 Aug 27 18:07 lib

drwxr-xr-x 3 root root 102 Aug 27 18:07 php

drwxr-xr-x 4 root root 136 Aug 27 18:07 var

进入到安装目录后,然后通过命令./bin/php -m查看扩展:

root@5ee6bfcc1310:/work/study/soft/php# ./bin/php -m

[PHP Modules]

Core

ctype

date

dom

fileinfo

filter

hash

iconv

json

libxml

pcre

PDO

pdo_sqlite

Phar

posix

Reflection

session

SimpleXML

SPL

sqlite3

standard

tokenizer

xml

xmlreader

xmlwriter

[Zend Modules]

我们可以新建一个php脚本,测试一下是否安装成功。

root@5ee6bfcc1310:/work/study/soft/php# vim test.php

root@5ee6bfcc1310:/work/study/soft/php# ./bin/php test.php

hello

可以看到脚本可以运行,我们的安装成功。

四、简化PHP执行命令

我们可以看到,如果要执行php脚本,需要根据php完整路径来执行 /work/study/soft/php/bin/php test.php,这样会很繁琐,非常麻烦,如果设置一个别名,后边直接跟一个脚本就非常简单,比如这样:php test.php ,是不是非常简洁?

修改执行命令需要将执行的命令添加到配置文件~/.profile中:

vim ~/.profile

~/.profile文件内容

# ~/.profile: executed by Bourne-compatible login shells.

if [ "$BASH" ]; then

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

fi

mesg n || tru

# User specific environment and startup programs

# 下面为新增变量20190828

PATH=$PATH:$HOME/bin

export PATH

alias php=/work/study/soft/php/bin/php

或者直接修改 /etc/profile配置文件

# 新增php快捷命令

alias php=/work/study/soft/php/bin/php

重新加载配置文件:

source /etc/profile

然后再测试是否成功:

root@5ee6bfcc1310:/work/study/soft/php# php test.php

HELLO WORLD

root@5ee6bfcc1310:~# php /work/study/soft/php/test.php

HELLO WORLD

从上边看,我们的命令执行成功。

注:~在LINUX下面是代表HOME这个变量的。另外在不同的LINUX操作系统下,这个文件可能是不同的,可能是~/.bash_profile; ~/.bash_login或 ~/.profile其中的一种或几种,如果存在几种的话,那么执行的顺序便是:~/.bash_profile、 ~/.bash_login、 ~/.profile。比如我用的是Ubuntu,我的用户文件夹下默认的就只有~/.profile文件。

五、php.ini文件

我们可以看到/work/study/soft/php/ 安装的目录里边没有 php.ini 配置文件,这就需要我们把源码包的 php.ini 拷贝到我们的安装目录。

源码包:

root@5ee6bfcc1310:/work/study/softpackage/php-7.2.21# ls -l | grep 'php.ini'

-rw-r--r-- 1 root root 71232 Jul 30 09:21 php.ini-development

-rw-r--r-- 1 root root 71504 Jul 30 09:21 php.ini-production

拷贝:

root@5ee6bfcc1310:/work/study/softpackage/php-7.2.21# cp php.ini-development /work/study/soft/php/etc/

修改文件名 php.ini-development 为 php.ini:

cd /work/study/soft/php/etc/

root@5ee6bfcc1310:/work/study/soft/php/etc# mv php.ini-development php.ini

这里还有一个坑,就是有时候我们改了 php.ini 文件后没有生效,这样的问题怎么排查呢?

可以用下边这个命令来看:

root@5ee6bfcc1310:~# php -i | grep php.ini

Configuration File (php.ini) Path => /work/study/soft/php/lib

我们可以看到,最终的执行路径在 /work/study/soft/php/lib 下面,正常我们是放在 /work/study/soft/php/etc 下边,编译之后会放在 /work/study/soft/php/lib 下,所以我们把etc下边的移到lib下面即可:

mv ./etc/php.ini ./lib/

root@5ee6bfcc1310:~# php -i | grep php.ini

Configuration File (php.ini) Path => /work/study/soft/php/lib

Loaded Configuration File => /work/study/soft/php/lib/php.ini

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值