阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

RHEL6.8编译安装LAMP环境部署WordPress

151次阅读
没有评论

共计 33606 个字符,预计需要花费 85 分钟才能阅读完成。

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 服务器下载

—————————————— 分割线 ——————————————

FTP 地址:ftp://ftp1.linuxidc.com

用户名:ftp1.linuxidc.com

密码:www.linuxidc.com

在 2016 年 LinuxIDC.com/11 月 /RHEL6.8 编译安装 LAMP 环境部署 WordPress/

下载方法见 http://www.linuxidc.com/Linux/2013-10/91140.htm

—————————————— 分割线 —————————————— 

下面关于 LAMP 相关 的内容你可能也喜欢

LAMP 平台安装 Xcache 和 Memcached 加速网站运行  http://www.linuxidc.com/Linux/2015-06/118835.htm 

CentOS 7 下搭建 LAMP 平台环境  http://www.linuxidc.com/Linux/2015-06/118818.htm

CentOS 6.5 系统安装配置 LAMP(Apache+PHP5+MySQL)服务器环境 http://www.linuxidc.com/Linux/2014-12/111030.htm

Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP(5.5.9)开发环境  http://www.linuxidc.com/Linux/2014-10/107924.htm

Ubuntu 14.10 下安装 LAMP 服务图文详解  http://www.linuxidc.com/Linux/2014-12/110082.htm

LAMP 结合 NFS 构建小型博客站点  http://www.linuxidc.com/Linux/2015-08/121029.htm

CentOS7 下安装部署 LAMP 环境  http://www.linuxidc.com/Linux/2016-04/130653.htm

Ubuntu 16.04 搭建 LAMP 开发环境 http://www.linuxidc.com/Linux/2016-10/136327.htm

1、安装前准备

修改 yum 源
[root@linuxidc ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo 
[root@linuxidc ~]# vim /etc/yum.repos.d/CentOS-Base.repo 
# 在末行模式下执行 %s/$releasever/6.8/g,6.8 为 6 系列中最新的版本号,如果是 CentOS6,不需要执行这一项
[root@linuxidc ~]# yum clean all
[root@linuxidc ~]# yum makecache

卸载原有 httpd-2.2
[root@WebServer ~]# cp /etc/init.d/httpd /etc/init.d/httpd.bak    # 备份这个文件后面做服务器脚本文件
[root@WebServer ~]# yum remove httpd -y

安装编译工具
[root@linuxidc ~]# yum groupinstall -y “Development Tools” “Server Platform Development”

关闭 SElinux
[root@linuxidc ~]# vim /etc/selinux/config
SELINUX=disabled    # 从新启动

关闭防火墙
[root@linuxidc ~]# /etc/init.d/iptables stop
[root@linuxidc ~]# chkconfig iptables off
[root@linuxidc ~]# chkconfig –list | grep iptables
iptables        0:off  1:off  2:off  3:off  4:off  5:off  6:off

修改主机名
[root@linuxidc ~]# hostname WebServer
[root@linuxidc ~]# vim /etc/sysconfig/network
HOSTNAME=WebServer
[root@linuxidc ~]# vim /etc/hosts
127.0.0.1  WebServer WebServer.linuxidc.com localhost4 localhost4.localdomain4
::1        localhost localhost.localdomain localhost6 localhost6.localdomain6
从新启动

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:

使用浏览器访问:

RHEL6.8 编译安装 LAMP 环境部署 WordPress

3、安装 Mysql 数据库
1)前期准备
查看是否已经安装了 mysql,如果已经安装,卸载 mysql

rpm -qa | grep mysql    # 查看
yum remove mysql -y    # 卸载

安装编译源码所需的工具和库
yum install gcc gcc-c++ ncurses-devel perl cmake libaio

说明:从 mysql5.5 起,mysql 源码安装开始使用 cmake 来设置源码编译配置脚本。
准备 mysql 数据存放的文件系统,由于 mysql 的数据文件是会增长的,而且占用空间很大。数据文件要放在一个单独的
LVM 分区上。这里就不做 lvm 逻辑卷了。直接创建一个目录替代。
[root@linuxidc ~]# mkdir -p  /mydata/data    # 数据存储目录
[root@linuxidc ~]# mkdir /usr/local/mysql    # mysql 程序目录

