使用 Phpize 安装 PHP 的常用功能扩展模块 | 学习笔记

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 快速学习使用 Phpize 安装 PHP 的常用功能扩展模块

开发者学堂课程【阿里云上搭建 LAMP 环境实战:使用 Phpize 安装 PHP 的常用功能扩展模块】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/663/detail/11091


使用 Phpize 安装 PHP 的常用功能扩展模块

 

内容介绍:

一、为 php 安装 opensal 模块

二、安装 memcache 扩展模块

三、安装 Redis

 

一、为 php 安装 opensal 模块

打开会话终端,输入 cd

ls

cd /root/lamp/

ls

cd php-7.3.10

image.png

如图显示的是 php 的家目录,接着进入到php的扩展目录,输入

cd ext/

ls

结果如下

image.png

可以看到 php 自带很多扩展

我们在安装时可以通过一个参数指定来安装这些,比如现在要安装 openssl,输入

cd openssl/

ls

就可以进入oenssl的源码包。如果后期想完成再安装,在编译 php 时没有通过参数指定安装它,现在想后期安装,但是这里没有 config,输入

./configure

结果显示 bash: ./configure: No such file or directory

后期想安装需要用到命令 phpize,因为这个命令可以建立 php 的外挂模块,专门建立 php 的扩展模块,例如输入

/usr/local/php/bin/phpize

ls

显示没有 config.m4文件,查看目录下有 config0.m4文件,是这个文件的模板,修改名字:

mv config0.m4 config.m4

/usr/local/php/bin/phpize

ls

可以看到目录下的 config.m4 文件已经生成我们需要编译的 config 文件

image.png

再来输入

yum -y install autoconf

先执行该命令

再输入

/usr/local/php/bin/phpize

ls

clear

ls

ls configure

结果显示 configure

显示出该文件后再进行安装,输入

./configure--with-openssl--with-php-config=/usr/local/php/bin/php-config

make && make install

可以看到现在已经安装好了 php 的扩展目录

image.png

已经编译完成,输入查看在目录下:

cd /usr/local/php/lib/php/extensions/no-debug-zts-20180731/

ls

结果显示 opcache.so openssl.so

已经存在 openssl 模块。完成了编译安装并且指定目录

验证打开 phpinfo,刷新搜索 openssl,发现扩展中没有找到 openssl,没有安装成功。

回到终端,我们需要在 php 配置文件中指定扩展目录

输入vi /usr/local/php/etc/php.ini

打开后搜索输入 ?extension

可以看到有很多扩展都没有打开,在末行添加输入

extension_dir=”/usr/local/php/lib/php/extensions/no-debug-zts-20180731/”

extension=”openssl.so”

然后关闭,修改完 php 配置文件后要重启,输入

/usr/local/apache2/bin/apachectl stop

/usr/local/apache2/bin/apachectl start

再来打开 php.info 刷新,查找 openssl

image.png

如图,此时可以查找到。以上就是 openssl 的扩展模块

再来安装 memcache 扩展模块

 

二、安装 memcache 扩展模块

memcache 的扩展不是在 php 的源码下,需要自己下载源码,输入

cd

ls

cd /lamp/

ls

显示如图

image.png

再来解压该扩展,输入

tar -xf pecl-memcache-4.0.4.tar.gz

cd pecl -memcache-4.0.4

ls

可以看到有config.m4,接着输入

/usr/local/php/bin/phpize

ls

结果出现configure配置文件

再输入

./configure --with-php-config=/usr/local/php/bin/php-config

clear

make && make install

安装完成,可以看到放到了该目录下

image.png

输入

ls /usr/local/php/lib/php/extensions/no-debug-zts-20180731/

结果显示 memcache.so  opcache.so  openssl.so

多出了 memcache.so

再输入

vi /usr/local/php/etc/php.ini

再搜索输入?openssl.so

在刚刚的 extension=”openssl.so”;下继续添加

extension=”memcache.so”;

退出后再重启输入

/usr/local/apache2/bin/apachectl stop

/usr/local/apache2/bin/apachectl start

