分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

运维日常:五分钟搞定PHP的redis问题

发布时间:2023-09-06 02:18责任编辑:郭大石关键词:PHPredis
一、前言

1.需求

2.解决
LNMP环境中的PHP缺少redis扩展包,导致访问页面报错500,处理问题,安装PHP扩展功能redis。

下面记录整个过程,如果不想看,而只想在最短的时间内搞定这个问题,请直接翻到最后,使用脚本。

二、安装

1.下载扩展包

[root@lp source]# git clone https://github.com/nicolasff/phpredisCloning into ‘phpredis‘...remote: Enumerating objects: 29, done.remote: Counting objects: 100% (29/29), done.remote: Compressing objects: 100% (22/22), done.remote: Total 9450 (delta 11), reused 15 (delta 7), pack-reused 9421Receiving objects: 100% (9450/9450), 5.40 MiB | 2.10 MiB/s, done.Resolving deltas: 100% (6483/6483), done.

2.phpize检测安装

[root@lp source]# cd phpredis/[root@lp phpredis]# /usr/local/php/bin/phpizeConfiguring for:PHP Api Version: ????????20151012Zend Module Api No: ?????20151012Zend Extension Api No: ??320151012

3.预编译

[root@lp phpredis]# ./configure --with-php-config=/usr/local/php/bin/php-configchecking for grep that handles long lines and -e... /usr/bin/grepchecking for egrep... /usr/bin/grep -Echecking for a sed that does not truncate output... /usr/bin/sedchecking for cc... ccchecking whether the C compiler works... yeschecking for C compiler default output file name... a.outchecking for suffix of executables...checking whether we are cross compiling... nochecking for suffix of object files... ochecking whether we are using the GNU C compiler... yeschecking whether cc accepts -g... yeschecking for cc option to accept ISO C89... none neededchecking how to run the C preprocessor... cc -Echecking for icc... nochecking for suncc... nochecking whether cc understands -c and -o together... yeschecking for system library directory... libchecking if compiler supports -R... nochecking if compiler supports -Wl,-rpath,... yeschecking build system type... x86_64-unknown-linux-gnuchecking host system type... x86_64-unknown-linux-gnuchecking target system type... x86_64-unknown-linux-gnuchecking for PHP prefix... /usr/local/phpchecking for PHP includes... -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/libchecking for PHP extension directory... /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012checking for PHP installed headers prefix... /usr/local/php/include/phpchecking if debug is enabled... nochecking if zts is enabled... nochecking for re2c... noconfigure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.checking for gawk... gawkchecking whether to enable redis support... yes, sharedchecking whether to enable sessions... yeschecking whether to enable igbinary serializer support... nochecking whether to enable lzf compression... nochecking use system liblzf... nochecking for redis igbinary support... disabledchecking for git... yeschecking for ld used by cc... /usr/bin/ldchecking if the linker (/usr/bin/ld) is GNU ld... yeschecking for /usr/bin/ld option to reload object files... -rchecking for BSD-compatible nm... /usr/bin/nm -Bchecking whether ln -s works... yeschecking how to recognize dependent libraries... pass_allchecking for ANSI C header files... yeschecking for sys/types.h... yeschecking for sys/stat.h... yeschecking for stdlib.h... yeschecking for string.h... yeschecking for memory.h... yeschecking for strings.h... yeschecking for inttypes.h... yeschecking for stdint.h... yeschecking for unistd.h... yeschecking dlfcn.h usability... yeschecking dlfcn.h presence... yeschecking for dlfcn.h... yeschecking the maximum length of command line arguments... 1572864checking command to parse /usr/bin/nm -B output from cc object... okchecking for objdir... .libschecking for ar... archecking for ranlib... ranlibchecking for strip... stripchecking if cc supports -fno-rtti -fno-exceptions... nochecking for cc option to produce PIC... -fPICchecking if cc PIC flag -fPIC works... yeschecking if cc static flag -static works... nochecking if cc supports -c -o file.o... yeschecking whether the cc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yeschecking whether -lc should be explicitly linked in... nochecking dynamic linker characteristics... GNU/Linux ld.sochecking how to hardcode library paths into programs... immediatechecking whether stripping libraries is possible... yeschecking if libtool supports shared libraries... yeschecking whether to build shared libraries... yeschecking whether to build static libraries... nocreating libtoolappending configuration tag "CXX" to libtoolconfigure: creating ./config.statusconfig.status: creating config.h

4.编译安装

