RHEL6.8编译安装LAMP环境:httpd-2.4+mysql5.6+php5.5;基于LAMP环境部署WordPress。
本文大纲:
1、安装前准备
2、编译安装Apache
3、源码编译安装Mysql数据库
4、编译安装PHP
5、配置httpd服务,使其支持php
6、安装Xcache加速器
7、启用服务器状态页面
8、PHP连接Mysql测试
9、基于LAMP环境,部署WordPress
所有软件包的网站下载地址:
apr和apr-util:http://apr.apache.org/
httpd:http://httpd.apache.org/
三条主线:2.0/2.2/2.4/
mysql:http://dev.mysql.com/downloads/mysql/
现在页面默认是5.7,也可以在页面里选择5.6/5.5的版本,源码安装选择最下面的Source Code,然后选择最下面的tar.gz的压缩包
libmcrypt和libmcrypt-devel:https://pkgs.org/
php:http://php.net/downloads.php
xcache:http://xcache.lighttpd.net
wordpress:https://cn.wordpress.org/
本文档中所有软件包集合下载地址:
到Linux公社1号FTP服务器下载
------------------------------------------分割线------------------------------------------
在 2016年LinuxIDC.com/11月/RHEL6.8编译安装LAMP环境部署WordPress/
------------------------------------------分割线------------------------------------------
下面关于LAMP相关的内容你可能也喜欢:
1、安装前准备
卸载原有httpd-2.2
[root@WebServer ~]# cp /etc/init.d/httpd /etc/init.d/httpd.bak # 备份这个文件后面做服务器脚本文件
[root@WebServer ~]# yum remove httpd -y
2、编译安装Apache
1)解决依赖关系
httpd-2.4.23需要较新版本的apr和apr-util,因此需要事先对其进行升级。升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包。
(1)编译安装apr
[root@WebServer ~]# cd apr-1.5.2
[root@WebServer ~]# tar -zxvf apr-1.5.2.tar.gz
[root@WebServer ~]# ./configure --prefix=/usr/local/apr # 设置安装路径
[root@WebServer ~]# make && make install
(2)编译安装apr-util
[root@WebServer ~]# tar -zxvf apr-util-1.5.4.tar.gz
[root@WebServer ~]# cd apr-util-1.5.4
[root@WebServer ~]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# --prefix指定安装路径;--with-apr指定apr的安装路径,apr-util依赖于apr
[root@WebServer ~]# make && make install
(3)httpd-2.4.23编译过程也要依赖于pcre-devel软件包和openssl,需要事先安装。
[root@WebServer ~]# yum install pcre-devel
[root@WebServer ~]# yum install openssl-devel -y
2)编译安装httpd-2.4.23
[root@WebServer ~]# tar -zxvf httpd-2.4.23.tar.gz
[root@WebServer ~]# cd httpd-2.4.23
[root@WebServer httpd-2.4.23]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-cgid --enable-modules=most --enable-mods-shared=most --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-mpms-shared=all --with-mpm=event
--sysconfdir=/etc/httpd :指定配置文件安装位置
--enable-so :支持动态共享模块如果没有这个模块PHP将无法与apache结合工作
--enable-ssl :启用支持ssl
--enable-cgi :支持cgi
--enable-rewrite :支持URL重写
--with-zlib :压缩库,在互联网上传播时可节约带宽
--with-apr=/usr/local/apr :指定apr路径
--with-apr-util=/usr/local/apr-util :指定apr-util路径
--enable-mpms-shared=all :支持多道处理模块
--with-mpm=event :设定默认的模块
[root@WebServer httpd-2.4.23]# make && make install # 编译和安装
动态模块和静态模块的说明:
(1)构建MPM为静态模块
在全部平台中,MPM都可以构建为静态模块。在构建时选择一种MPM,链接到服务器中。如果要改变MPM,必须重新构建。为了使用指定的MPM,请在执行configure脚本 时,使用参数 --with-mpm=NAME。NAME是指定的MPM名称。编译完成后,可以使用 httpd -l 来确定选择的MPM。 此命令会列出编译到服务器程序中的所有模块,包括 MPM。
(2)构建 MPM 为动态模块
在Unix或类似平台中,MPM可以构建为动态模块,与其它动态模块一样在运行时加载。 构建 MPM 为动态模块允许通过修改LoadModule指令内容来改变MPM,而不用重新构建服务器程序。在执行configure脚本时,使用--enable-mpms-shared选项即可启用此特性。当给出的参数为all时,所有此平台支持的MPM模块都会被安装。还可以在参数中给出模块列表。默认MPM,可以自动选择或者在执行configure脚本时通过--with-mpm选项来指定,然后出现在生成的服务器配置文件中。编辑LoadModule指令内容可以选择不同的MPM。
3)修改httpd的主配置文件,设置其Pid文件的路径
[root@WebServer httpd-2.4.23]# cd /etc/httpd/
[root@WebServer httpd]# cp httpd.conf httpd.conf.bak
[root@WebServer httpd]# vim httpd.conf
说明:手动编译安装后,httpd.pid文件是存放在/usr/local/apache/logs/目录下的,这个位置未免有些不方便。
在配置文件中找一个位置定义一下Pid文件路径就可以了
Pidfile "/var/run/httpd.pid"
4)提供SysV服务脚本/etc/init.d/httpd
[root@WebServer ~]# cp /etc/init.d/httpd.bak /etc/init.d/httpd
[root@WebServer ~]# vim /etc/init.d/httpd # 此脚步是系统默认安装了httpd2.2自带的脚本,如果没有这个脚本,可以直接复制下面的代码
#!/bin/bash
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve \
. /etc/rc.d/init.d/functions ## -----读取函数
if [ -f /etc/sysconfig/httpd ]; then
. /etc/sysconfig/httpd
fi
# Start httpd in the C locale by default.
HTTPD_LANG=${HTTPD_LANG-"C"}
# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""
# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
# with the thread-based "worker" MPM; BE WARNED that some modules may not
# work correctly with a thread-based MPM; notably PHP will refuse to start.
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache/bin/apachectl # -----指定apachectl程序位置
httpd=${HTTPD-/usr/local/apache/bin/httpd} # -------httpd程序位置
prog=httpd
pidfile=${PIDFILE-/var/run/httpd.pid} # ----如果文件存在就使用存在文件路径,如果不存在就使用/var/rum/httpd.pid
lockfile=${LOCKFILE-/var/lock/subsys/httpd} ## --------创建的锁文件
RETVAL=0
start() {
echo -n $"Starting $prog: "
LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS ## ----以$pidfile文件执行httpd 并且使用选项start
RETVAL=$? ## ------定义执行状态返回值
echo
[ $RETVAL = 0 ] && touch ${lockfile} ## -----成功时创建锁文件
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc -p ${pidfile} -d 10 $httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}
reload() {
echo -n $"Reloading $prog: "
if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
RETVAL=$?
echo $"not reloading due to configuration syntax error"
failure $"not reloading $httpd due to configuration syntax error"
else
killproc -p ${pidfile} $httpd -HUP
RETVAL=$?
fi
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status -p ${pidfile} $httpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if [ -f ${pidfile} ] ; then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest|fullstatus)
$apachectl $@
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
exit 1
esac
exit $RETVAL
[root@WebServer ~]# chmod +x /etc/init.d/httpd # 添加执行权限
[root@WebServer ~]# chkconfig httpd --add # 开启自动启动
[root@WebServer ~]# chkconfig httpd on
[root@WebServer ~]# chkconfig httpd --list
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
5)为httpd服务的相关命令添加环境变量
[root@WebServer ~]# vim /etc/profile.d/httpd.sh
export PATH=$PATH:/usr/local/apache/bin
[root@WebServer ~]# source /etc/profile.d/httpd.sh
# 测试一下
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
Syntax OK
# 似乎报错了,这个可以忽略不计,没有设置ServerName,不影响使用,可以设置一下:
[root@WebServer ~]# vim /etc/httpd/httpd.conf
ServerName
[root@WebServer ~]# httpd -t
Syntax OK
[root@WebServer ~]# /etc/init.d/httpd restart
Stopping httpd: [FAILED]
Starting httpd: [ OK ]
[root@WebServer ~]# /etc/init.d/httpd reload
Reloading httpd:
6)启动apache并测试
[root@WebServer ~]# /etc/init.d/httpd restart # 重启
Stopping httpd: [ OK ]
Starting httpd:
使用浏览器访问:
3、安装Mysql数据库
1)前期准备
查看是否已经安装了mysql,如果已经安装,卸载mysql
rpm -qa | grep mysql # 查看
yum remove mysql -y # 卸载
安装编译源码所需的工具和库
yum install gcc gcc-c++ ncurses-devel perl cmake libaio
注意:重新运行配置,需要删除CMakeCache.txt文件
[root@WebServer mysql-5.6.34]# rm -f CMakeCache.txt
编译安装
[root@WebServer mysql-5.6.34]# make && make install # 过程有些漫长
修改配置文件