请问如何升级mysql版本和php版本
下载解压
去php官方下载页面,随便选择一个你的服务器所在国家的镜像,鼠标右键复制链接。
$ wget http://am1.php.net/get/php-7.0.0.tar.gz/from/this/mirror
解压下载到的压缩包
$ tar xf php-7.0.0.tar.gz$cd php-7.0.0
安装前配置
解决依赖包
yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel
利用linux的make安装方式,我们需要在make之前对软件的编译进行配置。这里需要留意,如果编译之前没有配置对应的选项,会导致不生成某些模块,后面可能会遇到问题。
./configure --prefix=/usr/local/php7 \--with-config-file-path=/usr/local/php7/etc \--with-config-file-scan-dir=/usr/local/php7/etc/php.d \--with-apxs2=/usr/local/apache/bin/apxs \--with-mcrypt=/usr/include \--enable-mysqlnd \--with-mysqli \--with-pdo-mysql \--with-gd \--with-iconv \--with-zlib \--enable-xml \--enable-shmop \--enable-sysvsem \--enable-inline-optimization \--enable-mbregex \--enable-mbstring \--enable-ftp \--enable-gd-native-ttf \--with-openssl \--enable-pcntl \--enable-sockets \--with-xmlrpc \--enable-zip \--enable-soap \--without-pear \--with-gettext \--enable-session \--with-curl \--with-jpeg-dir \--with-freetype-dir \--enable-opcache
上面的这段配置,蓝色选项根据你的服务器部署,修改成为你自己的实际路径。
编译安装
原本在linux中,在configure之后,只需要make就可以进行编译了,但是由于不同的环境,会出现不同的错误,比如我的服务器上,出现了提示libiconv错误,我在往上还看到libmcrypt错误。所以,在编译的时候,我们可能需要根据编译中出现的情况,安装对应的一些模块或软件环境。如果编译错误后无法继续编译,可以使用make clean再来编译。
我再编译的时候,出现了libiconv错误,同时,我们的服务器是双核的,所以,我用了下面的命令进行编译:
$ gmake -j2 ZEND_EXTRA_LIBS='-liconv'
-j2表示用双核cup去编译,编译速度更快。总之,编译中出现了什么错误,就到网上去查怎么解决。
完成编译之后,进行安装即可。
$ make install
配置apache
如果上面的编译安装正常,由于我们配置了apxs选项,所以在编译的时候,make会对apache的apxs进行调用操作,结果就是在apache的安装目录下的modules目录下生成libphp7.so,并在apache的配置文件httpd.conf中增加一行
LoadModule php7_module modules/libphp7.so
一看就明白了,就是让apache去加载一个新的libphp7.so模块。但是我们仍然要对httpd.conf进行修改,重新配置apache。找到LoadModule php,你会发现,竟然出现了两行LoadModule,同时加载了php5和php7,如下:
LoadModule php5_module modules/libphp5.soLoadModule php7_module modules/libphp7.so
我们把第一行给注释掉,而且还要增加一个PHPIniDir的配置项,即修改为如下:
#LoadModule php5_module modules/libphp5.soLoadModule php7_module modules/libphp7.soPHPIniDir /usr/local/php7/etc
重启apache,现在可以写一个phpinfo去试试看了。
php的配置文件
在php默认安装状态下你可能发现 /usr/local/php7下没有etc目录,也就没有php.ini文件。这是正常的,不过你可以自己创建php.ini,也可以从php源码目录中找到两个php.ini-xxx文件,拷贝一个过去,改名为php.ini即可。
cd ~/php-7.0.0mkdir /usr/local/php7/etccp php.ini-production /usr/local/php7/etc/php.ini
如果你的服务器上面还安装了mysql,其实不用再做其他配置,我们在configure的时候,让php7也支持mysql,如果你原来的lamp环境中已经可以正常连接mysql了,那么现在php7其实也可以正常连接mysql,mysql不需要做任何配置修改。
下载解压
去php官方下载页面,随便选择一个你的服务器所在国家的镜像,鼠标右键复制链接。
解压下载到的压缩包
$ tar xf php-7.0.0.tar.gz$cd php-7.0.0
安装前配置
解决依赖包
利用linux的make安装方式,我们需要在make之前对软件的编译进行配置。这里需要留意,如果编译之前没有配置对应的选项,会导致不生成某些模块,后面可能会遇到问题。
上面的这段配置,蓝色选项根据你的服务器部署,修改成为你自己的实际路径。
编译安装
原本在linux中,在configure之后,只需要make就可以进行编译了,但是由于不同的环境,会出现不同的错误,比如我的服务器上,出现了提示libiconv错误,我在往上还看到libmcrypt错误。所以,在编译的时候,我们可能需要根据编译中出现的情况,安装对应的一些模块或软件环境。如果编译错误后无法继续编译,可以使用make clean再来编译。
我再编译的时候,出现了libiconv错误,同时,我们的服务器是双核的,所以,我用了下面的命令进行编译:
-j2表示用双核cup去编译,编译速度更快。总之,编译中出现了什么错误,就到网上去查怎么解决。
完成编译之后,进行安装即可。
$ make install
配置apache
如果上面的编译安装正常,由于我们配置了apxs选项,所以在编译的时候,make会对apache的apxs进行调用操作,结果就是在apache的安装目录下的modules目录下生成libphp7.so,并在apache的配置文件httpd.conf中增加一行
一看就明白了,就是让apache去加载一个新的libphp7.so模块。但是我们仍然要对httpd.conf进行修改,重新配置apache。找到LoadModule php,你会发现,竟然出现了两行LoadModule,同时加载了php5和php7,如下:
LoadModule php5_module modules/libphp5.soLoadModule php7_module modules/libphp7.so
我们把第一行给注释掉,而且还要增加一个PHPIniDir的配置项,即修改为如下:
重启apache,现在可以写一个phpinfo去试试看了。
php的配置文件
在php默认安装状态下你可能发现 /usr/local/php7下没有etc目录,也就没有php.ini文件。这是正常的,不过你可以自己创建php.ini,也可以从php源码目录中找到两个php.ini-xxx文件,拷贝一个过去,改名为php.ini即可。
如果你的服务器上面还安装了mysql,其实不用再做其他配置,我们在configure的时候,让php7也支持mysql,如果你原来的lamp环境中已经可以正常连接mysql了,那么现在php7其实也可以正常连接mysql,mysql不需要做任何配置修改。