CentOS 6.7编译安装LAMP 详解

一、所需软件下载

测试机环境为:

Httpd2.4 下载:http://mirrors.cnnic.cn/apache//httpd/httpd-2.4.25.tar.bz2

Apr 下载:http://mirrors.hust.edu.cn/apache//apr/apr-1.5.2.tar.bz2

Apr-util 下载:

http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.bz2

Mariadb 10.1.21 下载:https://downloads.mariadb.org/ 官网下载目前不知道什么原因下载不了,需要通过特殊渠道(你懂得)来获取最新的软件。

php5.6.30 下载:http://php.net/get/php-5.6.30.tar.bz2/from/a/mirror

目前最新版已到7.1.2还是保守一点选择了5.6的版本。编译php时会依赖到其他的包,所以提前通过yum 安装

1 yum install libxml2-devel bzip2-devellibmcrypt -y

Xcache php加速工具 下载:http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz

编译xcache 需要依赖的包有m4和autoconf两个包

1 yum install m4 autoconf -y

phpmyadmin 下载:

https://files.phpmyadmin.net/phpMyAdmin/4.6.6/phpMyAdmin-4.6.6-all-languages.zip

二、httpd安装

1、apr安装

~]# tar –jxf apr-1.5.2.tar.bz2 –C /usr/local/src
~]# tar –jxf apr-util-1.5.4.tar.bz2 –C /usr/local/src
~]# cd /usr/local/src/apr-1.5.2
~]# ./confirure –prefix=/usr/local/apr
~]# make && make install    #apr安装完成
~]# cd /usr/local/src/apr-util-1.5.4
~]# ./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr  #with-apr参数指定编译apr-util时所依赖的程序包,如不指定则编译时会查找系统默认的安装路径去查找。
~]# make && make install

很多人都会有疑问apr到底有什么作用,为什么每次编译都要用到这个包?

APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。

APR最大的作用就是socket调度。

2、httpd安装

将下载的httpd-2.4.25解压至/usr/local/src目录中

~]# tar –jxf httpd-2.4.25.tar.bz2 –C /usr/local/src
~]# cd /usr/local/src/httpd-2.4.25
~]# ./configure –prefix=/usr/local/apache –sysconfdir=/etc/apache–enable-so –enable-ssl –enable-cgi –enable-rewrite –with-zlib –with-pcre –with-apr=/usr/local/apr–with-apr-util=/usr/local/apr-util –enable-modules=most –enable-mpms-shared=all–with-mpm=prefork
~]# make –j 4 && make install
#安装完成之后进行启动前配置,添加启动用户和组
~]# groupadd –r –g 80 apache
~]# useradd –r –g apache –u 80 apache
#为apache提供服务脚本
~]# vim /etc/rc.d/init.d/apache
#!/bin/bash
#
#httpd        Startup script for theApache HTTP Server
#
#chkconfig: - 85 15
#description: Apache is a World Wide Web server. It is used to serve \
#        HTML files and CGI.
#processname: httpd
# config:/etc/httpd/conf/httpd.conf
# config:/etc/sysconfig/httpd
#pidfile: /var/run/httpd.pid
 
# Sourcefunction library.
./etc/rc.d/init.d/functions
 
if [ -f/etc/sysconfig/httpd ]; then
        . /etc/sysconfig/httpd
fi
 
# Starthttpd in the C locale by default.
HTTPD_LANG=${HTTPD_LANG-"C"}
 
# Thiswill prevent initlog from swallowing up a pass-phrase prompt if
# mod_sslneeds a pass-phrase from the user.
INITLOG_ARGS=""
 
# SetHTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
# withthe thread-based "worker" MPM; BE WARNED that some modules may not
# workcorrectly with a thread-based MPM; notably PHP will refuse to start.
 
# Path tothe apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
 
start() {
  echo -n $"Starting $prog: "
  LANG=$HTTPD_LANG daemon --pidfile=${pidfile}$httpd $OPTIONS
  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 toconfiguration syntax error"
        failure $"not reloading $httpd dueto configuration syntax error"
    else
        killproc -p ${pidfile} $httpd -HUP
        RETVAL=$?
    fi
    echo
}
 
# See howwe 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
~]# chmod +x /etc/rc.d/init.d/apache
~]# chkconfig –add apache
~]# service apache start        #测试启动是否成功

