开发者学堂课程【阿里云上搭建 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
如图显示的是 php 的家目录,接着进入到php的扩展目录,输入
cd ext/
ls
结果如下
可以看到 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 文件
再来输入
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 的扩展目录
已经编译完成,输入查看在目录下:
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
如图,此时可以查找到。以上就是 openssl 的扩展模块
再来安装 memcache 扩展模块
二、安装 memcache 扩展模块
memcache 的扩展不是在 php 的源码下,需要自己下载源码,输入
cd
ls
cd /lamp/
ls
显示如图
再来解压该扩展,输入
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
安装完成,可以看到放到了该目录下
输入
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
可以看到如图
以上步骤证明已经可以在 php 中调用 memcache 这些扩展函数去操作 memcache数据库,memcache 数据库可以在远程其他机器中安装,也可以在本地安装。我们先来测试本地安装。
安装 memcache 服务
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
输入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 \
以上就设置成了该镜像,但是具体的我们可以切换。