在centos7.4平台安装LAMP最新版
2018-05-03 10:32:03   来源:   评论:0 点击:

参考文章:https: www cnblogs com xhkj p 6568379 html前言系统环境:Windows10 hyper-v虚拟机,用的是第二代虚拟机,centos7 4最小化安装安装好系统后先升级一下更新一下[root@bogon ~] yum install up
参考文章:1centos7下源码编译方式安装httpd
参考文章:2.CentOS 7.4下源码编译安装配置LAMP环境详解

前言

系统环境:Windows10 hyper-v虚拟机,用的是第二代虚拟机,centos7.4最小化安装
安装好系统后先升级一下更新一下
[root@bogon ~]# yum install update
Apache至少需要apr、apr-util、pcre组件的支持。
APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。在早期 的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。随着Apache的进一步开 发,Apache组织决定将这些通用的函数独立出来并发展成为一个新的项目。这样,APR的开发就从Apache中独立出来,Apache仅仅是使用 APR而已。目前APR主要还是由Apache使用,不过由于APR的较好的移植性,因此一些需要进行移植的C程序也开始使用APR。
APR-util是在APR的基础上提供了更多的数据结构和操作系统封装接口。APR-util依赖于APR,必须先安装APR再安装APR-util。
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括perl兼容的正则表达式库。

源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)


1.查询是否安装了apache服务器httpd

[root@bogon ~]#rpm -qa|grep httpd
httpd-2.4.6-45.el7.centos.x86_64
httpd-tools-2.4.6-45.el7.centos.x86_64
2.卸载系统自动装的apache服务器httpd

[root@bogon ~]#httpd -k stop     #停止httpd服务器

[root@bogon ~]# yum remove httpd    #卸载httpd服务器
 

3 安装依赖包GCC wget bzip2 expat-devel(下载组件)

[root@bogon ~]# gcc
bash: gcc: 未找到命令...      #出现未找到命令提示,说明没有安装GCC
[root@bogon ~]# wget
bash: wget: 未找到命令...      #出现未找到命令提示,说明没有安装
[root@bogon ~]# yum -y install wget
[root@bogon ~]# yum -y install bzip2
[root@bogon ~]# yum  install expat-devel
[root@bogon ~]# yum install -y gcc gcc-c++ autoconf libtool


一下安装yum -y install wget bzip2 expat-devel gcc gcc-c++ autoconf libtool

注意:如果没有安装gcc-c++,那么在 执行./configure  -prefix=/usr/local/pcre 时会报 configure: error: You need a C++ compiler for C++ support. 错误

4 下载httpd-2.4.33   apr-1.6.3  apr-util-1.6.1  pcre-8.42

我下载到了根目录下

