目录
php安装redis报错undefined symbol: php_json_decode_ex
一、openresty安装
1)、通过在CentOS 系统中添加 openresty
仓库,便于未来安装或更新我们的软件包(通过 yum update
命令)
yum install yum-utils
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
2)、安装openresty
yum install openresty
3)、安装命令行工具 resty
yum install openresty-resty
命令行工具 opm
在 openresty-opm
包里,而 restydoc
工具在 openresty-doc
包里头。
4)、查看openresty
仓库里头的软件包
yum --disablerepo="*" --enablerepo="openresty" list available
至此安装成功,默认安装在 /usr/local/openresty
5) 建立软连接
ln -s /usr/local/openresty/nginx/sbin/nginx
#操作指令
openresty -s reload 重启openresty
openresty -v 查看openresty版本
openresty -V 查看openresty安装信息
6)测试,输入ip地址查看
二、安装php73
1) 、首先安装 EPEL 源:
yum install epel-release
# Extra Packages for Enterprise Linux 。EPEL是一个比官方rpm包更丰富、版本相对更高的额外第三方源。
2)、安装 REMI 源:
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
# 除了EPEL源之外还有REMI的源。它包含最新版本 PHP 和 MySQL 包
3)、安装 Yum 源管理工具:(如前面有安装可忽略)
yum install yum-utils
# 维护YUM并提高其性能的工具
4)、安装php73:
yum --enablerepo=remi-php73 install php
# yum --enablerepo=[repo] 启用一个或多个软件源(支持通配符)
5)、安装常用扩展:
yum --enablerepo=remi-php73 install php-xml php-soap php-xmlrpc php-mbstring php-json php-gd php-mcrypt php-devel php-mysql php-gd php-bcmath php-pdo php-pecl-imagick php-fpm -y
# 卸载命令:yum --enablerepo=remi-php73 remove xxx xxx ..
6)、开启php:
systemctl start php-fpm
7)、查看php版本:
php -v
三、安装mysql
安装前清理工作;
1.1.1 清理原有的mysql数据库;
使用以下命令查找出安装的mysql软件包和依赖包:
rpm -qa | grep mysql
显示结果如下:
mysql80-community-release-el7-1.noarch
mysql-community-server-8.0.11-1.el7.x86_64
mysql-community-common-8.0.11-1.el7.x86_64
mysql-community-libs-8.0.11-1.el7.x86_64
mysql-community-client-8.0.11-1.el7.x86_64
使用以下命令依次删除上面的程序
yum remove mysql-xxx-xxx-
删除mysql的配置文件,卸载不会自动删除配置文件,首先使用如下命令查找出所用的配置文件;
find / -name mysql
可能的显示结果如下:
/etc/logrotate.d/mysql
/etc/selinux/targeted/active/modules/100/mysql
/etc/selinux/targeted/tmp/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/bin/mysql
/usr/lib64/mysql
/usr/local/mysql
根据需求使用以下命令 依次 对配置文件进行删除
rm -rf /var/lib/mysql
安装msyql
1.2.1 下面mysql官网提供的mysql repo源
centos的yum 源中默认是没有mysql的,所以我们需要先去官网下载mysql的repo源并安装;
mysql官网下载链接:mysql repo下载地址 如下:
或者执行命令下载YUM源rpm安装包:
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
1.2.2 安装 yum repo文件并更新 yum 缓存
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
执行结果:
会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo
更新 yum 命令
yum clean all
yum makecache
1.2.3 使用 yum安装mysql
当我们在使用yum安装mysql时,yum默认会从yum仓库中安装mysql最新的GA版本;如何选择自己的版本;
第一步: 查看mysql yum仓库中mysql版本,使用如下命令
yum repolist all | grep mysql
可以看到 MySQL 5.5 5.6 5.7为禁用状态 而MySQL 8.0为启用状态;
如果您不想安装mysql8.0的版本我们可以按下面操作去做,要是安装的mysql8.0版本这步可以略过。
使用 yum-config-manager 命令修改相应的版本为启用状态最新版本为禁用状态:
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
或者可以编辑 mysql repo文件,将相应版本下的enabled改成 1 即可:
cat /etc/yum.repos.d/mysql-community.repo
1.2.4 安装mysql 命令如下:
yum install mysql-community-server
1.2.5 开启mysql 服务
systemctl start mysqld.service
1.2.6 获取初始密码登录mysql
mysql在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中;
cat /var/log/mysqld.log | grep password
使用初始密码登录mysql
mysql -u root -p
修改初始密码:所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
创建远程连接
create user 'admin'@'%' identified by '123456';
grant all on *.* 'admin'@'%' with grant option;
flush privileges;
注意:
如果遗忘了mysql登录密码,怎么办?
1、检查mysql
服务是否启动,如果启动,关闭mysql
服务
运行命令:ps -ef | grep -i mysql
如果开着就运行关闭的命令:service mysqld stop
2.修改mysql的配置文件my.conf
一般在/etc目录下,运行命令:vi /etc/my.cnf,编辑文件,在文件的[mysqld]标签下添加一句:
然后wq!保存退出。skip-grant-tables,
3.重启数据库
运行命令:service mysqld start
4.将旧密码置空
mysql -u root -p //提示输入密码时直接敲回车。
//选择数据库
use mysql;
//将密码置空
update user set authentication_string = '' where user = 'root';
//退出
quit;
5.去除免密码登陆
删掉步骤1的语句 skip-grant-tables
重启服务 service mysqld restart
6、修改密码
mysql -u root -p //提示输入密码时直接敲回车,刚刚已经将密码置空了
ALTER USER 'root'@'localhost' IDENTIFIED BY 'abc123@xxx';//'abc123@xxx' 密码形式过于简单则会报错
密码策略问题异常信息:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
解决办法:
1、查看 mysql 初始的密码策略,输入语句 “ SHOW VARIABLES LIKE 'validate_password%'; ” 进行查看,如下图:
2、首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,输入设值语句 “ set global validate_password.policy=LOW; ” 进行设值
3、当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 6 位的密码,设置 validate_password_length 的全局参数为 6 即可,输入设值语句 “ set global validate_password.length=6; ” 进行设值
4、现在可以为 mysql 设置简单密码了,只要满足六位的长度即可,输入修改语句 “ ALTER USER 'root'@'localhost' IDENTIFIED BY 'binleen'; ” 可以看到修改成功,表示密码策略修改成功了!!!
关于 mysql 密码策略相关参数;
1)、validate_password.length 固定密码的总长度;
2)、validate_password.dictionary_file 指定密码验证的文件路径;
3)、validate_password.mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
4)、validate_password.number_count 整个密码中至少要包含阿拉伯数字的个数;
5)、validate_password.policy 指定密码的强度验证等级,默认为 MEDIUM;
关于 validate_password.policy 的取值:
0/LOW:只验证长度;
1/MEDIUM:验证长度、数字、大小写、特殊字符;
2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
6)、validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;
四、安装redis、swoole扩展
1、安装pecl
wget http://pear.php.net/go-pear.phar -O go-pear.php
php go-pear.php
##回车默认安装
# 安装编译依赖
yum -y install gcc gcc-c++ make cmake automake autoconf
2、pecl自动安装redis、swoole
yum install GeoIP-devel GeoIP-data
pecl install igbinary
pecl install redis
pecl install swoole
如需卸载,可以执行如下命令
# pecl uninstall redis
Build process completed successfully
Installing '/usr/lib64/php/modules/igbinary.so'
Installing '/usr/include/php/ext/igbinary/php_igbinary.h'
Installing '/usr/include/php/ext/igbinary/igbinary.h'
Installing '/usr/include/php/ext/igbinary/src/php7/php_igbinary.h'
Installing '/usr/include/php/ext/igbinary/src/php7/igbinary.h'
install ok: channel://pecl.php.net/igbinary-3.1.2
configuration option "php_ini" is not set to php.ini location
You should add "extension=igbinary.so" to php.ini
.
.
.
Build process completed successfully
Installing '/Applications/MAMP/bin/php/php7.3.1/lib/php/extensions/no-debug-non-zts-20180731/redis.so'
install ok: channel://pecl.php.net/redis-4.3.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=redis.so" to php.ini
最后,需要在 php.ini 配置文件里添加如下信息,然后重启 php-fpm
[Igbinary]
extension_dir="/usr/lib64/php/modules/"
extension=igbinary.so
[Redis]
extension_dir="/usr/lib64/php/modules/"
extension=redis.so
[Swoole]
extension_dir="/usr/lib64/php/modules/"
extension=swoole.so
systemctl restart php-fpm
php安装redis报错undefined symbol: php_json_decode_ex
原因是 包含redis扩展之前要先包含json扩展。。。。
extension=json.so
[Igbinary]
extension_dir="/usr/lib64/php/modules/"
extension=igbinary.so
[Redis]
extension_dir="/usr/lib64/php/modules/"
extension=redis.so
[swoole]
extension_dir="/usr/lib64/php/modules/"
extension=swoole.so
注:php7.3 按照最新版redis扩展,报错redis.so无法加载的解决方法
1、下载redis4.2版本:wget http://pecl.php.net/get/redis-4.2.0.tgz
2、解压:tar -zxvf redis-4.2.0.tgz
3、切换到源码目录下,执行phpize
4、添加php-config配置
5、执行编译命令 make && make install
6、安装完成后,在php.ini配置文件中添加
[Redis]
extension_dir="/usr/lib64/php/modules/"
extension=redis.so
[root@wf ~]# wget http://pecl.php.net/get/redis-4.2.0.tgz
[root@wf ~]# tar -zxvf redis-4.2.0.tgz
[root@wf ~]# whereis phpize
phpize: /usr/bin/phpize
[root@wf ~]# whereis php-config
php-config: /usr/bin/php-config
//到源码目录
[root@wf redis-4.2.0]# /usr/bin/phpize
[root@wf redis-4.2.0]# ./configure --with-php-config=/usr/bin/php-config
[root@wf redis-4.2.0] make && make install