创建 mysql 的系统用户组和系统用户
[root@linuxidc ~]# groupadd -r mysql
[root@linuxidc ~]# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql
[root@linuxidc ~]# chown -R mysql:mysql /mydata/data    # 修改目录权限
[root@linuxidc ~]# chown mysql.mysql /usr/local/mysql/

从官网下载 mysql 源码包(最后是手动从官网下载,如果官网页面变更,这个路径就不对了)
[root@linuxidc src]# wget http://101.96.8.140/dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.34.tar.gz

2)使用 cmake 编译安装并初始化 mysql5.6.34
(1)编译安装
说明:mysql 安装包有三种式,rpm, 源码包,二进制包(已编译好,解压后简单配置一下就可以用),我这里用的就是源码包编译安装
[root@linuxidc src]# tar -zxvf mysql-5.6.34.tar.gz  # 解压
[root@linuxidc src]# cd mysql-5.6.34
# 使用 cmake 生成配置脚本。设置编译参数:
[root@WebServer mysql-5.6.34]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/mysqldb -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1
 
配置说明:
-DCMAKE_INSTALL_PREFIX=dir_name        # 设置 mysql 安装目录
-DMYSQL_UNIX_ADDR=file_name            # 设置监听套接字路径,这必须是一个绝对路径名。默认为 /tmp/mysql.sock
-DDEFAULT_CHARSET=charset_name    # 设置服务器的字符集。缺省情况下,MySQL 使用 latin1 的(CP1252 西欧)字符集。cmake/character_sets.cmake 文件包含允许的字符集名称列表。也可以设置为 UTF-8:-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=collation_name  # 设置服务器的排序规则。
-DWITH_INNOBASE_STORAGE_ENGINE=1 
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
存储引擎选项:
MyISAM,MERGE,MEMORY,和 CSV 引擎是默认编译到服务器中,并不需要明确地安装。
静态编译一个存储引擎到服务器,使用 -DWITH_engine_STORAGE_ENGINE= 1,可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和 PERFSCHEMA (Performance Schema)
-DMYSQL_DATADIR=dir_name                    设置 mysql 数据库文件目录
-DMYSQL_TCP_PORT=port_num                设置 mysql 服务器监听端口,默认为 3306
-DENABLE_DOWNLOADS=bool                    是否要下载可选的文件。例如,启用此选项(设置为 1),cmake 将下载谷歌所使用的测试套件运行单元测试。

    注意:重新运行配置,需要删除 CMakeCache.txt 文件
[root@WebServer mysql-5.6.34]# rm -f CMakeCache.txt

编译安装
[root@WebServer mysql-5.6.34]# make && make install # 过程有些漫长

(2)初始化 mysql5.6.34
[root@linuxidc ~]# cd /usr/local/mysql/
[root@linuxidc mysql]# chown -R mysql.mysql .   
# 因为是 root 用户下编译安装完成的,mysql 下所有文件默认属组和属主是 root
[root@linuxidc mysql]# ll
total 68
drwxr-xr-x.  2 mysql mysql  4096 Oct 15 00:13 bin
-rw-r–r–.  1 mysql mysql 17987 Sep 30 19:41 COPYING
drwxr-xr-x.  3 mysql mysql  4096 Oct 15 00:13 data
drwxr-xr-x.  2 mysql mysql  4096 Oct 15 00:13 docs
drwxr-xr-x.  3 mysql mysql  4096 Oct 15 00:13 include
drwxr-xr-x.  3 mysql mysql  4096 Oct 15 00:13 lib
drwxr-xr-x.  4 mysql mysql  4096 Oct 15 00:13 man
drwxr-xr-x. 10 mysql mysql  4096 Oct 15 00:13 mysql-test
-rw-r–r–.  1 mysql mysql  2496 Sep 30 19:41 README
drwxr-xr-x.  2 mysql mysql  4096 Oct 15 00:13 scripts
drwxr-xr-x. 28 mysql mysql  4096 Oct 15 00:14 share
drwxr-xr-x.  4 mysql mysql  4096 Oct 15 00:14 sql-bench
drwxr-xr-x.  2 mysql mysql  4096 Oct 15 00:14 support-files

 初始化 data 存放目录设置
[root@linuxidc mysql]# scripts/mysql_install_db –user=mysql –datadir=/mydata/data/
# 初始化 mysqldata 存放位置
[root@linuxidc mysql]# ls /mydata/data/ # 有数据说明初始化成功
ibdata1  ib_logfile0  ib_logfile1  mysql  performance_schema  test