[root@bogon ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.33.tar.gz
[root@bogon ~]#wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.6.3.tar.gz
[root@bogon ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz

[root@bogon ~]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz

查看下载文件:
[root@bogon local]# ls
apr               apr-util-1.6.1         games                lib64             share
apr-1.6.3         apr-util-1.6.1.tar.gz  httpd-2.4.33.tar.gz  libexec           src
apr-1.6.3.tar.gz  bin                    include              pcre-8.42.tar.gz
apr-util          etc                    lib                  sbin

注意:追求最新版可以查看对应网址的最新版本,在命令行修改对应版本号就可以了


 

5 将下载的压缩文件拷贝到/usr/local目录下

[root@bogon ~]# cp apr-1.6.3.tar.gz /usr/local
[root@bogon ~]# cp apr-util-1.6.1.tar.gz /usr/local

[root@bogon ~]# cp httpd-2.4.33.tar.gz  /usr/local
[root@bogon ~]# cp pcre-8.42.tar.gz  /usr/local
一次性移动
[root@bogon ~]# mv apr-util-1.6.1.tar.gz pcre-8.42.tar.gz apr-1.6.3.tar.gz  httpd-2.4.33.tar.gz /usr/local/


进入local目录下看一下
[root@bogon ~]# cd /usr/local/
[root@bogon local]# ls
apr-1.6.3.tar.gz       bin  games                include  lib64    sbin   src
apr-util-1.6.1.tar.gz  etc  httpd-2.4.33.tar.gz  lib      libexec  share

注意:可以直接进入/usr/local目录下
​全部下载 

[root@bogon local]# ​cd /usr/local
新建一个download.txt文件

[root@bogon local]# ​vi download.txt
在文件写入
https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.33.tar.gz
https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.6.3.tar.gz
https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz
执行
[root@bogon local]# ​wget -i download.txt

ls看看

6 编译安装apr-1.6.3

#解压缩apr文件

[root@bogon local]#tar zxvf apr-1.6.3.tar.gz                           

#改变目录到apr-1.6.3

[root@bogon local]# cd apr-1.6.3

#指定apr的安装目录为/usr/local/apr 配置

[root@bogon  apr-1.6.3]# ./configure -prefix=/usr/local/apr

#编译安装
[root@bogon  apr-1.6.3]# make && make install
​一条命令安装

tar zxvf apr-1.6.3.tar.gz && cd apr-1.6.3 && ./configure -prefix=/usr/local/apr && make && make install && cd ..

7 编译安装 apr-uril-1.6.1

#解压缩apr-util文件

首先返回上级目录local
[root@bogon apr-1.6.3]# cd ..
[root@bogon local]#


 

[root@bogon local]#tar zxvf apr-util-1.6.1.tar.gz

#改变目录到apr-util-1.6.1/

[root@bogon local]#cd apr-util-1.6.1/

#指定apr-util的安装路径,指定apr-util所对应的apr
[root@bogon  apr-util-1.6.1]# ./configure  -prefix=/usr/local/apr-util  -with-apr=/usr/local/apr

#编译安装
[root@bogon  apr-util-1.6.1]# make && make install
如果出现:

make[1]: 进入目录“/usr/local/apr-util-1.6.1”
/bin/sh /usr/local/apr/build-1/libtool --silent --mode=compile gcc -g -O2 -pthread   -DHAVE_CONFIG_H  -DLINUX -D_REENTRANT -D_GNU_SOURCE   -I/usr/local/apr-util-1.6.1/include -I/usr/local/apr-util-1.6.1/include/private  -I/usr/local/apr/include/apr-1    -o xml/apr_xml.lo -c xml/apr_xml.c && touch xml/apr_xml.lo
xml/apr_xml.c:35:19: 致命错误:expat.h:没有那个文件或目录
 #include
解决方法:
可能是少了expat库,yum install expat-devel安装该库,安装完再次编译,果然可以。

tar zxvf apr-util-1.6.1.tar.gz && cd apr-util-1.6.1/ && ./configure  -prefix=/usr/local/apr-util  -with-apr=/usr/local/apr && make && make install && cd ..
8 编译安装pcre

#卸载系统自带的pcre

[root@bogon  apr-util-1.6.1]# rpm -qa pcre
pcre-8.32-15.el7_2.1.x86_64

yum remove pcre-8.32-15.el7_2.1.x86_64
执行后提示错误:尝试移除受保护的 "systemd"
错误:尝试移除受保护的 "yum"
没关系不用管
返回上级目录local
[root@bogon apr-1.6.3]# cd ..
[root@bogon local]#


 

#解压缩apr-util文件

[root@bogon local]# tar zxvf pcre-8.42.tar.gz
#改变目录到pcre-8.42/

[root@bogon local]# cd pcre-8.42/
 

#指定prce的安装路径,指定apr-util所对应的apr
[root@bogon pcre-8.42]# ./configure  -prefix=/usr/local/pcre

#编译安装(make是编译 make install是安装)
[root@bogon pcre-8.42]# make && make install

tar zxvf pcre-8.42.tar.gz && cd pcre-8.42/ && ./configure  -prefix=/usr/local/pcre && make && make install && cd ..

9 编译安装apache

编译和安装apache分为动态、静态两种方式。动态编译是指在以后的使用中随时调整配置文件就可以加载模块;静态则相反,在编译时就决定了相应的模块。

#解压缩httpd-2.4.33文件

退回上级目录

[root@bogon pcre-8.42]# cd ..

 

[root@bogon local]#tar zxvf httpd-2.4.33.tar.gz

#改变目录到httpd-2.4.33/ 
[root@bogon local]#cd httpd-2.4.33/

#配置
[root@bogon httpd-2.4.33]# ./configure -prefix=/usr/local/apache2 -sysconfdir=/etc/httpd -enable-so -enable-rewrite -with-apr=/usr/local/apr -with-apr-util=/usr/local/apr-util -with-pcre=/usr/local/pcre --enable-charset-lite --enable-cgi 
#编译安装

[root@bogon httpd-2.4.33]#make && make install
tar zxvf httpd-2.4.33.tar.gz && ./configure -prefix=/usr/local/apache2 -sysconfdir=/etc/httpd -enable-so -enable-rewrite -with-apr=/usr/local/apr -with-apr-util=/usr/local/apr-util -with-pcre=/usr/local/pcre --enable-charset-lite --enable-cgi  && make && make install && cd

10 配置apache防火墙

1.查看已开放的端口(默认不开放任何端口) 
firewall-cmd --list-ports 
2.开启80端口 
firewall-cmd --zone=public(作用域) --add-port=80/tcp(端口和访问类型) --permanent(永久生效) 
3.重启防火墙 
firewall-cmd --reload 
4.停止防火墙 
systemctl stop firewalld.service 
5.禁止防火墙开机启动 
systemctl disable firewalld.service 
6.删除 
firewall-cmd --zone=public --remove-port=80/tcp --permanent
#永久开放http服务

[root@localhost httpd-2.4.33]# firewall-cmd --permanent --add-service=http
success
#打开80端口
[root@bogon ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
#顺便打开3306端口以便使用mysql
[root@bogon ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
#重新加载防火墙

[root@localhost httpd-2.4.33]# firewall-cmd --reload
success

11 启动,停止apache服务

#编辑httpd.conf文件

[root@localhost httpd-2.4.33]#vi /etc/httpd/httpd.conf

 在#ServerName www.example.com:80 下增加下面的语句
 ServerName localhost:80

#使用脚本控制Apache,启动服务

[root@localhost ~]#  /usr/local/apache2/bin/apachectl start

#使用脚本控制Apache,停止服务

[root@localhost ~]#  /usr/local/apache2/bin/apachectl stop

#服务启动后,在浏览器输入http://localhost浏览器内容显示出it works,该内容存在于/usr/local/apache2/htdocs/index.html文件中

12 设置apache开机启动

方法一

1、将apachectl命令拷贝到/etc/init.d目录下,改名为httpd
# cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd

2、编辑/etc/init.d/httpd文件,在第1行#!/bin/sh的后面添加如下两行
# vi /etc/init.d/httpd
# chkconfig: 2345 70 30   //注意:前面的#号是要保留的
# description: Apache //注意:前面的#号是要保留的

其中,所增加的第二行中三个数字,第一个表示在运行级别2345下启动Apache,第二、三是关于启动和停止的优先级配置。

3、Apache服务尚未被添加到chkconfig列表中,需要使用–add参数将其添加进去
[root@localhost init.d]# chkconfig --add httpd
[root@localhost init.d]# chkconfig --list httpd

通过上面的设置,每次开机时apache服务都是自动启动的

注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 
      如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
      欲查看对特定 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

httpd              0:关    1:关    2:开    3:开    4:开    5:开    6:关

注:chkconfg是检查,设置系统的各种服务。
chkconfg语法如下:

chkconfig --list [name]

chkconfig --add name
chkconfig --del name
chkconfig [--level levels] name
chkconfig [--level levels] name
 
方法二: 将服务加到/etc/rc.d/rc.local中 vi /etc/rc.d/rc.local 添加以下内容
/usr/local/apache/bin/apachectl start
14 去除开机启动
[root@localhost ~]# chkconfig --del httpd
[root@localhost init.d]# rm -f httpd

 
vi /etc/rc.d/rc.local 删除以下内容
/usr/local/apache/bin/apachectl start
重新启动计算机系统试试

在浏览器里输入本机的ip如果显示“

It works!

”说明你成功了



 

相关热词搜索:最新版 平台 centos7 4 LAMP

上一篇:linux初始化常用命令(centos7示例)
下一篇:CentOS7.4 安装 mysql8(yum安装)

分享到: 收藏