再打开 php.info 中刷新搜索 memcache

可以看到如图

image.png

以上步骤证明已经可以在 php 中调用 memcache 这些扩展函数去操作 memcache数据库,memcache 数据库可以在远程其他机器中安装,也可以在本地安装。我们先来测试本地安装。

安装 memcache 服务

image.png

Memcache 用到了 libevent 库,libevent 是安装 memcache 的唯一前提条件,是一套跨平台的事件处理接口的封装,memcached 使用 libevent 来进行网络并发连接的处理,能够在很大并发的情况下,仍旧保持快速的响应能力。

输入 cd -

ls

tar -xf memcached-1.5.19.tar.gz

cd memcacheed-1.5.19

ls

clear

yum -y install libevent-devel

clear

./configure --prefix=/usr/local/memcache

make && make install

编译安装完成后和mysql一样是一个独立的数据库软件,有启动用户,输入

useradd -r -s /sbin/nologin memcache

clear

/usr/localmemcache/bin/memcached -umemcache &

netstat -tnl

结果显示端口11211,服务器安装启动成功

之后输入

telnet localhost 80

yum -y install telnet

telnet localhost 80

Exit

想访问任何端口都可以,输入

telnet localhost 11211

成功连接 memcached 服务器后,与 memcached 通信的客户端命令并不多,并且使用方法都非常简单。仅有5个常用的命令(区分大小写),如下所示。

stats:当前所有 memcached 服务器运行的状态信息。

add:添加一个数据到服务器。

set:替换一个已经存在的数据。如果数据不存在,则和add命令相同。

get:从服务器端提职指定的数据。

delete:删除指定的单个数据。如果要清除所有数据,可以使用flush_all指令。如果以上命令执行发生错误,MemCache.协议会对错误部分做出提示。主要有3个错误提示的指令,如下所示。

ERROR:普通的错误信息,如指令错误。

CLIENT_ERROR <错误信息>。客户端错误。

ISERVER_ERROR<错误信息>。服务器端错误。


三、安装 Redis

image.png

输入cd..

ls

tar -xf redis-5.0.6.tar.gz

cd redis -5.0.6

ls

make install PREFIX=/usr/local/redis

安装完成后需要做一个配置文件,输入

cd /usr/local/redis/

ls

mkdir etc

cd /root/lamp/redis-5.0.6

mv redis.conf /usr/local/redis/etc/

然后来修改一下配置文件里的一个属性

vi /usr/local/redis/etc/

搜索输入?daemonize

将 daemonize no 改为 daemonize yes

接下来就可以开启 redis,输入

/usr/local/redis/bin/redis-server/usr/local/redis/etc/redis.conf

netstat -tnl

结果显示端口6379,说明已经启动成功

再来进行测试,比如输入

Telnet localhost 6379

设置一个变量,输入

set one 1000

get one

1000

quit

就可以获取该值

输入 clear

接下来安装 redis 扩展模块,输入

cd

cd lamp/

ls

tar -xf phpredis-develop.zip

unzip phpredis-develop.zip

clear

ls

cd php

cd phpredis-develop

ls

/usr/local/php/bin/phpize

ls

执行完成后直接编译安装,输入

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install

安装完后输入

Ls /usr/local/php/lib/php/extensions/no-debug-zts-20180731/

结果多出 redis.so 扩展模块

输入vi /usr/local/php/etc/php.ini

搜索找到 memcache

在下面添加 extension=”redis.so”;

退出后重启,然后打开 php.info

最后再来安装 composer,它是 php 的依赖管理工具

在一般情况下,安装包的数据多数是从 https://github.com 上下载的,安装包的元数据是从 http://packagist.org上下载的。

国内镜像服务器所做的就是缓存所有安装包和元数据到国内的机房并通过国内的CDN 进行加速,这样下载安装代码和更新加速的过程更加稳定。

国内镜像服务器 URL为https://pkg.phpcomposer.com。项目中常用的 Composer代码包如下

包名

说明

地址

guzzlehttp/guzzle

