在Ubuntu机器上安装和编译Apache服务器
步骤1:安装Java JDK
sudo apt install openjdk-11-jdk
sudo gedit /etc/environment
JAVA_HOME="/usr/lib/jvm/openjdk-11"
source /etc/environment
echo $JAVA_HOME
验证Java版本
javac --version
**** 安装其他必需的软件包:**
sudo apt-get install apache2-dev -y
sudo apt-get install libpcre3 libpcre3-dev
步骤2:安装Apache HTTP服务器
#1 对于Ubuntu,安装包括C编译器在内的开发工具:
sudo apt-get install build-essential checkinstall
#2 下载并提取所需文件
假设所有文件都已下载到 ~/Downloads 目录中
从 Apache 下载页面 (https://httpd.apache.org/download.cgi) 下载 Apache HTTP Server httpd-2.4.41.tar.gz
以及编译 Apache HTTP 服务器所需的以下库:
****阅读要求部分(http://httpd.apache.org/docs/2.4/install.html)***
#3 提取tar文件
- tar -xvf httpd-2.4.41.tar.gz
- tar -xvf apr-1.7.0.tar.gz
- tar -xvf apr-util-1.6.1.tar.gz
- tar -xvf pcre2-10.34.tar.gz
提取后,您应该在~/Downloads目录下看到以下目录列表
- httpd-2.4.41
- apr-1.7.0
- apr-util-1.6.1
- pcre2-10.34
#4 创建一个Apache HTTP服务器的目录
*确保给予该目录所有权限,以便在编译文件时可以读取/写入
sudo mkdir /home{your username here}/apache
给予一个 Apache 目录所有权限:
sudo chmod -R 777 /home{your username here}/apache
#5 将 arp 和 arp-util 目录复制到 ~/Downloads/httpd-2.4.41/srclib/ 中
cd ~/Downloads
mv apr-util-1.6.1 ~/Downloads/httpd-2.4.41/srclib/apr-util
mv apr-1.7.0 ~/Downloads/httpd-2.4.41/srclib/apr
#6 配置编译源。
--prefix选项可用于将Web服务器安装在您可以编写文件的位置。
cd ~/Downloads/httpd-2.4.41/
./configure --prefix=/home/{username here}/apache --with-pcre=~/Downloads/pcre2-10.34
注意:
如果您在运行上述命令时遇到问题,您也可以尝试在 /usr/local/pcre 中安装 pcre,使用以下命令:
./configure --prefix=/usr/local/pcre
make
sudo make install
然后通过运行以下命令来解决问题:
cd ~/Downloads/httpd-2.4.41/
./configure --prefix=/home/{在此处输入用户名}/apache --with-pcre=/usr/local/pcre
make
sudo make install
如果您仍然遇到一些问题,请确保~/apache及其嵌套目录具有读/写权限。如果没有,请再次运行sudo chmod -R 777 /home{您的用户名}/apache
命令。
#7 编译Apache HTTP服务器。
cd ~/Downloads/httpd-2.2.25
sudo make
#8 安装 Apache HTTP 服务器。
cd ~/Downloads/httpd-2.2.25
sudo make install
可选项
#9 准备您的 Hosts 文件
sudo gedit /etc/hosts
27.0.0.1 localhost www.example.com
sudo gedit /home/{your username here}/apache/conf/httpd.conf
并复制:
Listen 8000
ServerName www.example.com:8000
#10 测试安装以确保 Apache HTTP 服务器正常工作。
/home/{your username here}//apache/bin/apachectl -k start