默认情况下系统防火墙会将80端口禁止通信,网上好多编译安装时,为了方便都会将防火墙关闭,我觉得生产环境中关闭防火墙毕竟不太安全,估计也没人这么干,现在就将用到的80端口以及mariadb和php用到的3306、9000端口都开放。

~]# iptables –I INPUT –p ctp –m multiport –dports80,8080,3306,9000 –m state –state NEW,ESTABLISHED –j ACCEPT
#注:防火墙策略一般是自上而下审核,所以为了避免与其他策略冲突,直接将此条策略加入到最上方。
~]# setenforce 0    #设置selinux为Permissive模式,后续可能会将htdocs目录指向其他路径,如果不设为Permissive会无法访问。

最后在浏览器中填入测试机的IP地址,配置成功会有以下显示。

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

三、mariadb安装

首先将mysql用户mysql组。

~]# groupadd –r –g 36 mysql
~]# useradd –r –g mysql –u 36 mysql

此处使用的是二进制格式的程序包,解压至特定路径后简单配置后即可使用。

在生产环境当中数据库文件会单独存放在一个较大的空间当中,在此测试机中模拟有两块硬盘,在两块硬盘当中各划分出50G的空间来组成逻辑卷来存放数据文件,下边就来进行具体操作。

~]# yum install lvm2                #此步如果系统中已安装lvm管理工具可跳过
~]# pvcreate /dev/sd{a,b}3    #将硬盘a,b中的分区添加到物理卷
~]# vgcreate –s 16M datavg /dev/sd{a,b}3    #将物理卷中的两块物理卷加入到datavg物理卷组中
~]# lvcreate –L 50G –n marialv datavg          #将物理卷组中分出50G空间来创建marialv逻辑卷
~]# mkfs –t ext4 –m 1 –L “mariadata” –b 2048/dev/datavg/marialv  #格式化marialv逻辑卷
~]# mount /dev/datavg/marialv /data/
~]# mkdir /data/mariadb –p            #创建数据存放路径
~]# chown mysq:mysql /data/mariadb #更改mariadb目录的属组属主为mysql
#至此数据存放位置准备完毕,如果需要开机挂载此目录则需要修改/etc/fstab文件
~]# tar –zxf mariadb-10.1.21-linux-x86_64.tar.gz –C/usr/local
~]# cd /usr/local
~]# ln –s mariadb-10.1.21 mysql            #默认安装配置都要mysql目录中,所以需要将解压后的数据库做一个链接,也方便日后数据库升级,直接将链接更新即可。
~]# cd mysql
~]# chown –R root:mysql ./*                    #将程序包中的所有文件属主属组修改为root用户mysql组
~]# scripts/mysql_install_db  --datadir=/data/mariadb –user=mysql  #此步骤需要注意,mysql_install_db只能在scripts目录中执行,执行完毕之后如果不出意外安装完成了o(╯□╰)o

先不要急着运行,后续还要有点小调整,因为mariadb还木有配置文件和启动脚本呢!下边就来将这两项做好。

还是在mysql目录中操作,这点需要注意

mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld  #添加启动脚本
mysql]# chkconfig –add mysqld
mysql]# mkdir /etc/mariadb
mysql]# cp support-files/my-larg.cnf  /etc/mariadb/my.cnf
#在support-files目录中提供了三个针对不同硬件的配置文件,可以根据自己系统硬件的不同来自行选配,这里选择的是my-larg.cnf
#编辑my.cnf并添加以下三个选项
mysql]# vim /etc/mariadb/my.cnf
 
[client]
#password  = your_password
port        = 3306
#socket    = /tmp/mysql.sock
socket      = /data/mariadb /mysql.sock
 
# Herefollows entries for some specific programs
# TheMariaDB server
[mysqld]
port        = 3306
socket = /data/mariadb /mysql.sock
#…省略其他不变的选项
thread_concurrency= 8                  #这个参数可以根据自己服务器硬件配置来更改,一般为CPU个数乘以2
datadir=/data/mariadb                      #数据库存放路径
innodb_file_per_table= on              #每个数据表存储类型都是独立的
skip_name_resolve = on                    #跳过数据库反向解析主机名
 
mysql]#bin/mysql_secure_installation        #可以为root设置密码,删除匿名用户等一些操作
配置完成可以运行service mysqld start启动服务
 ~]#ss –nat|grep 3306    #可以看到端口已经启动

猜你喜欢

转载自www.linuxidc.com/Linux/2017-03/141244.htm
今日推荐