PHP5.6.40,7.0,7.1 版本安装部署踩过的坑分享

2023-10-23 10:10

本文主要是介绍PHP5.6.40,7.0,7.1 版本安装部署踩过的坑分享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一 服务器OS和MYSQL,NGINX版本如下:

centos 7.2

mysql5.7 

nginx1.15

php7.0

二  php7.0 安装

centos,mysql nginx 安装省略

主要说 php安装 

A 首先安装的通过yum install(默认安装目录,使用tar包安装,安装后的各个文件路径不同而已,这里不赘述) 安装后发现 连接不了数据库缺少驱动,现象 could not find driver,查看库文件默认目录/usr/lib64/php/modules 没有pdo-mysql.so, 然后使用 php-m 命令查看 pdo-mysql.so 是否加载了,再然后没有加载这个库文件(库文件中没有,pdo-mysql.so 一般都不可能加载的)。

B 试了好多方法 说再yum install pdo pdo-mysql php-pdo 修改php.ini 等,无果。最后下载 wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz 

然后解压
tar -zxvf PDO_MYSQL-1.0.2.tgz

进入解压后的目录 cd PDO_MYSQL-1.0.2,然后执行php 命令 phpize,如果 报错,没装什么就使用yum安装什么就行了。

ok 后 再执行 ./configure --with-php-config=/usr/local/bin/php-config --with-pdo-mysql=/usr/local/mysql/ 

第一个--with 是 /usr/local/bin/php-config

第二个--with 是mysql安装路径

执行完成,make编译一下,没问题继续make install 完成,会生成一个文件夹,里面有pdo_mysql.so这就是我们要的东西。

问题就出来 make 编译时候 报各种错误 ,说一些方法缺失参数等,兼容性问题,除非修改c++ 源码了。经过多次折腾无果。放弃改做法。

C 安装 php5.7.40 发现又缺少gd.so  图像处理库文件 ,现象是图形验证码显示不了。经过折腾最后也放弃了。

D 最后安装的 php7.0 在朋友的一再鼓励下安装并且给了指导。安装过程如下:

1 使用以下命令将yum仓库包升级更换成PHP7的rpm包。

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

2 先使用yum命令安装基本PHP组件,以后要用到啥再安装啥。

yum -y install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64

再安装PHP-fpm(进程管理器,提供PHP进程管理方式,可以有效控制内存和进程、平滑重载PHP配置)

yum -y install php70w-fpm php70w-opcache

安装完之后启动php-fpm

systemctl start php-fpm

查看版本以检测是否安装成功 php-v

E 检测PHP是否能与Nginx互通

详看参考 php7.0 安装,该步骤没有遇到坑。

F 检测PHP是否能与mysql互通 (坑在此)

详看参考 php7.0 安装 遇到了坑,并且也没有报错 重启 php-fpm 和nginx 服务 还是连不上数据库 然后通过 php -i 或者 php -v 发现警告信息 如下 :

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/mysqli.so' 
- /usr/lib64/php/modules/mysqli.so: symbol mysql_change_user, 
version libmysqlclient_18 not defined in file libmysqlclient.so.18 with link time reference in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_mysql.so' 
- /usr/lib64/php/modules/pdo_mysql.so: symbol mysql_options, version libmysqlclient_18 not defined in file libmysqlclient.so.18 with link time reference in Unknown on line 0
PHP 7.0.33 (cli) (built: Dec  6 2018 22:30:44) ( NTS )

网上找了很久无果 最后都绝望了 包括朋友也是 ,再然后 我抱着试一试的态度 百度搜索了 mysql_options, version libmysqlclient_18 not defined in file libmysqlclient.so.18 看到一篇文章

重新安装mysql 库

yum install mysql-libs -y

然后 再 php -v 没有警告了 并且能连上数据库了。

三 总结

1 php和php-fpm 安装 需要一些库文件 很可能 就没有安装到位,并且各种奇怪的错误,需要冷静,不放弃,多尝试。

2 php ,php-fpm ,nginx ,mysql 版本繁多,最好使用常用文档版本不要一味追逐最新版本,可能不兼容等导致采坑不断。

3 使用docker 安装

4 遇到这类问题最好找熟悉的朋友同事给予积极指导等。

 

备注

1 php7.0 安装 https://www.cnblogs.com/pandawan/p/11100311.html

2 https://blog.csdn.net/weixin_34174322/article/details/91958876

3 docker 安装 nignx+php7.3+mysql 环境搭建链接:

http://note.youdao.com/noteshare?id=7a3d1b4ab11ba81f722f9a73cc39db91&sub=2C11979406534A0A812367F70AE25AA7

 

这篇关于PHP5.6.40,7.0,7.1 版本安装部署踩过的坑分享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/267181

相关文章

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根