[root@lp phpredis]# make && make install/bin/sh /server/source/phpredis/libtool --mode=compile cc ?-I. -I/server/source/phpredis -DPHP_ATOM_INC -I/server/source/phpredis/include -I/server/source/phpredis/main -I/server/source/phpredis -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib ?-DHAVE_CONFIG_H ?-g -O2 ??-c /server/source/phpredis/redis.c -o redis.lomkdir .libscc -I. -I/server/source/phpredis -DPHP_ATOM_INC -I/server/source/phpredis/include -I/server/source/phpredis/main -I/server/source/phpredis -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /server/source/phpredis/redis.c ?-fPIC -DPIC -o .libs/redis.o/bin/sh /server/source/phpredis/libtool --mode=compile cc ?-I. -I/server/source/phpredis -DPHP_ATOM_INC -I/server/source/phpredis/include -I/server/source/phpredis/main -I/server/source/phpredis -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib ?-DHAVE_CONFIG_H ?-g -O2 ??-c /server/source/phpredis/redis_commands.c -o redis_commands.locc -I. -I/server/source/phpredis -DPHP_ATOM_INC -I/server/source/phpredis/include -I/server/source/phpredis/main -I/server/source/phpredis -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /server/source/phpredis/redis_commands.c ?-fPIC -DPIC -o .libs/redis_commands.o/bin/sh /server/source/phpredis/libtool --mode=compile cc ?-I. -I/server/source/phpredis -DPHP_ATOM_INC -I/server/source/phpredis/include -I/server/source/phpredis/main -I/server/source/phpredis -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib ?-DHAVE_CONFIG_H ?-g -O2 ??-c /server/source/phpredis/library.c -o library.locc -I. -I/server/source/phpredis -DPHP_ATOM_INC -I/server/source/phpredis/include -I/server/source/phpredis/main -I/server/source/phpredis -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /server/source/phpredis/library.c ?-fPIC -DPIC -o .libs/library.o/bin/sh /server/source/phpredis/libtool --mode=compile cc ?-I. -I/server/source/phpredis -DPHP_ATOM_INC -I/server/source/phpredis/include -I/server/source/phpredis/main -I/server/source/phpredis -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib ?-DHAVE_CONFIG_H ?-g -O2 ??-c /server/source/phpredis/redis_session.c -o redis_session.locc -I. -I/server/source/phpredis -DPHP_ATOM_INC -I/server/source/phpredis/include -I/server/source/phpredis/main -I/server/source/phpredis -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /server/source/phpredis/redis_session.c ?-fPIC -DPIC -o .libs/redis_session.o/bin/sh /server/source/phpredis/libtool --mode=compile cc ?-I. -I/server/source/phpredis -DPHP_ATOM_INC -I/server/source/phpredis/include -I/server/source/phpredis/main -I/server/source/phpredis -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib ?-DHAVE_CONFIG_H ?-g -O2 ??-c /server/source/phpredis/redis_array.c -o redis_array.locc -I. -I/server/source/phpredis -DPHP_ATOM_INC -I/server/source/phpredis/include -I/server/source/phpredis/main -I/server/source/phpredis -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /server/source/phpredis/redis_array.c ?-fPIC -DPIC -o .libs/redis_array.o/bin/sh /server/source/phpredis/libtool --mode=compile cc ?-I. -I/server/source/phpredis -DPHP_ATOM_INC -I/server/source/phpredis/include -I/server/source/phpredis/main -I/server/source/phpredis -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib ?-DHAVE_CONFIG_H ?-g -O2 ??-c /server/source/phpredis/redis_array_impl.c -o redis_array_impl.locc -I. -I/server/source/phpredis -DPHP_ATOM_INC -I/server/source/phpredis/include -I/server/source/phpredis/main -I/server/source/phpredis -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /server/source/phpredis/redis_array_impl.c ?-fPIC -DPIC -o .libs/redis_array_impl.o/bin/sh /server/source/phpredis/libtool --mode=compile cc ?-I. -I/server/source/phpredis -DPHP_ATOM_INC -I/server/source/phpredis/include -I/server/source/phpredis/main -I/server/source/phpredis -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib ?-DHAVE_CONFIG_H ?-g -O2 ??-c /server/source/phpredis/redis_cluster.c -o redis_cluster.locc -I. -I/server/source/phpredis -DPHP_ATOM_INC -I/server/source/phpredis/include -I/server/source/phpredis/main -I/server/source/phpredis -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /server/source/phpredis/redis_cluster.c ?-fPIC -DPIC -o .libs/redis_cluster.o/bin/sh /server/source/phpredis/libtool --mode=compile cc ?-I. -I/server/source/phpredis -DPHP_ATOM_INC -I/server/source/phpredis/include -I/server/source/phpredis/main -I/server/source/phpredis -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib ?-DHAVE_CONFIG_H ?-g -O2 ??-c /server/source/phpredis/cluster_library.c -o cluster_library.locc -I. -I/server/source/phpredis -DPHP_ATOM_INC -I/server/source/phpredis/include -I/server/source/phpredis/main -I/server/source/phpredis -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /server/source/phpredis/cluster_library.c ?-fPIC -DPIC -o .libs/cluster_library.o/bin/sh /server/source/phpredis/libtool --mode=link cc -DPHP_ATOM_INC -I/server/source/phpredis/include -I/server/source/phpredis/main -I/server/source/phpredis -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib ?-DHAVE_CONFIG_H ?-g -O2 ??-o redis.la -export-dynamic -avoid-version -prefer-pic -module -rpath /server/source/phpredis/modules ?redis.lo redis_commands.lo library.lo redis_session.lo redis_array.lo redis_array_impl.lo redis_cluster.lo cluster_library.locc -shared ?.libs/redis.o .libs/redis_commands.o .libs/library.o .libs/redis_session.o .libs/redis_array.o .libs/redis_array_impl.o .libs/redis_cluster.o .libs/cluster_library.o ??-Wl,-soname -Wl,redis.so -o .libs/redis.socreating redis.la(cd .libs && rm -f redis.la && ln -s ../redis.la redis.la)/bin/sh /server/source/phpredis/libtool --mode=install cp ./redis.la /server/source/phpredis/modulescp ./.libs/redis.so /server/source/phpredis/modules/redis.socp ./.libs/redis.lai /server/source/phpredis/modules/redis.laPATH="$PATH:/sbin" ldconfig -n /server/source/phpredis/modules----------------------------------------------------------------------Libraries have been installed in: ??/server/source/phpredis/modulesIf you ever happen to want to link against installed librariesin a given directory, LIBDIR, you must either use libtool, andspecify the full pathname of the library, or use the `-LLIBDIR‘flag during linking and do at least one of the following: ??- add LIBDIR to the `LD_LIBRARY_PATH‘ environment variable ????during execution ??- add LIBDIR to the `LD_RUN_PATH‘ environment variable ????during linking ??- use the `-Wl,--rpath -Wl,LIBDIR‘ linker flag ??- have your system administrator add LIBDIR to `/etc/ld.so.conf‘See any operating system documentation about shared libraries formore information, such as the ld(1) and ld.so(8) manual pages.----------------------------------------------------------------------Build complete.Don‘t forget to run ‘make test‘.Installing shared extensions: ????/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/```~~**5.修改php.ini文件**[root@lp phpredis]# vim /usr/local/php/etc/php.ini[root@lp phpredis]# tail -n 1 /usr/local/php/etc/php.iniextension="redis.so"**6.重启LNMP环境**[root@lp phpredis]# lnmp restart+-------------------------------------------+| ???Manager for LNMP, Written by Licess ???|+-------------------------------------------+| ?????????????https://lnmp.org ????????????|+-------------------------------------------+Stoping LNMP...Stoping nginx... ?doneShutting down MySQL. SUCCESS!Gracefully shutting down php-fpm . doneStarting LNMP...Starting nginx... ?doneStarting MySQL. SUCCESS!Starting php-fpm ?done**7.检测是否安装成功redis扩展**[root@lp phpredis]# php -m |grep redisredis**一键安装**#!/bin/bash## 2018-10-15 write by leo;redis=`php -m |grep redis`yum install -y wget vim git mkdir -pv ?/server/{source,web,data}cd /server/sourcegit clone https://github.com/nicolasff/phprediscd phpredis/ ?&& /bin/bash /usr/local/php/bin/phpize/server/source/phpredis/configure --with-php-config=/usr/local/php/bin/php-configif [ $? -eq 0 ];then ???make && make install else ???echo "configure error!!!"fiecho "extension=‘redis.so‘" >> /usr/local/php/etc/php.inilnmp restart if [ $? -eq 0 ];then ???????echo "lnmp restart finish!"else ???????echo "restart services error!!!"fiecho "$redis ext finish!!!"

运维日常:五分钟搞定PHP的redis问题

原文地址:http://blog.51cto.com/leoheng/2300286

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved