ant centos环境下 编译没有将配置文件加载_swoole进阶----第二节(swoole环境安装)

9b0bf4c3d927ea7c61d1385b2f5a4ccd.png

走进swoole的世界才会发现php的强大之处。

本篇章主要是学习下swoole的安装方式,这里采取的部署环境和我之前的专栏Docker部署redis集群一样,选择的是远端服务器,根据自己的需求可在阿里云、百度云选择性购买即可,最近百度云有个80元一年的1核2G的服务器很便宜,非常非常够我们自己学习使用了。

下面开始我们的swoole部署

环境选择:centos7.2+php7.2+swoole4.2.13

操作方法:ssh 远端连接。连接成功后在开始部署前,先配置下服务器的心跳,目的是为了防止长时间不操作自动断线。

[root@instance-a65jfl77 ~]# vim /etc/ssh/sshd_config

在末尾添加:

ClientAliveInterval 60
ClientAliveCountMax 3

配置好后保存退出执行命令 service sshd restart 重启ssh

首先安装php环境采用php7.2就够了,提供两种安装方式,第一种不做特别说明,跟着文档走即可,这里主要讲第二种安装方式,编译安装(了解即可,主要是为后面的swoole的安装做铺垫):

1、一键安装包方式:

简单粗暴的安装方式:

LNMP一键安装包 - CentOS/RadHat/Debian/Ubuntu下自动编译安装Nginx,PHP,MySQL,PHPMyAdmin​lnmp.org

直接根据安装文档一步一步安装

2、编译安装:

安装简略步骤:

  • 下载
  • 解压
  • configure
  • make&make install

注意以上两种方式,学习阶段强烈建议使用第二种方式,因为这样可以让自己更加熟悉安装一个包的出发点,注重方式方法来提升自己。

1、首先我们有个约定俗成的概念,在我们的根目录下新建一个download文件,主要的目的是用来存储下载的数据:

[root@instance-rb83sg7b /]# mkdir download

2、进入下载目录使用wget下载php7.2

[root@instance-rb83sg7b /]# cd download/
[root@instance-rb83sg7b download]# wget http://cn2.php.net/distributions/php-7.2.4.tar.gz

3、通过tar命令来解压数据包

[root@instance-rb83sg7b download]# tar -zxvf php-7.2.4.tar.gz 

4、安装编译php之前,要安装相应的编译扩展包,当然这里不再使用一步一步地检测依赖包进行编译安装,所以直接使用yum 进行扩展安装,一般的情况下只要提供支持以下的几个扩展就可以了。

[root@instance-rb83sg7b download]# yum -y install gcc gcc-c++ libxml2-devel m4 autoconf pcre-devel make cmake bison
已加载插件:langpacks
baidu-bcm                                      | 2.5 kB  00:00:00     
base                                           | 3.6 kB  00:00:00     
epel                                           | 4.7 kB  00:00:00     
extras                                         | 3.4 kB  00:00:00     
updates                                        | 3.4 kB  00:00:00     
(1/8): baidu-bcm/primary_db                    |  17 kB  00:00:00     
(2/8): base/7/x86_64/group_gz                  | 166 kB  00:00:00 
.........

我们可以看到扩展数据开始自动编译安装了

5、进入到我们刚刚解压过的php包里使用configure来生成文件,我们可以在安装的里发现会有一个configure

4e26431c0bc3663f2d35facd14006130.png

主要是来生成Makefile的是为下一步的编译做准备,我们可以通过在configure后面加上参数来对安装进行控制,具体的一些参数,我们可以通过configure --help来查看相应的命令,这里是指定了php目录和配置文件目录,其它任何扩展都没有编译。

[root@instance-rb83sg7b php-7.2.4]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
........

6、开始编译安装执行命令make && make install

[root@instance-rb83sg7b php-7.2.4]# make && make install

7、当编译完以后,当在使用或执行php命令时,都需要使用全路径才能执行命令程序,这样是不是特别麻烦呢,所以,我们需要将php命令加入到环境变量中,这样,我们就可以直接使用php命令了。

在Centos7.2中就可以使用以下的方式来添加:

[root@instance-rb83sg7b /]# vim /etc/profile

然后在第52行中添加 pathmunge /usr/local/php/bin 来配置php的环境变量

 50     export HISTCONTROL=ignoredups
 51 fi
 52 pathmunge  /usr/local/php/bin
 53 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

8、环境变量配置完毕后执行重加载命令进行载入使环境变量生效

[root@instance-rb83sg7b /]# source /etc/profile

注意:如果命令执行后提示“没有那个文件或目录”

