操作系统:ubuntu LTS 16.04
apache版本:2.4.27
PRE准备工作
Apache编译安装指南中给出了编译安装的详细过程,以下是注意事项:
安装C编译器
安装C语言编译器gcc-5
sudo apt-get install gcc-5
将gcc
符号链接到gcc-5
,使gcc
命令等同于gcc-5
sudo ln -s /usr/bin/gcc-5 /usr/bin/gcc
安装C++编译器
安装C语言编译器g++-5
sudo apt-get install g++-5
将g++
符号链接到g++-5
,使gcc
命令等同于g++-5
sudo ln -s /usr/bin/g++-5 /usr/bin/g++
安装make
--fix-missing
是修复选项
sudo apt-get install make --fix-missing
安装依赖包
sudo apt-get install libexpat1-dev
编译安装详细过程
将下载的源码文件都放在/usr/local/src
目录下
切换到/usr/local/src
目录
cd /usr/local/src
安装APR
下载安装APR-1.6.2
去APR官网下载对应版本的tar.gz源码压缩包,放到/usr/local/src
目录下,并解压
# 解压命令
sudo tar zxvpf apr-1.6.2.tar.gz
进到apr-1.6.2
源码目录下
cd apr-1.6.2
编译安装
# 设置输出目录
./configure --prefix=/usr/local/apache2/apr-1.6.2
# 根据自己电脑核数×2来设定并行编译参数,提高编译速度
make -j1
sudo make install
下载安装APR-util-1.6.0
去APR官网下载对应版本的tar.gz源码压缩包,放到/usr/local/src
目录下,并解压
# 解压命令
sudo tar jxvpf apr-util-1.6.0.tar.bz2
进到apr-1.6.2
源码目录下
cd apr-util-1.6.0
编译安装,注意apr路径参数
要与之前apr安装路径参数
相同
./configure --prefix=/usr/local/apache2/apr-util-1.6.0 --with-apr=/usr/local/apache2/apr-1.6.2
make -j1
make install
下载安装PCRE
去PCRE官网下载pcre-8.41源码压缩包,放到
/usr/local/src`目录下,并解压
# 解压命令
sudo tar zxvpf pcre-8.41.tar.gz
进到pcre-8.41
源码目录下
cd pcre-8.41
编译安装
./configure --prefix=/usr/local/pcre-8.41
make -j1
make install
下载安装apache2.4.27
去Apache官网下载apache2.4.27
源码压缩包,放到/usr/local/src
目录下,并解压
# 解压命令
sudo tar zxvpf httpd-2.4.27.tar.gz
进到httpd-2.4.27.tar.gz
目录下
cd httpd-2.4.27
编译安装
sudo ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apache2/apr-1.6.2 --with-apr-util=/usr/local/apache2/apr-util-1.6.0/ --with-pcre=/usr/local/pcre-8.41 --with-expat=builtin --enable-so --enable-rewrite --enable-ssl
sudo make -j1
sudo make install
-
--prefix
: 目标路径 -
--with
: 依赖的库文件的路径 -
enable-ssl
: 支持SSL加密 -
enable-so
: 支持动态加载模块
添加启动脚本apache2
到service
sudo cp /usr/local/apache2/bin/apachectl /etc/init.d/apache2
添加apache2
到环境变量
# 输出启动脚本至 /home/phdchorus/apache2.sh
sudo echo 'export PATH=$PATH:/usr/local/apache2/bin' > /home/phdchorus/apache2.sh
cd /home/phdchorus
# 修改启动脚本的读写权限
sudo chmod a+x apache2.sh
# 拷贝脚本至目录
sudo cp apache2.sh /etc/profile.d
# 更新脚本状态
source /etc/profile.d/apache2.sh
添加apache2
到开机启动项
sudo vim /etc/rc.local
将/etc/profile.d/httpd.sh
添加到exit 0
之前
/etc/profile.d/apache2.sh
exit 0
启动apache2
sudo service apache2 start
Apache配置
转到apache
目录下,可以看到以下目录结构
phdchorus@phdchorus:/usr/local/apache2$ ls
bin conf error htdocs logs modules
-
bin
是apache启动目录 -
conf
是apache配置文件目录 -
htdocs
是默认的DocumentRoot
-
logs
是默认的日志目录 -
modules
是apache的扩展链接(PHP扩展、SSL扩展...)所在的目录
转到conf
目录下,可以看到以下目录结构
phdchorus@phdchorus:/usr/local/apache2/conf$ ls
extra httpd.conf magic mime.types original
-
httpd.conf
是apache
的主配置文件 -
extra
中存放了httpd.conf
之外的配置文件
安装配置Apache中记录了通过apt-get
安装Apache后,对apache的各种配置。apt-get
安装apache后,apache配置按照种类分散到多个目录文件下面,主配置文件import
这些配置文件,从而实现了配置模块化的效果。而编译安装的apache将几乎所有的配置都放到了主配置文件中,是非常不利于维护的。接下来我们先配置Apache,再按照模块化配置
的思路,重构apache的主配置文件。
配置Apache
基本配置
因为装机时,我们的计划是将网络服务资源放在/var
下,所以要修改DocumentRoot
及DocumentRoot
对应的Directory
项
找到DocumentRoot "/usr/local/apache2/htdocs"
修改为DocumentRoot "/var/www/html" --该目录为自己创建的目录
找到:<Directory "/usr/local/apache2/htdocs">
修改为:<Directory "/var/www/html">
配置Apache解析PHP
在主配置文件中写入
LoadModule php7_module modules/libphp7.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
修复安全漏洞
在主配置文件中写入
TraceEnable off
ServerSignature off
网友评论