初始化完成后 mysql 中目录文件的属主应改回成 root,以免被别人攻破 mysql 用户密码而带来数据破坏等
[root@linuxidc mysql]# pwd
/usr/local/mysql
[root@linuxidc mysql]# chown root -R /usr/local/mysql/*

3)为 mysql 提供主配置文件
初始化后会自动在当前目录下创建一个 my.cnf 配置文件,直接修改就可以(在 mysql 5.6 以后配置文件自动生成,不需要我们再进行复制),但是 /usr/local/mysql/support-files 目录下,有默认配置的配置文件,可以拷贝过去。
[root@linuxidc mysql]# cd support-files/
[root@linuxidc support-files]# ls
binary-configure  my-default.cnf      mysql-log-rotate
magic            mysqld_multi.server  mysql.server
[root@linuxidc support-files]# cp my-default.cnf /etc/my.cnf 
cp: overwrite `/etc/my.cnf’? y

修改配置文件

[root@linuxidc mysql]# vim /etc/my.cnf    # [mysqld]后添加以下三项
[mysqld]
datadir = /mydata/data
innodb_file_per_table = ON
skip_name_resolve = ON

4)为 mysql 提供 sysv 服务脚本并启动服务
[root@linuxidc support-files]# pwd
/usr/local/mysql/support-files
[root@linuxidc support-files]# cp mysql.server /etc/init.d/mysqld    # mysql 源码包自带服务脚本
[root@linuxidc support-files]# chkconfig –add mysqld
[root@linuxidc support-files]# chkconfig mysqld on
[root@linuxidc support-files]# chkconfig mysqld –list
mysqld            0:off  1:off  2:on    3:on    4:on    5:on    6:off
[root@linuxidc support-files]# /etc/init.d/mysqld start
Starting MySQL…. 
[root@linuxidc support-files]# netstat -tulnp | grep mysql    # 已经监听
tcp        0      0 :::3306                    :::*                        LISTEN      19605/mysqld

5)输出 mysql 的 man 手册至 man 命令的查找路径
[root@linuxidc support-files]# vim /etc/man.config 
MANPATH /usr/local/mysql/man

6)输出 mysql 的头文件至系统头文件路径 /usr/include
[root@linuxidc mysql]# ln -sv /usr/local/mysql/include/ /usr/include/mysql
`/usr/include/mysql’ -> `/usr/local/mysql/include/’

7)输出 mysql 的库文件给系统库查找路径
[root@linuxidc mysql]# vim /etc/ld.so.conf.d/mysql.conf 
/usr/local/mysql/lib    # 在系统的库文件自动加载目录下新建 mysql.conf 文件,直接将 mysql 的库路径路径写入
[root@linuxidc mysql]# ldconfig -v    #  让系统重新读取库文件

8)修改 PATH 环境变量,让系统可以直接使用 mysql 的相关命令
[root@linuxidc mysql]# vim /etc/profile.d/mysql.sh    # 添加环境变量(与添加 httpd 是一样的)
export PATH=$PATH:/usr/local/mysql/bin
[root@linuxidc mysql]# source /etc/profile.d/mysql.sh    # 重新读取一下环境变量

9)重启 mysql,测试并连接 mysql
[root@linuxidc mysql]# /etc/init.d/mysqld restart
Shutting down MySQL..                                      [OK]
Starting MySQL.                                            [OK]
[root@linuxidc mysql]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.34 Source distribution
 
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
 
mysql> show databases;
+——————–+
| Database          |
+——————–+
| information_schema |
| mysql              |
| performance_schema |
| test              |
+——————–+
4 rows in set (0.00 sec)

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-11/137528p2.htm

4、编译安装 PHP
个人觉得 php 的编译安装不是非常必要,除非要用到比较新版的 php,而系统默认的版本有太低。
如果不编译安装,直接 yum 安装即可
yum install -y php php-MySQL

(1)安装图片资源软件
[root@linuxidc src]# yum -y install gd gd-devel  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel

(2)安装 libxml(扩展标记语言)库
[root@linuxidc src]# yum -y  install libxml2 libxml2-devel

(3)安装 bzip2 压缩库
[root@linuxidc src]# yum install -y bzip2 bzip2-devel

(4)安装 mcrypt 加密库(这个是从网上下载的,下载路径在文档开头已经说过了)
[root@linuxidc src]# rpm -ivh libmcrypt-2.5.8-9.el6.x86_64.rpm 
warning: libmcrypt-2.5.8-9.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing…                ########################################### [100%]
  1:libmcrypt              ########################################### [100%]
[root@linuxidc src]# rpm -ivh libmcrypt-devel-2.5.8-9.el6.x86_64.rpm 
warning: libmcrypt-devel-2.5.8-9.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing…                ########################################### [100%]
  1:libmcrypt-devel        ########################################### [100%]

(5)编译安装 php 5.4.16

[root@linuxidc src]# tar -zxvf php-5.5.38.tar.gz ^C
[root@linuxidc src]# cd php-5.5.38
[root@WebServer php-5.5.38]# ./configure –prefix=/usr/local/php –with-mysql=/usr/local/mysql –with-openssl –with-mysqli=/usr/local/mysql/bin/mysql_config –enable-mbstring –with-gd –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –enable-xml  –enable-sockets –with-apxs2=/usr/local/apache/bin/apxs –with-mcrypt –with-config-file-path=/etc –with-config-file-scan-dir=/etc/php.d –with-bz2  –enable-maintainer-zts
–with-mysql=/usr/local/mysql:mysql 相关
–with-openssl : 让其能够支持 openssl 功能
–with-mysqli=/usr/local/mysql/bin/mysql_config :mysql 的另外一个接口,让 mysql 与 php 交互的接口;接口程序是 mysql_config, 是个二进制程序
–enable-mbstring : 多字节 string,支持中文或者是非一个字节能够表示的语言
–with-gd : 支持 gd 库
–with-freetpye-dir:支持 freetype 功能,freetype:自由的可移植的字体库,可以实现去引用特定字体的
–with-jpeg-dir:支持 jpeg 图片
–with-png-dir:支持 png 图片
–with-zlib:互联网上常用的,通用格式的压缩库,让数据文件先压缩再传送给客户端
–with-libxml-dir:xml(扩展标记语言),现在的很多系统在实现数据交互的时候,都要基于 xml 来实现,所以要 php 支持 xml,并且让其知道其库文件所在位置
–enable-sockets:让 php 支持基于套接字的通信
–with-apxs2:基于 apxs 实现让 php 编译成 apace 模块
–with-mcrypt:支持加密功能的,额外的加密库
–with-config-file-path :php 配置文件的路径放在了什么地方 主配置文件是 php.ini
–with-config-file-scan : 主配置文件的片段,也是配置文件,这个路径下以.ini 结尾的都是配置文件片段
–with-bz2 : 压缩库
–enable-maintainer-zts : 这一项的使用取决于 apache 是什么类型的,apache 使用的是 prefork 就不需要;如果使用的是 event 或者是 worker 就要添加这一项;apache 以线程工作就必须编译这一项
 
[root@WebServer php-5.5.38]# make && make install # 编译安装

(6)为 php 提供配置文件
[root@WebServer php-5.5.38]# ls | grep php.ini
php.ini-development    # 用于开发环境
php.ini-production    # 用于生产环境:把这项复制到 /etc/ 目录下重命名为 php.ini 即可;不需要启动服务,因为已经编译成 apache 模块了;是否启动服务要看工作模型,当做成 fastcgi 要启动服务
[root@WebServer php-5.5.38]# cp php.ini-production /etc/php.ini
# 在编译的时候已经指定了配置文件的路径,所以 php 会自动到 /etc/ 目录下去找其配置文件

5、配置 httpd 服务,使其支持 php

1)编辑 apache 配置文件 httpd.conf,以 apache 支持 php
(1)首先要在 httpd 配置文件中定义, 使 httpd 能够处理 php 结尾的文件 , 全文查找 AddType 字段,添加以下内容
[root@WebServer ~]# vim /etc/httpd/httpd.conf    # 添加三行
AddType application/x-compress .Z .php
AddType application/x-gzip .gz .tgz .phps
PHPIniDir “/usr/local/php”

(2)定位至 DirectoryIndex index.html 修改为
DirectoryIndex index.html index.php

2)重启 httpd 服务
[root@WebServer ~]# httpd -t
Syntax OK
[root@WebServer ~]# /etc/init.d/httpd reload
Reloading httpd: 
[root@WebServer ~]# /etc/init.d/httpd restart
Stopping httpd:                                            [OK]
Starting httpd:

3)添加测试文件,测试
[root@WebServer ~]# vim /usr/local/apache/htdocs/index.php    # 默认路径
<?
        phpinfo();
?>

测试页面

RHEL6.8 编译安装 LAMP 环境部署 WordPress

6、安装 Xcache 加速器
1)下载 Xcache,解压
[root@WebServer xcache-3.2.0]# wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz
[root@WebServer xcache-3.2.0]# tar -zxvf xcache-3.2.0.tar.gz 
[root@WebServer xcache-3.2.0]# cd xcache-3.2.0

2)编译安装 Xcache 3.2
[root@WebServer xcache-3.2.0]# ./configure –enable-xcache –with-php-config=/usr/local/php/bin/php-config
[root@WebServer xcache-3.2.0]# make && make install

3)编辑 php.ini,整合 php 和 xcache
[root@WebServer xcache-3.2.0]# mkdir /etc/php.d
[root@WebServer xcache-3.2.0]# cp xcache.ini /etc/php.d/ # 也可以直接把 xcache.ini 配置信息直接追加到 php.ini 配置文件中
 
[root@WebServer xcache-3.2.0]# /usr/local/php/bin/phpize 
Configuring for:
PHP Api Version:        20121113
Zend Module Api No:      20121212 # 查看模块 NO 号
Zend Extension Api No:  220121212
 
root@WebServer xcache-3.2.0]# vim /etc/php.d/xcache.ini # 把 extension = 后填写如下格式
[xcache-common]
;; non-Windows example:
extension = /usr/local/php/lib/php/extensions/no-debug-zts-20121212/xcache.so    # 这个根据实际路径下文件的名称来填写
;; Windows example:
; extension = php_xcache.dll

4)重启 apache 并测试
[root@WebServer xcache-3.2.0]# httpd -t
Syntax OK
[root@WebServer xcache-3.2.0]# /etc/init.d/httpd restart
Stopping httpd:                                            [OK]
Starting httpd:

测试页面,有 xcache 版本号,说明从,如下:

RHEL6.8 编译安装 LAMP 环境部署 WordPress

7、启用服务器状态页面
说明:
mod_status 模块可以让管理员查看服务器的执行状态,它通过一个 HTML 页面展示了当前服务器的统计数据。这些数据通常包括但不限于:
(1) 处于工作状态的 worker 进程数;
(2) 空闲状态的 worker 进程数;
(3) 每个 worker 的状态,包括此 worker 已经响应的请求数,及由此 worker 发送的内容的字节数;
(4) 当前服务器总共发送的字节数;
(5) 服务器自上次启动或重启以来至当前的时长;
(6) 平均每秒钟响应的请求数、平均每秒钟发送的字节数、平均每个请求所请求内容的字节数;
启用状态页面的方法很简单,只需要在主配置文件中添加如下内容即可:
[root@WebServer ~]# vim /etc/httpd/httpd.conf
<Location /server-status>
    SetHandler server-status
    Require all granted
</Location>

需要提醒的是,这里的状态信息不应该被所有人随意访问,因此,应该限制仅允许某些特定地址的客户端查看。比如使用 Require ip 172.16.0.0/16 来限制仅允许指定网段的主机查看此页面。
效果图:

RHEL6.8 编译安装 LAMP 环境部署 WordPress

8、PHP 连接 Mysql 测试

编辑 apache 的默认页面 /usr/local/apache/htdocs/index.php
[root@WebServer ~]# vim /usr/local/apache/htdocs/index.php
<?
        $conn=mysql_connect(‘localhost’,’root’,”);
        if ($conn)
                echo “Success”;
        else
                echo “Failure”;
?>

测试页面,连接 mysql 成功

RHEL6.8 编译安装 LAMP 环境部署 WordPress

8、安装部署 WordPress

1)下载 WordPress,并解压到网站根目录
[root@WebServer src]# wget https://cn.wordpress.org/wordpress-4.5.3-zh_CN.tar.gz^C
[root@WebServer src]# tar -zxvf wordpress-4.5.3-zh_CN.tar.gz -C /usr/local/apache/htdocs

2)创建 WordPress 要连接 mysql 的账号
mysql> CREATE DATABASE wpdb;
Query OK, 1 row affected (0.05 sec)
 
mysql> GRANT ALL PRIVILEGES ON wpdb.* TO wpuser@’10.10.10.%’ IDENTIFIED BY ‘wppass’;
Query OK, 0 rows affected (0.08 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.03 sec)

3)创建 WordPress 的配置文件
[root@WebServer wordpress]# pwd
/usr/local/apache/htdocs/wordpress
[root@WebServer wordpress]# cp wp-config-sample.php wp-config.php

4)更改 wp-config.php 关于数据库的连接相关配置
[root@WebServer wordpress]# vim wp-config.php
define(‘DB_NAME’, ‘wpdb’);    # 填写数据库
 
/** MySQL 数据库用户名 */
define(‘DB_USER’, ‘wpuser’);    # 填写数据库账号
 
/** MySQL 数据库密码 */
define(‘DB_PASSWORD’, ‘wppass’);    # 填写密码
 
/** MySQL 主机 */
define(‘DB_HOST’, ‘10.10.10.4’);    # 数据库所在的主机,本机也可以填写 localhost

5)访问测试

RHEL6.8 编译安装 LAMP 环境部署 WordPress

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/137528.htm

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 服务器下载

—————————————— 分割线 ——————————————

FTP 地址:ftp://ftp1.linuxidc.com

用户名:ftp1.linuxidc.com

密码:www.linuxidc.com

在 2016 年 LinuxIDC.com/11 月 /RHEL6.8 编译安装 LAMP 环境部署 WordPress/

下载方法见 http://www.linuxidc.com/Linux/2013-10/91140.htm

—————————————— 分割线 —————————————— 

下面关于 LAMP 相关 的内容你可能也喜欢

LAMP 平台安装 Xcache 和 Memcached 加速网站运行  http://www.linuxidc.com/Linux/2015-06/118835.htm 

CentOS 7 下搭建 LAMP 平台环境  http://www.linuxidc.com/Linux/2015-06/118818.htm

CentOS 6.5 系统安装配置 LAMP(Apache+PHP5+MySQL)服务器环境 http://www.linuxidc.com/Linux/2014-12/111030.htm

Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP(5.5.9)开发环境  http://www.linuxidc.com/Linux/2014-10/107924.htm

Ubuntu 14.10 下安装 LAMP 服务图文详解  http://www.linuxidc.com/Linux/2014-12/110082.htm

LAMP 结合 NFS 构建小型博客站点  http://www.linuxidc.com/Linux/2015-08/121029.htm

CentOS7 下安装部署 LAMP 环境  http://www.linuxidc.com/Linux/2016-04/130653.htm

Ubuntu 16.04 搭建 LAMP 开发环境 http://www.linuxidc.com/Linux/2016-10/136327.htm

1、安装前准备

修改 yum 源
[root@linuxidc ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo 
[root@linuxidc ~]# vim /etc/yum.repos.d/CentOS-Base.repo 
# 在末行模式下执行 %s/$releasever/6.8/g,6.8 为 6 系列中最新的版本号,如果是 CentOS6,不需要执行这一项
[root@linuxidc ~]# yum clean all
[root@linuxidc ~]# yum makecache

卸载原有 httpd-2.2
[root@WebServer ~]# cp /etc/init.d/httpd /etc/init.d/httpd.bak    # 备份这个文件后面做服务器脚本文件
[root@WebServer ~]# yum remove httpd -y

安装编译工具
[root@linuxidc ~]# yum groupinstall -y “Development Tools” “Server Platform Development”

关闭 SElinux
[root@linuxidc ~]# vim /etc/selinux/config
SELINUX=disabled    # 从新启动

关闭防火墙
[root@linuxidc ~]# /etc/init.d/iptables stop
[root@linuxidc ~]# chkconfig iptables off
[root@linuxidc ~]# chkconfig –list | grep iptables
iptables        0:off  1:off  2:off  3:off  4:off  5:off  6:off

修改主机名
[root@linuxidc ~]# hostname WebServer
[root@linuxidc ~]# vim /etc/sysconfig/network
HOSTNAME=WebServer
[root@linuxidc ~]# vim /etc/hosts
127.0.0.1  WebServer WebServer.linuxidc.com localhost4 localhost4.localdomain4
::1        localhost localhost.localdomain localhost6 localhost6.localdomain6
从新启动

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:

使用浏览器访问:

RHEL6.8 编译安装 LAMP 环境部署 WordPress

3、安装 Mysql 数据库
1)前期准备
查看是否已经安装了 mysql,如果已经安装,卸载 mysql

rpm -qa | grep mysql    # 查看
yum remove mysql -y    # 卸载

安装编译源码所需的工具和库
yum install gcc gcc-c++ ncurses-devel perl cmake libaio

说明:从 mysql5.5 起,mysql 源码安装开始使用 cmake 来设置源码编译配置脚本。
准备 mysql 数据存放的文件系统,由于 mysql 的数据文件是会增长的,而且占用空间很大。数据文件要放在一个单独的
LVM 分区上。这里就不做 lvm 逻辑卷了。直接创建一个目录替代。
[root@linuxidc ~]# mkdir -p  /mydata/data    # 数据存储目录
[root@linuxidc ~]# mkdir /usr/local/mysql    # mysql 程序目录

创建 mysql 的系统用户组和系统用户
[root@linuxidc ~]# groupadd -r mysql
[root@linuxidc ~]# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql
[root@linuxidc ~]# chown -R mysql:mysql /mydata/data    # 修改目录权限
[root@linuxidc ~]# chown mysql.mysql /usr/local/mysql/

从官网下载 mysql 源码包(最后是手动从官网下载,如果官网页面变更,这个路径就不对了)
[root@linuxidc src]# wget http://101.96.8.140/dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.34.tar.gz

2)使用 cmake 编译安装并初始化 mysql5.6.34
(1)编译安装
说明:mysql 安装包有三种式,rpm, 源码包,二进制包(已编译好,解压后简单配置一下就可以用),我这里用的就是源码包编译安装
[root@linuxidc src]# tar -zxvf mysql-5.6.34.tar.gz  # 解压
[root@linuxidc src]# cd mysql-5.6.34
# 使用 cmake 生成配置脚本。设置编译参数:
[root@WebServer mysql-5.6.34]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/mysqldb -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1
 
配置说明:
-DCMAKE_INSTALL_PREFIX=dir_name        # 设置 mysql 安装目录
-DMYSQL_UNIX_ADDR=file_name            # 设置监听套接字路径,这必须是一个绝对路径名。默认为 /tmp/mysql.sock
-DDEFAULT_CHARSET=charset_name    # 设置服务器的字符集。缺省情况下,MySQL 使用 latin1 的(CP1252 西欧)字符集。cmake/character_sets.cmake 文件包含允许的字符集名称列表。也可以设置为 UTF-8:-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=collation_name  # 设置服务器的排序规则。
-DWITH_INNOBASE_STORAGE_ENGINE=1 
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
存储引擎选项:
MyISAM,MERGE,MEMORY,和 CSV 引擎是默认编译到服务器中,并不需要明确地安装。
静态编译一个存储引擎到服务器,使用 -DWITH_engine_STORAGE_ENGINE= 1,可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和 PERFSCHEMA (Performance Schema)
-DMYSQL_DATADIR=dir_name                    设置 mysql 数据库文件目录
-DMYSQL_TCP_PORT=port_num                设置 mysql 服务器监听端口,默认为 3306
-DENABLE_DOWNLOADS=bool                    是否要下载可选的文件。例如,启用此选项(设置为 1),cmake 将下载谷歌所使用的测试套件运行单元测试。

    注意:重新运行配置,需要删除 CMakeCache.txt 文件
[root@WebServer mysql-5.6.34]# rm -f CMakeCache.txt

编译安装
[root@WebServer mysql-5.6.34]# make && make install # 过程有些漫长

(2)初始化 mysql5.6.34
[root@linuxidc ~]# cd /usr/local/mysql/
[root@linuxidc mysql]# chown -R mysql.mysql .   
# 因为是 root 用户下编译安装完成的,mysql 下所有文件默认属组和属主是 root
[root@linuxidc mysql]# ll
total 68
drwxr-xr-x.  2 mysql mysql  4096 Oct 15 00:13 bin
-rw-r–r–.  1 mysql mysql 17987 Sep 30 19:41 COPYING
drwxr-xr-x.  3 mysql mysql  4096 Oct 15 00:13 data
drwxr-xr-x.  2 mysql mysql  4096 Oct 15 00:13 docs
drwxr-xr-x.  3 mysql mysql  4096 Oct 15 00:13 include
drwxr-xr-x.  3 mysql mysql  4096 Oct 15 00:13 lib
drwxr-xr-x.  4 mysql mysql  4096 Oct 15 00:13 man
drwxr-xr-x. 10 mysql mysql  4096 Oct 15 00:13 mysql-test
-rw-r–r–.  1 mysql mysql  2496 Sep 30 19:41 README
drwxr-xr-x.  2 mysql mysql  4096 Oct 15 00:13 scripts
drwxr-xr-x. 28 mysql mysql  4096 Oct 15 00:14 share
drwxr-xr-x.  4 mysql mysql  4096 Oct 15 00:14 sql-bench
drwxr-xr-x.  2 mysql mysql  4096 Oct 15 00:14 support-files

 初始化 data 存放目录设置
[root@linuxidc mysql]# scripts/mysql_install_db –user=mysql –datadir=/mydata/data/
# 初始化 mysqldata 存放位置
[root@linuxidc mysql]# ls /mydata/data/ # 有数据说明初始化成功
ibdata1  ib_logfile0  ib_logfile1  mysql  performance_schema  test

初始化完成后 mysql 中目录文件的属主应改回成 root,以免被别人攻破 mysql 用户密码而带来数据破坏等
[root@linuxidc mysql]# pwd
/usr/local/mysql
[root@linuxidc mysql]# chown root -R /usr/local/mysql/*

3)为 mysql 提供主配置文件
初始化后会自动在当前目录下创建一个 my.cnf 配置文件,直接修改就可以(在 mysql 5.6 以后配置文件自动生成,不需要我们再进行复制),但是 /usr/local/mysql/support-files 目录下,有默认配置的配置文件,可以拷贝过去。
[root@linuxidc mysql]# cd support-files/
[root@linuxidc support-files]# ls
binary-configure  my-default.cnf      mysql-log-rotate
magic            mysqld_multi.server  mysql.server
[root@linuxidc support-files]# cp my-default.cnf /etc/my.cnf 
cp: overwrite `/etc/my.cnf’? y

