CentOS6.5在已有低版本环境下安装升级Apache+MySQL+PHP,centos6.5apache


由于最近工作中遇到了一个在比较老旧RedHat系Linux发行版系统上升级安装Apache+MySQL+PHP环境的事情,鼓弄了半天,发现和在比较新的操作系统如CentOS7上安装配置还是有一定区别的,因此,在此记录一下主要的方法和过程,希望能帮到有同样需求的朋友。(注:有些文件目录可能和你的实际情况有出入,请按需调整)

CentOS6.5环境:
内核版本: 2.6.32-431.el6.x86_64
GLIBC版本:2.1.2

安装升级AMP版本(均为目前最新的稳定版本)说明:

原有低版本:
(1)Apache2.2.15
(2)MySQL5.1
(3)PHP5.3.3

待升级版本:
(1)Apache2.4.23
(2)MySQL5.7
(3)PHP 5.6.28

Apache升级安装

首先,说一下Apache的升级安装,从低版本环境升级到高版本Apache环境可以采用两种方法:

yum方法

升级安装步骤:
(1)配置yum仓库

cd /etc/yum.repos.d
wget http://repos.fedorapeople.org/repos/jkaluza/httpd24/epel-httpd24.repo

如果无法下载仓库文件成功,可参考以下文件内容自行构建:

# Place this file in your /etc/yum.repos.d/ directory

[epel-httpd24]
name=httpd-2.4 scl
baseurl=http://repos.fedorapeople.org/repos/jkaluza/httpd24/epel-$releasever/$basearch/
enabled=1
skip_if_unavailable=1
gpgcheck=0

[epel-httpd24-source]
name=httpd-2.4 scl - Source
baseurl=http://repos.fedorapeople.org/repos/jkaluza/httpd24/epel-$releasever/SRPMS
enabled=0
skip_if_unavailable=1
gpgcheck=0

(2)安装

yum install httpd24

yum方法可能遇到的坑:
1.httpd24安装后会自动兼容原有版本的Apache服务,安装到哪里去了?
你会发现通过yum安装,httpd24服务被安装到了/opt/rh/httpd24/root目录下,并且按照Linux根目录下的目录形式将httpd24分别的文件分别放置,比如主程序就在/opt/rh/httpd24/root/etc/httpd下,日志就在/opt/rh/httpd24/root/var/log/httpd下。
另外,通过chkconfig | grep httpd你会发现保留了原版本的httpd服务,另外增加了httpd24-httpd服务。httpd24以这种方式单独呈现,因此,所有的配置工作都需要在对应的目录下展开。

2.仍然需要你手动安装apxs 工具,用于在PHP编译中生成扩展模块。

apxs is a tool for building and installing extension modules for the Apache HyperText Transfer Protocol (HTTP) server.

需要支持PHP,就需要自己重新编译生成libphp5.so作为Apache服务器支持PHP的模块,因此,apxs 是必备条件,所以你仍然需要进行针对apxs 的源码包安装,你可以通过http://httpd.apache.org/docs/current/programs/apxs.html单独获取源码包进行编译安装。

源码包方法

源码下载地址:http://apache.fayea.com/httpd/需要下载httpd源码包以及deps依赖包,你可以通过源码包编译方式进行安装,这里就不多做介绍了。

MySQL升级安装

在PHP安装前,为了生成对MySQL的PDO连接模块,系统中需要首先安装MySQL Client,当然,如果需要服务端,你就需要进行安装,安装方法可以多种方法,这里可以参考MySQL的官网,以下以yum方法为例:
查看http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/说明,通过Yum方式安装MySQL5.7版本,通过http://dev.mysql.com/downloads/repo/yum/下载一个5.7版本的repo包,比如:

rpm -Uvh mysql57-community-release-el6-n.noarch.rpm

安装社区版MySQL Server

yum install mysql-community-server

安装后目录为:
/usr/local/mysql
通过阅读doc/INSTALL-BINARY进行用户、用户组、文件夹权限的配置工作,由于MySQL5.7版本的安全策略发生了一些变化,之后的主要步骤如下:
(1)初始化数据库

mysql_install_db --datadir=/var/lib/mysql –user=mysql

(2)忽略权限启动MySQL服务

mysqld_safe --skip-grant-tables &

(3)无密码登录

mysql -p

(4)修改root密码

update mysql.user set authentication_string=password('password') where user='root' and Host = 'localhost';
flush privileges;

(5)使用标准模式重新启动MySQL,带密码登录MySQL,再次确认修改密码:

alter user 'root'@'localhost' identified by 'password';
flush privileges;

PHP升级安装

由于需要生成libphp5.so作为Apache服务器支持PHP的模块,另外,考虑到指定编译选项有助于你最终生成各类扩展,所以,采用源码包安装。

这个可以通过http://php.net/get/php-5.6.28.tar.gz/from/a/mirror 进行下载

为了支持MySQL我们需要编译mysqlnd、pdo-mysql,并且编译一些必要的模块以及libphp5.so:

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc \
 --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with- \
pdo-mysql=/usr/local/mysql --with-mysql=mysqlnd  --with-libxml-dir \
 --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir  \
--with-zlib-dir --with-mcrypt=/usr/local/libmcrypt--enable-soap --enable- \
gd-native-ttf --enable-ftp     --enable-mbstring --enable-exif --disable-ipv6 \
--with-pear --with-curl --with-openssl --with-apxs2=/usr/local/apache2/bin/apxs

这里需要注意两点,一是pdo-mysql编译依赖MySQL Client的库,需要指明MySQL的安装目录,如–with-pdo-mysql=/usr/local/mysql。apxs2需要指明apxs程序的路径,如–with-apxs2=/usr/local/apache2/bin/apxs以便利用apxs生成libphp5.so模块。

另外,你也可以在PHP安装完成后,单独编译一些你所需要的模块,所有的扩展模块均在PHP源码包的ext目录下,如pdo-mysql,就在php-5.6.28/ext/pdo_mysql下,编译生成模块文件后,再通过配置php.ini的扩展进行手动添加,主要参考:
首先在模块源码目录下需要使用/usr/local/php/bin/phpize工具程序生成configure文件;
之后,完成正常的编译安装:

./configure -with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
make
make install

完成后会安装在/usr/local/php/lib/php/extensions/目录下,最终通过配置php.in文件开启extension模块即可。

PDO模块编译安装中可能遇到的坑:
对于在系统安装时就已经安装好的MySQL由于遍布在/usr目录下,在pdo-mysql配置时就直接指明为/usr目录即可,另外,有可能出现找不到libmysqlclient的情况出现,需要执行以下命令:

ln -s /usr/lib64/mysql/libmysqlclient.so.16 /usr/lib/libmysqlclient.so

一些可能在升级安装中需要的依赖包

pcrelib依赖

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

libmcrypt依赖

https://sourceforge.net/projects/mcrypt/?source=typ_redirect

相关内容

    暂无相关文章