当前位置: 首页 > 后端技术 > PHP

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

时间:2023-03-29 18:11:30 PHP

在学习Swoole之前,我们先从源码安装PHP,Swoole,这里介绍两种环境安装方法,第一种直接在Mac系统上安装,第二种方法是通过Docker安装Ubuntu镜像,然后在容器中安装php源码。一、Swoole简介Swoole官网:http://swoole.com使PHP开发者能够编写高性能的异步并发TCP、UDP、UnixSocket、HTTP、WebSocket服务。Swoole可广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。使用PHP+Swoole作为网络通信框架,可以大大提高企业IT研发团队的工作效率,更加专注于开发创新产品。PHP异步网络通信引擎作为PHP的扩展最终编译成so文件。二、准备工作在linux环境下开发php7swoole2.1redis源码安装php7源码安装swoole我们的开发环境系统是:macOS,如果是windows系统,需要使用虚拟机运行linux系统3.PHP7源码安装和生产环境我们一般通过源码安装,进入php官网下载:http://php.net/,源码必须从官网下载,其他地方不安全。7.2.21版本下载步骤:解压tar-xjvfconfigure(进入解压目录执行此命令)makemakeinstall1,解压:?softpackagetar-xjvfphp-7.2.21.tar.bz22,进入解压目录cdphp-7.2.213,compile#./configure是一个shell脚本,用于检测需要安装的包的依赖环境?php-7.2.21./configure--prefix=/work/study/soft/php--prefix表示PHP安装到哪个路径,如果不写,系统会默认放在一个路径下。4.在make&&makeinstallmac中使用docker安装Ubuntu环境在mac系统中,为了防止把系统搞乱,所以,直接使用docker环境安装PHP。默认情况下,我们已经安装好docker1,拉取Ubuntu镜像到本地dockerpulldaocloud.io/ubuntu2,创建容器sudodockerrun-it-p2221:22-p8880:80-v/work:/work7698f/bin/bash7698f镜像名-v将宿主机的目录映射到容器对应的目录3.将编译所需的安装包安装到容器中,然后执行以下命令:apt-getupdateapt-getinstallgccapt-getinstallautoconfapt-getinstalllibxml2-dev4,编译cd/work/study/softpackage/php7.2.21php7.2.21#./configure--prefix=/work/study/soft/phpphp7.2.21#make&&makeinstall5,测试我们的安装目录在:/work/study/soft/php,这个目录下面有几个文件夹。root@5ee6bfcc1310:/work/study/soft/php#ls-ltotal4drwxr-xr-x12rootroot408Aug2718:08bindrwxr-xr-x3rootroot1028月27日18:08etcdrwxr-xr-x3rootroot102Aug2718:07includedrwxr-xr-x3rootroot102Aug2718:07libdrwxr-xr-x3rootroot102Aug2718:07phpdrwxr-xr-x4rootroot1368月27日18:07var进入安装目录后,通过命令查看扩展./bin/php-m:root@5ee6bfcc1310:/work/study/soft/php#./bin/php-m[PHPModules]CorectypedatedomfileinfofilterhashiconvjsonlibxmlpcrePDOpdo_sqlitePharposixReflectionsessionSimpleXMLSPLsqlite3standardtokenizerxmlxmlduerxmlwriter]We就可以了新建一个php脚本来测试是否安装成功。root@5ee6bfcc1310:/work/study/soft/php#vimtest.phproot@5ee6bfcc1310:/work/study/soft/php#./bin/phptest.phphello可以看到脚本可以运行了,我们的安装是成功的。4.简化PHP执行命令我们可以看到,如果要执行php脚本,需要根据php的完整路径执行/work/study/soft/php/bin/phptest.php,会是非常麻烦和麻烦。一个别名,后面跟着一个脚本,很简单,比如:phptest.php,是不是很简洁?修改执行命令需要在配置文件~/.profile中加入执行的命令:vim~/.profile~/.profilefilecontent#~/.profile:executedbyBourne-compatibleloginshells.if["$BASH"];然后如果[-f~/.bashrc];然后。~/.bashrcfifimesgn||tru#用户具体环境和启动程序#下面是新建变量20190828PATH=$PATH:$HOME/binexportPATHaliasphp=/work/study/soft/php/bin/php或者直接修改/etc/profile配置文件#添加php快捷命令aliasphp=/work/study/soft/php/bin/php重新加载配置文件:source/etc/profile然后测试是否成功:root@5ee6bfcc1310:/work/study/soft/php#phptest.phpHELLOWORLDroot@5ee6bfcc1310:~#php/work/study/soft/php/test.phpHELLOWORLD从上面我们的命令执行成功。注意:~在LINUX下代表变量HOME。另外,在不同的LINUX操作系统下,这个文件可能不同,可能是~/.bash_profile;~/.bash_login或~/.profile其中一个或多个,如果有多个,则执行顺序即:~/.bash_profile,~/.bash_login,~/.profile。例如,我使用的是Ubuntu,我的用户文件夹中的默认文件只有~/.profile。5.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--1rootroot71232Jul3009:21php.ini-development-rw-r--r--1rootroot71504Jul3009:21php.ini-productioncopy:root@5ee6bfcc1310:/work/study/softpackage/php-7.2.21#cpphp.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#mvphp.ini-developmentphp.ini这里还有一个坑,就是有时候我们更改了php.ini文件,并没有生效。如何解决此类问题?可以使用如下命令查看:root@5ee6bfcc1310:~#php-i|grepphp.ini配置文件(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|grepphp.ini配置文件(php.ini)路径=>/work/study/soft/php/libLoaded配置文件=>/work/study/soft/php/lib/php.ini相关文章:/etcinLinux/profile,~/.bash_profile环境变量配置及执行过程