1c6dcff62a359fa0dab748ce6233a060.png

请把命令手动打一遍再执行

9、把php的配置文件目录拷贝到我们php编译的指定目录中去

首先我们可以通过php -i | grep Configuration的命令查询配置文件的目录

[root@instance-rb83sg7b /]# php -i | grep Configuration
Configuration File (php.ini) Path => /usr/local/php/etc
Loaded Configuration File => (none)
Configuration

我们可以直观地而且很清楚地看到配置文件存在/usr/local/php/etc这个目录中,单此时目录中是没有php.ini的。

54fd972c71b99c2391145154185e34b0.png

所以在前面的安装中,我们也是把php的构建是编译到/usr/local/php/中,那么我们就cd 进入到配置文件目录【当然也可以不进,命令是死的,人是活的,关键是看你怎么用】把对应的php配置文件拷贝到编译的php目录etc中:

[root@instance-rb83sg7b php-7.2.4]# cp php.ini-development  /usr/local/php/etc/php.ini

这时我们的php目录中就存在php.ini文件了。

我们再执行php-v的命令来看看php的版本:

d3cdc5e8f8689834e52a238b67308dfb.png

我们还可以看看 我们现在编译的扩展有哪些?

执行命令php -m命令

[root@instance-rb83sg7b php-7.2.4]# 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就安装成功了。

这里因为主要是swoole,所以php的安装就不在过多叙述,当会源码编译安装php,安装swoole 自然也是一样。所以简单粗暴点直接用lnmp来搭建环境。

可以直接执行pecl install swoole 来进行一键安装

10、后面就是我们的扩展安装示例,因为有的小伙伴可能还要安装其他的扩展,这里我们就直接通过yum来安装依赖,然后在ext目录中安装,同样的编译方式,比如curl的安装:

yum install libcurl-devel

有兴趣的小伙伴们,直接可以执行安装试试。

3、接下来开始环境部署swoole的源码编译安装:

Swoole的安装方式跟php编译安装方式是一样的,下载、解压、编译、安装

这里选择安装swoole-4.2.13的版本

1、下载:

[root@instance-rb83sg7b download]# wget https://pecl.php.net/get/swoole-4.2.13.tgz

2、解压:

[root@instance-rb83sg7b download]# tar -zxvf swoole-4.2.13.tgz 

3、编译:

执行phpize加载生成编译文件configure

[root@instance-rb83sg7b swoole-4.2.13]# phpize

这个时候我们就会在我们的目录查看到有configure文件的生成

3885848d3eaa95eb4f55638761af5fee.png

开始执行编译生成Makefile文件

[root@instance-rb83sg7b swoole-4.2.13]# ./configure 
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking for cc... cc
checking whether the C compiler works... yes
......

注意:如果结尾报一下错误:

86cbb27d47ea69d8ca8a6c442dcf69fb.png

说明php配置参数路径错误:

解决方案如下:

1:查找php-config的路径
[root@instance-a65jfl77 swoole-4.2.13]# find / -name php-config
2:再次执行./configure并制定查找出来的资源路径
[root@instance-a65jfl77 swoole-4.2.13]# ./configure --with-php-config=/usr/local/php/bin/php-config

4、执行安装命令:

[root@instance-rb83sg7b swoole-4.2.13]# make && make install

当安装执行完成以后开始检测:

在安装完成后会提示您:

ab6779c58edf85f650abd157edeb195f.png

那么我们直接进入这个目录

[root@instance-rb83sg7b swoole-4.2.13]# cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718

执行查看命令正常情况下就会看到swoole.so如下图:

1952d5250a22f8d0605a3e84236cc26d.png

现在是安装成功了,下面要开启swoole的扩展。

5、编辑添加Swoole的扩展估计920行添加Swoole扩展

[root@instance-rb83sg7b no-debug-non-zts-20170718]# vim /usr/local/php/etc/php.ini
 919 ;extension=xsl
 920 extension=swoole
 921 
 922 ;;;;;;;;;;;;;;;;;;;
 923 ; Module Settings ;
 924 ;;;;;;;;;;;;;;;;;;;
 925  

添加完成保存退出后,再用php的命令来检查下Swoole是否已经安装成功

a3e083708ef88725282d2b6d2d7c0dcd.png

这里就说明swoole能够真正的使用了。

如果没有出现,请在sockets.ini中将extension=swoole.so加到extension=sockets.so下面,后重启php-fpm

执行命令:php --ri swoole 可查看swoole 版本信息

扩展的一些准备安装编译工作到此就结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值