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

简介: 快速学习使用 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 \

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

相关文章
|
11月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
582 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
运维 JavaScript 应用服务中间件
os-copilot安装与多项功能测评,帮助开发人员PHP环境排查问题
本文介绍了OS Copilot在ECS上 Alibaba Cloud Linux的安装与使用,并对其多项参数进行了功能测评。OS Copilot是为操作系统提供智能化辅助的工具,支持自动化任务、智能推荐、故障排查等功能。安装时需检查是否已安装(`rpm -q os-copilot`),若未安装则用`yum install os-copilot`命令安装,并配置AccessKey信息连接阿里云服务。通过测试不同参数命令,如`-t`参数,展示了其自动化执行和智能生成回答的能力,显著提升运维效率。
os-copilot安装与多项功能测评,帮助开发人员PHP环境排查问题
|
11月前
|
数据库连接 PHP 数据库
【YashanDB知识库】PHP使用ODBC使用数据库绑定参数功能异常
【YashanDB知识库】PHP使用ODBC使用数据库绑定参数功能异常
|
11月前
|
PHP 数据库
【YashanDB知识库】PHP使用OCI接口使用数据库绑定参数功能异常
【YashanDB知识库】PHP使用OCI接口使用数据库绑定参数功能异常
|
JavaScript PHP UED
16 PHP实现图书删除功能
路老师在知乎上分享了PHP语言的知识,帮助大家入门和深入了解PHP。本文介绍了如何实现图书删除功能,通过点击删除按钮触发`deleteBook.php`文件,完成删除操作并返回列表页。同时,还新增了一个“新增”按钮,优化了用户体验。
158 2
16 PHP实现图书删除功能
|
移动开发 小程序 前端开发
使用php开发圈子系统特点,如何获取圈子系统源码,社交圈子运营以及圈子系统的功能特点,圈子系统,允许二开,免费源码,APP 小程序 H5
开发一个圈子系统(也称为社交网络或社群系统)可以是一个复杂但非常有趣的项目。以下是一些关键特点和步骤,帮助你理解如何开发、获取源码以及运营一个圈子系统。
573 4
|
JavaScript PHP
17 PHP 实现批量删除功能
路老师在本文中继续优化图书删除功能,实现批量删除图书。通过添加删除按钮、表格前的复选框以及实现PHP后端逻辑,展示了完整的删除流程和效果。
223 5
|
数据库连接 PHP
15 PHP实现图书修改功能
路老师分享了如何使用PHP实现图书信息的修改功能。首先,在列表页面点击编辑按钮,跳转至`editBook.php`,通过ID获取图书信息并展示在`edit.html`页面。用户提交修改后,`updateBook.php`处理更新请求,成功后返回到图书列表页。纯干货,技术知识满满。
292 2
|
PHP
14 PHP实现图书添加功能
路老师分享PHP语言知识,帮助大家入门并深入了解PHP。本文介绍如何实现图书添加功能,包括创建HTML表单和PHP后端处理逻辑,最后展示实际效果。
171 2
|
NoSQL 安全 Linux
MongoDB PHP 扩展
10月更文挑战第19天
165 0
MongoDB PHP 扩展