ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## 扩展内容-版本升级 使用包管理器部署环境时,安装的版本是安装源中预先设定好的,一般的版本都比较低。所以为了满足咱们的实际需求,往往需要对其中的一些程序进行版本升级。在这里咱们重点介绍一下,php版本和mysql的升级。 ### 1. PHP版本的升级 在Centos6中,使用yum安装的默认PHP版本为5.3.3,如果要部署ThinkPHP5.0(>=PHP5.4)/ThinkPHP5.1(>=PHP5.6)项目的话,PHP的版本最低要求为5.6,所以需要对当前的PHP版本进行升级。升级方式如下: **下载外部yum源** 在升级PHP时会用到外部的yum源,详细内容可以登录https://webtatic.com/进行查阅。 ### Centos 5.X ~~~ rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm ~~~ ### CentOs 6.x ~~~ rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm ~~~ ### CentOs 7.X ~~~ 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 ~~~ > 注意:在linux下访问https连接时,出现如下错误: 一般情况看是因为系统时间,不对造成的,可以修改系统时间为当前时间,来解决,也可以,使用ntpdate 同步系统时间。一般linux系统不自带ntpdate命令,需要首先安装一下: ### 安装ntpdate 命令 ~~~ yum install ntpdate #同步系统时间 ntpdate time.windows.com ~~~ ![](https://box.kancloud.cn/b5b29937f5f3a1bf3a18089c5088f5cc_1327x431.png) > 注意,升级PHP版本之前,首先需要卸载旧的PHP,否则可能会发生冲突 ### 卸载PHP ~~~ yum remove php* ~~~ ### 查看当前可安装的PHP版本 ~~~ yum list |grep php yum install php70w.i386 # 这里的包名,首先使用yum list |grep php进行查询 ~~~ ### 2. 安装PHP 扩展 在这里首先需要安装一下,主要扩展,其它的扩展可以根据需要进行安装 cli、common、gd、ldap、mbstring、mcrypt、mysql、pdo、devel、pear、xml、xmlrpc、imap ~~~ yum install php70w-cli.i386 ~~~ ### 3. 安装PHP FPM 内存管理 ~~~ yum install php55w-fpm yum install php56w-fpm yum install php70w-fpm ~~~ 安装之后,需要启动 fpm ~~~ service php-fpm start ~~~ ### 重启apache ~~~ service httpd restart ~~~ 访问,index.php测试 在安装时,具体的包表,要根据实际情况进行调整 ### 2. mysql版本的升级 mysql的版本升级,和PHP的版本升级相同,并且mysql官方给的有yum源和相关的安装方法 登录mysql官网,https://dev.mysql.com/downloads/ 安装yum源 #### 1. 下载yum源或者直接找到yum源的下载地址 在这里要注意,要和你的Linux版本对应,在这里咱们以Centos6下安装mysql5.6为例、 ![](https://box.kancloud.cn/b2cca54f3866e18cc1bf19d48c1ab58d_1360x318.png) #### 2. 安装yum源 #### 下载安装 ~~~ rpm -Uvh mysql57-community-release-el6-11.noarch.rpm ~~~ #### 直接通过下载地址安装 ~~~ rpm -Uvh https://repo.mysql.com//mysql57-community-release-el6-11.noarch.rpm ~~~ 在这里要注意,安装后,mysql默认生效的仓库是5.7版本的。可以通过如下命令查看 ~~~ yum repolist enabled |grep mysql ~~~ #### 3.开启mysql的5.6版本的仓库 ~~~ yum repolist |grep mysql ~~~ 显示结果如下: ![](https://box.kancloud.cn/0067cac299738b4dff72dfc2fb4c22ee_1009x276.png) 以上显示结果说明,已经生效,但是并没有所需要的5.6版本 接下来,查看一下安装的仓库中是不是有5.6版本的 ~~~ yum repolist all |mysql ~~~ 显示结果如下: ![](https://box.kancloud.cn/ffd470c2ae75ca8a308ef2773944a7d0_1194x724.png) 以上显示结果说明,5.6版本的仓库没有开启,通过编库yum源开启5.6版本的仓库即可。 编辑 `vim /etc/yum.repos.d/mysql-community.repo`,只需要把 enabled=1即可 ~~~ Enable to use MySQL 5.6 [mysql56-community] name=MySQL 5.6 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/6/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql ~~~ ![](https://box.kancloud.cn/be53fa7be59be3d092fda0d56ee3372c_1022x329.png) 通过上面的设置后,就可以正常安装mysql5.6了 ### 4. 安装mysql5.6 ~~~ yum install mysql-community-server #安装后,启动mysql service mysqld start ~~~ 在启动mysqld时可能会启动失败,出现如下错误提示: ![](https://box.kancloud.cn/6c62779135ba11e73cc543fdd31b54ea_1067x103.png) 如果直接输入 执行 mysql 会提示:这个提示是说明没有启动mysql服务 ![](https://box.kancloud.cn/2a1760cc2346a292a6d892844e2c8a87_1256x102.png) 【解决办法】删除 /var/lib/mysql/*即可 ~~~ rm -fr /var/lib/mysql/* ~~~ 然后即可启动mysql。 mysql初始化以及root 密码的设置等都和之前的设置方式一致。 #### 注意 如果安装的是5.7以上版本时,mysql的默认密码不是为空的,所以直接使用mysql 是不能登录mysql的,而是会提示如下错误! ![](https://box.kancloud.cn/0cf7ab30ff621615ee39da84eb2a2de1_1255x129.png) ### 解决办法: 停止mysql ~~~ service mysqld stop ~~~ 或者 ~~~ killall mysqld ~~~ 启动mysql,并加入 --skip-grant-tables参数,绕过授权表,直接登录mysql ~~~ mysqld_safe --skip-grant-tables ~~~ 接下来输入mysql即可直接登录mysql ~~~ mysql #此时可以直接进入mysql mysql> ~~~ 为root设置密码 ~~~ mysql>use mysql; #如果是5.7以前版本,使用下面命令修改密码 mysql>update user set password=password('new password') where user='username'; #如果是5.7之后版本,使用下面命令修改密码 mysql> UPDATE user SET authentication_string=PASSWORD("new password") WHERE user='username'; ~~~ 刷新权限表,并退出mysql ~~~ mysql>FLUSH PRIVILEGES;#刷新权限 mysql>quit;# 退出mysql ~~~ 再登录录即可以使用密码正常登录mysql 但是登录之后,你可能会发现,无论执行什么操作都会提示如下错误 ~~~ ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. ~~~ ![](https://box.kancloud.cn/6775278e54962c2fdaba874e5a5342a9_1212x97.png) #### 解决办法 重新绕过权限表,登录mysql 登录之后执行如下命令: ~~~ mysql>set password =password('123456'); ~~~ 到这里可能会提示如下错误 ~~~ ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement ~~~ ![](https://box.kancloud.cn/9ecea3333250aa158e8062d6d2f4cf9b_1223x105.png) 刷新权限后,再次执行 ~~~ mysql>set password =password('123456'); mysql>FLUSH PRIVILEGES;#刷新权限 mysql>set password =password('123456'); ~~~ 最后,刷新权限退出即可。 ~~~ mysql>FLUSH PRIVILEGES;#刷新权限 mysql>quit; ~~~