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

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

  1. 中科院刘康:低资源环境下的事件知识抽取

    不到现场,照样看最干货的学术报告! 嗨,大家好.这里是学术报告专栏,读芯术小编不定期挑选并亲自跑会,为大家奉献科技领域最优秀的学术报告,为同学们记录报告干货,并想方设法搞到一手的PPT和现场视频--足 ...

  2. Apache Maven 使用 profile 和 filtering 实现多种环境下的资源配置管理

     http://archboy.org/2012/05/21/apache-maven-profile-filtering-multiple-build-environments/ 构建项目时可能 ...

  3. 【Linux运维-集群技术进阶】集群/分布式环境下5种session处理策略

    前言 在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处理.如果不做任何处理的话,用户将出现频繁登录的现象,比如集群中存在A.B两台服务器,用户在第一次访问网站时,Ngin ...

  4. Centos7.4 版本环境下安装Mysql5.7操作记录

    Centos7.x版本下针对Mysql的安装和使用多少跟之前的Centos6之前版本有所不同的,废话就不多赘述了,下面介绍下在centos7.x环境里安装mysql5.7的几种方法: 一.yum方式安 ...

  5. ACT5.6 动手实验手册 如何在工作组模式下对客户端进行数据收集 如何在AD域环境下对...

    ACT5.6 动手实验手册 实验的目标 这个实验的目的是: · 了解如何部署ACT5.6 · 了解如何在工作组模式下对客户端进行数据收集 · 了解如何在AD域环境下对客户端进行数据收集 本次试验大约6 ...

  6. centos7下安装低版本mysql_centos7下使用yum安装制定版本mysql

    一.准备mysql镜像源 到官网找mysql的yum源 wget https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm r ...

  7. windows下编译c语言文件路径,解决JNI在Windows环境下因长路径导致编译失败问题

    之前听一个朋友反馈LuaScriptoCore在Windows下编译会报错,今天特意跑到Windows环境下测试了一番,果然是存在问题.得到了下面的编译报错信息: Build command fail ...

  8. 解决html5语意标签在IE低版本浏览器下的兼容问题:

    方法一:手动改写. 1.在body中写入h5语意标签,这里用nav标签举例子:<nav></nav> 2.在js中手动创建h5的语意标签:document.createElem ...

  9. linux 6.5升级nss,centos6.5 - centos 6.5系统PHP环境下的CURL库的SSL Version默认为NSS,怎么变更为OpenSSL?...

    现在要求PHP的环境支持TSL1.2和SHA-256,php的CURL库升级到curl 7.35.0,openssl升级到OpenSSL/1.0.1f,但是通过配资文件查看curl的SSL Versi ...

最新文章

  1. 备考一天速通计算机三级网络技术
  2. oracle ctl file constantnull,Oracle 的一些导入和导出方法
  3. micropython 网络驱动_network_网卡驱动
  4. java ReentrantLock 使用
  5. java 异步调用 shell_Java 实现异步调用
  6. 软件测试基础课程学习笔记2--贯穿软件生命周期的测试活动
  7. libevent:信号、超时、回调
  8. php 多字节截取,将多字节字符串截断为n个字符
  9. NYOJ 305 表达式求值 (字符串处理)
  10. 设计思想之高内聚低耦合
  11. vue template标签_vue为什么要求组件模板只能有一个根元素?
  12. 用html和css轻松实现康奈尔笔记(5R笔记)模板
  13. phpstorm连接mysql
  14. 技术分享 | 使用 Zabbix + Grafana 搭建服务器监控系统
  15. 个性化广告推荐系统及应用
  16. 【red hat设置用户密码】passwd命令设置初始口令
  17. FPS 游戏自瞄原理
  18. DorisDB之CBO优化器结构原理
  19. vs2015 打包程序(摘抄自博客园-流浪阿丁)
  20. LeetCode78-子集

热门文章

  1. linux 指令tftp传输文件_tftp命令_Linux tftp 命令用法详解:在本机和tftp服务器之间使用TFTP协议传输文件...
  2. JavaScript event loop事件循环 macrotask与microtask
  3. WebDriver API 元素定位(三)
  4. @FindBy、@FindBys、@FindAll的区别
  5. LintCode 402: Continuous Subarray Sum
  6. YoMail+ Worktile办公协同--颠覆传统邮件使用功能
  7. 仿照微信的效果,实现了一个支持多选、选原图和视频的图片选择器,适配了iOS6-10系统,3行代码即可集成....
  8. Lichee (六) 优化配置的微内核
  9. 12款优秀的 JavaScript 日历和时间选择控件
  10. Day11多态部分-1 【1.1 多态的体现】