您现在的位置是:自如初>LinuxLinux
全网最细且手把手一起学CentOS8.0源码编译安装LAMP环境之apache2源码安装(一)
夕阳何处寻
2019-09-29 21:18:59
【Linux】
2542人已围观
简介前提:准一个全新的Linux系统。我这里使用的是全新的CentOs8.0系统,刚刚出炉的并且使用最小化安装。我在源码安装apache2使用出现了不少的问题,所以,为了确保你能够在接下来的操作中顺利搭建出环境,请跟我的环境一样。
前提:准一个全新的Linux系统。我这里使用的是全新的CentOs8.0系统,刚刚出炉的并且使用最小化安装。我在源码安装apache2使用出现了不少的问题,所以,为了确保你能够在接下来的操作中顺利搭建出环境,请跟我的环境一样。
虚拟机:VMware14
Linux系统:CentOs8.0
说明:
本环境只供交流学习使用,忽略生产环境中的安全问题;
后面没有配置开机自启,请自行配置。
一、准备工作
1.1)安装方便操作的软件
yum -y install lrzsz yum -y install vim yum -y install wget
1.2)准备源码包
所有源码包放置/usr/local/src/目录下
切下到/usr/local/src目录
cd /user/local/src
下载apache依赖包
wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.7.0.tar.gz wget :wget http://mirror.bit.edu.cn/apache//apr/apr-util-1.6.1.tar.gz wget https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz
上传apache mysql php源码到/user/local/src
1.3)安装LAMP所需依赖包
yum -y install gcc gcc-c++ make cmake bison autoconf automake zlib* libxml* libtool-ltdl-devel* libaio libaio-devel libtool libxml2-devel openssl-devel
1.4、CentOs8.0关闭防火墙
systemctl stop firewalld.service 关闭防火墙 systemctl disable firewall.servei 关闭防火墙开机自启 systemctl status firewalld.service 查看防火墙状态
【如若报错】Failed to stop filewall.service: Unit filewall.service not loaded. 如果出现这样的错误,请首先检查自己的命令是否写正确(注意大小写、复制或粘贴等因素),若确实出现这样的错误,请自行百度解决,百度有方法。
二、源码编译安装Apache
apache版本:httpd-2.4.41.tar.gz
依赖包版本: pcre-8.42.tar.gz apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz
2.1)源码安装 apr-1.7.0.tar.gz
切换目录 cd /usr/local/src 解压 tar -zxvf apr-1.7.0.tar.gz 进入解压后的目录 cd apr-1.7.0 预编译 ./configure --prefix=/usr/local/apr 编译 && 安装 make && make install
2.2)源码安装 apr-util-1.6.1.tar.gz
cd /usr/local/src/ 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预编译报错】 致命错误:expat.h:没有那个文件或目录
【解决方法】
yum install -y expat-devel
重新执行make进行预编译
make make install
2.3)源码编译安装 pcre-8.42.tar.gz
cd /usr/local/src tar -zxvf pcre-8.42.tar.gz cd pcre-8.42 ./configure --prefix=/usr/local/pcre make && make install
2.4)源码编译安装apache2
cd /usr/local/src tar -zxvf httpd-2.4.41.tar.gz cd httpd-2.4.41 ./configure \ --prefix=/usr/local/apache2 \ --with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr-util \ --with-pcre=/usr/local/pcre \ --with-zlib \ --enable-so \ --enable-deflate \ --enable-expires \ --enable-headers \ --enable-ssl \ --enable-cgi \ --enable-proxy \ --enable-proxy-fcgi \ --enable-rewrite \ --enable-mpms-shared=all \ --with-mpm=prefork \ --enable-mods-shared=most \ --enable-dav \ --enable-dav-fs \ --enable-dav-lock make make install 安装成功
2.5)修改apache2配置文件
cd /usr/local/apache2/conf 备份配置分解 cp ./httpd.conf ./httpd.conf.bak vim httpd.conf 修改一 在 #ServerName www.example.com:80 下一行添加 ServerName localhost:80 修改二 修改web文件位置 将修改 DocumentRoot "/usr/local/apache2/htdocs" 为 DocumentRoot "/WWW" 将修改<Directory "/usr/local/apache2/htdocs"> 为 <Directory "/WWW"> 注意:WWW是大写 修改三 修改默认首先访问index.php 将 DirectoryIndex index.html 修改为 DirectoryIndex index.php index.html 修改四 配置虚拟主机 将 #Include conf/extra/httpd-vhosts.conf 修改为 Include conf/extra/httpd-vhosts.conf 修改五 根目录下创建WWW目录并写入测试index.html文件 mkdir /WWW
2.5)启动、重启、停止apache2
/usr/local/apache2/bin/apachectl start 启动 /usr/local/apache2/bin/apachectl stop 停止 /usr/local/apache2/bin/apachectl restart 重启 【启动apache报错】配置完pache2的配置之后,启动apache2服务会报错,错误如下: AH00112: Warning: DocumentRoot [/usr/local/apache2/docs/dummy-host.example.com] does not exist AH00112: Warning: DocumentRoot [/usr/local/apache2/docs/dummy-host2.example.com] does not exist 【解决办法】启动失败的原因是因为我们配置了虚拟主机。只需在配置虚拟主机文件中添加如下操作即可。 cd /usr/local/apache2/conf/extra cp ./httpd-vhosts.conf ./ httpd-vhosts.conf.bak vim httpd-vhosts.conf <VirtualHost _default_:80> DocumentRoot "/WWW" <Directory "/WWW"> Options FollowSymLinks ExecCGI AllowOverride All Order allow,deny Allow from all Require all granted DirectoryIndex index.php index.html </Directory> </VirtualHost>
^_^至此,CentOs8源码编译安装apache完成!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以下当做了解。是个人在配置中出现的一些小问题,记录下来
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
【编译apache时报错】 以下我错信息是我第一次安装apache执行make编译时报错的错误。网上也有解决办法,自行搜索。出现错误后我把删除了apr和apr-util两个扩展并重新编译安装。刚要重新编译apache时,发现预编译里面有个--with-apr-util=/usr/local/apr-util/ \有个这样的配置,改成--with-apr-util=/usr/local/apr-util \后重新编译安装,结果,成功!编译安装时一定要小心!
collect2: error: ld returned 1 exit status make[2]: *** [Makefile:48:htpasswd] 错误 1 make[2]: 离开目录“/usr/local/src/httpd-2.4.41/support” make[1]: *** [/usr/local/src/httpd-2.4.41/build/rules.mk:75:all-recursive] 错误 1 make[1]: 离开目录“/usr/local/src/httpd-2.4.41/support” make: *** [/usr/local/src/httpd-2.4.41/build/rules.mk:75:all-recursive] 错误 1
不同的环境会存在一些小问题,但方法都是一样的。虽然这些小错误有时候比较让人头疼,但我们依旧能够把它解决。
我是夕阳何处寻,期待能和优秀的你一起同行!
夕阳何处寻
2019年9月29
很赞哦!(10)
上一篇:浅说PHP trait
下一篇:无题之杂言
相关文章
- CentOS8编译安装(升级)php7.4.1及问题解决
- Linux文件类型与扩展名详读
- Linux文件权限之目录与文件权限的含义
- 全网最细且手把手一起学CentOS8.0源码编译安装LAMP环境之php7.3.10源码安装(三)
- 全网最细且手把手一起学CentOS8.0源码编译安装LAMP环境之mysql8.0.17源码安装(二)
- CentOS8毫无难度的源码编译安装git
- 超级详细的CentOS8安装composer
- 全网最细且手把手一起学CentOS8.0源码编译安装LNMP环境之PHP7.3.10源码安装(三)
- 全网最细且手把手一起学CentOS8.0源码编译安装LNMP环境之MySQL8源码安装(二)
- 全网最细且手把手一起学CentOS8.0源码编译安装LNMP环境之nginx源码安装(一)
文章评论
点击排行

- CentOS8编译安装(升级)php7.4.1及问题解决
- 全网最细且手把手一起学CentOS8.0源码编译安装LAMP环境之apache2源码安装(一)
- ThinkPHP6使用Base公共控制器redirect()不起作用的解决方法
- WSL安装Linux报错WslRegisterDistribution failed with error: 0x80370102
- 全网最细且手把手一起学CentOS8.0源码编译安装LNMP环境之nginx源码安装(一)
- 快速上手Laravel6 Eloquent ORM 增删改查
- 超级详细的CentOS8安装composer
- ThinkPHP6上传图片至七牛云