功能强大的HTTP请求库

https//packagist.org/packages/guzzlehttp/guzzle

hashids/hashides

数字ID转字符串。支持多语言

https://packagist.org/packages/hashids/hashids

intervention/image

图片处理,获取图片信息、上传、格式转换、缩放﹑裁剪等

https://packagist.org/packages/intervention/image

phpmailer/phpmaler

邮件发送

https://packagist.org/packages/phpmailer/phpmailer

phpoffice/phpexcel

excel操作类

https://packagist.org/packages/phpoffice/phpexcel

monolog/monolog

日志操作,composer官方就是用它做例子的

https://packagist.org/packages/monolog /monolog

catfen/medoo

简单易用的数据库操作类,支持各种常见数据库

https://packagist.org/packages/catfan/medoo

league/route

路由调度

https://packagist.org/packages/league/route

Carbon/Carbon

时间操作

https:/packagist.org/packages/nesbot/carbon

输入

cd

ls

cd lamp/

ls

vget https://getcomposer.org/composer.phar

下载完后进行拷贝,将文件放在指定目录,输入

Cp composer.phar /usr/local/bin/composer

Chmod u+x /usr/local/bin/composer

接下来可以设置国内镜像加速命令:

/usr/local/bin/composer \

显示找不见该命令,需要将该命令链接到环境变量中,输入

ln -s /usr/local/php/bin/php /usr/local/bin/

/usr/local/bin/composer -V

结果显示可执行,再输入

/usr/local/bin/composer \

以上就设置成了该镜像,但是具体的我们可以切换。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
3月前
|
运维 Unix Linux
Linux系统 PHP安装expect扩展详解
Linux系统 PHP安装expect扩展详解
41 5
|
14天前
|
编译器 API PHP
深入PHP扩展开发:打造高效自定义模块
【4月更文挑战第30天】 在追求性能优化和特定功能实现的道路上,PHP提供了一种强大机制——扩展。本文将引导读者通过编写一个简单的PHP扩展来探索扩展开发的世界。我们将涉及从环境搭建到代码实现,再到扩展的编译与加载的完整流程,确保读者能够理解并实践如何创建高效的自定义PHP模块。
|
15天前
|
SQL 前端开发 PHP
【PHP开发专栏】PHP分页功能的设计与实现
【4月更文挑战第29天】本文介绍了PHP实现分页功能,包括设计逻辑(用户界面和后端处理)、SQL查询优化和前端展示。后端通过计算页码和偏移量进行数据查询,前端展示分页信息并处理用户交互。优化点有使用索引、LIMIT语句和避免子查询。此外,还提到了无限滚动、AJAX分页和分页大小选择等高级功能,以提升用户体验。
|
25天前
|
数据采集 监控 API
使用PHP实现动态代理IP的功能
使用PHP实现动态代理IP的功能
|
1月前
|
NoSQL Linux PHP
php添加redis扩展 linux和windos图文详解 l
php添加redis扩展 linux和windos图文详解 l
5 0
|
1月前
|
Ubuntu PHP
ubuntu16.04 卸载 php7并安装php5.6记录
ubuntu16.04 卸载 php7并安装php5.6记录
|
2月前
|
缓存 Linux PHP
yum安装PHP
yum安装PHP
57 3
|
2月前
|
应用服务中间件 Linux PHP
Linux下安装php环境并且配置Nginx支持php-fpm模块
Linux下安装php环境并且配置Nginx支持php-fpm模块
34 0
|
PHP Perl
九个PHP很有用的功能
下面是九个PHP中很有用的功能,不知道你用过了吗? 1. 函数的任意数目的参数 你可能知道PHP允许你定义一个默认参数的函数。但你可能并不知道PHP还允许你定义一个完全任意的参数的函数 下面是一个示例向你展示了默认参数的函数: // 两个默认参数的函数 function foo($arg1 = '', $arg2 = '') { echo "ar
1417 0
|
8月前
|
关系型数据库 MySQL PHP
PHP 原生操作 Mysql
PHP 原生操作 Mysql
82 0