修改配置文件

[root@linuxidc mysql]# vim /etc/my.cnf    # [mysqld]后添加以下三项
[mysqld]
datadir = /mydata/data
innodb_file_per_table = ON
skip_name_resolve = ON

4)为 mysql 提供 sysv 服务脚本并启动服务
[root@linuxidc support-files]# pwd
/usr/local/mysql/support-files
[root@linuxidc support-files]# cp mysql.server /etc/init.d/mysqld    # mysql 源码包自带服务脚本
[root@linuxidc support-files]# chkconfig –add mysqld
[root@linuxidc support-files]# chkconfig mysqld on
[root@linuxidc support-files]# chkconfig mysqld –list
mysqld            0:off  1:off  2:on    3:on    4:on    5:on    6:off
[root@linuxidc support-files]# /etc/init.d/mysqld start
Starting MySQL…. 
[root@linuxidc support-files]# netstat -tulnp | grep mysql    # 已经监听
tcp        0      0 :::3306                    :::*                        LISTEN      19605/mysqld

5)输出 mysql 的 man 手册至 man 命令的查找路径
[root@linuxidc support-files]# vim /etc/man.config 
MANPATH /usr/local/mysql/man

6)输出 mysql 的头文件至系统头文件路径 /usr/include
[root@linuxidc mysql]# ln -sv /usr/local/mysql/include/ /usr/include/mysql
`/usr/include/mysql’ -> `/usr/local/mysql/include/’

7)输出 mysql 的库文件给系统库查找路径
[root@linuxidc mysql]# vim /etc/ld.so.conf.d/mysql.conf 
/usr/local/mysql/lib    # 在系统的库文件自动加载目录下新建 mysql.conf 文件,直接将 mysql 的库路径路径写入
[root@linuxidc mysql]# ldconfig -v    #  让系统重新读取库文件

8)修改 PATH 环境变量,让系统可以直接使用 mysql 的相关命令
[root@linuxidc mysql]# vim /etc/profile.d/mysql.sh    # 添加环境变量(与添加 httpd 是一样的)
export PATH=$PATH:/usr/local/mysql/bin
[root@linuxidc mysql]# source /etc/profile.d/mysql.sh    # 重新读取一下环境变量

9)重启 mysql,测试并连接 mysql
[root@linuxidc mysql]# /etc/init.d/mysqld restart
Shutting down MySQL..                                      [OK]
Starting MySQL.                                            [OK]
[root@linuxidc mysql]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.34 Source distribution
 
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
 
mysql> show databases;
+——————–+
| Database          |
+——————–+
| information_schema |
| mysql              |
| performance_schema |
| test              |
+——————–+
4 rows in set (0.00 sec)

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-11/137528p2.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计33606字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中