zoukankan      html  css  js  c++  java
  • Linux下编译安装Apache Http Server

    Linux下编译安装Apache Http Server

    1.下载httpd-2.4.12.tar.bz2

    wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.12.tar.bz2
    

    2.解压下载的文件##

    tar -xjvf httpd-2.4.12.tar.bz2
    

    3.configure配置编译安装条件

    ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite 
    
    配置 说明
    --prefix=/usr/local/apach2 设置编译安装到的系统目录
    --enable-s 使httpd服务能够动态加载模块功能
    --enable-rewrite 使httpd服务具有网页地址重写功能

    ARP not found 错误

    o@o-pc:~/work/Apache-httpd-2.4.12$ ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite
    checking for chosen layout... Apache
    checking for working mkdir -p... yes
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking build system type... x86_64-unknown-linux-gnu
    checking host system type... x86_64-unknown-linux-gnu
    checking target system type... x86_64-unknown-linux-gnu
    configure: 
    configure: Configuring Apache Portable Runtime library...
    configure: 
    checking for APR... no
    configure: error: APR not found.  Please read the documentation.
    

    解决办法

    下载 arp-1.5.2的源码包

    wget http://mirror.bit.edu.cn/apache/apr/apr-1.5.2.tar.bz2

    解压后编译安装

    o@o-pc:~/work/arp$ tar -xjvf apr-1.5.2.tar.bz2 
    o@o-pc:~/work/arp/apr-1.5.2$ ./configure --prefix=/usr/local/apr
    ...
    o@o-pc:~/work/arp/apr-1.5.2$ make
    ...
    o@o-pc:~/work/arp/apr-1.5.2$ sudo make install
    

    APR-util not found 错误

    o@o-pc:~/work/Apache-httpd-2.4.12$ ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite
    checking for chosen layout... Apache
    ...
    configure: Configuring Apache Portable Runtime library...
    configure: 
    checking for APR... yes
      setting CC to "gcc"
      setting CPP to "gcc -E"
      setting CFLAGS to " -g -O2 -pthread"
      setting CPPFLAGS to " -DLINUX -D_REENTRANT -D_GNU_SOURCE"
      setting LDFLAGS to " "
    configure: 
    configure: Configuring Apache Portable Runtime Utility library...
    configure: 
    checking for APR-util... no
    configure: error: APR-util not found.  Please read the documentation.
    

    解决办法

    下载 apr-util-1.5.4 源码包

    o@o-pc:~/work/arp$ wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.5.4.tar.bz2

    解压后编译安装
    注意./configure配置的时候需要制定APR路径--with-apr=/usr/local/apr是前面编译安装apr的时候设置的路径。

    o@o-pc:~/work/arp$ tar -xjvf apr-util-1.5.4.tar.bz2 
    o@o-pc:~/work/arp/apr-util-1.5.4$ ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
    ...
    o@o-pc:~/work/arp/apr-util-1.5.4$ make
    ...
    o@o-pc:~/work/arp/apr-util-1.5.4$ sudo make install
    

    pcre-config for libpcre not found错误

    o@o-pc:~/work/Apache-httpd-2.4.12$ ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --with-apr-util=/usr/local/apr-util
    checking for chosen layout... Apache
    ...
    configure: 
    configure: Configuring Apache Portable Runtime Utility library...
    configure: 
    checking for APR-util... yes
    ...
    checking for pcre-config... false
    configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
    

    解决办法

    下载pcre-8.36源码包

    wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.36/pcre-8.36.tar.bz2
    8.7版本的地址
    ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.bz2

    解压后编译安装

    o@o-pc:~/work/arp$ tar -xjvf pcre-8.37.tar.bz2 
    o@o-pc:~/work/arp/pcre-8.37$ ./configure --prefix=/usr/local/pcre
    ...
    o@o-pc:~/work/arp/pcre-8.37$ make
    ...
    o@o-pc:~/work/arp/pcre-8.37$ sudo make install
    

    上面的错误解决后,再次./configure配置

    注意添加的两个--with-...

    o@o-pc:~/work/Apache-httpd-2.4.12$ ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
    

    4.编译安装

    o@o-pc:~/work/Apache-httpd-2.4.12$ make
    o@o-pc:~/work/Apache-httpd-2.4.12$ sudo make install
    

    5.启动apache服务

    o@o-pc:~/work$ /usr/local/apache2/bin/apachectl start
    AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
    (13)Permission denied: AH00072: make_sock: could not bind to address [::]:80
    (13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80
    no listening sockets available, shutting down
    AH00015: Unable to open logs
    

    注意,需要root权限

    o@o-pc:~/work$ sudo /usr/local/apache2/bin/apachectl start
    AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
    

    提示错误,无法确定服务名(就是端口号)
    切换到目录/usr/local/apache2/conf
    vi编辑文件httpd.conf(文件是只读的,修改需要root权限)
    o@o-pc:/usr/local/apache2/conf$ sudo vi httpd.conf
    添加一行
    ServerName localhost:80
    然后重新启动服务试试

    o@o-pc:~$ sudo /usr/local/apache2/bin/apachectl start
    httpd (pid 31083) already running
    

    现在我们可以试试是否生效了
    打开浏览器,输入地址localhost回车看看是否显示 Is Work!
    显示了就说们Apache Http Server已经在运行了
    不方便截图,这里直接用curl来获取下网页的内容

    o@o-pc:~$ curl localhost
    <html><body><h1>It works!</h1></body></html>
    

    6.停止Apache Http 服务

    可以看到停止后再去获取就失败了

    o@o-pc:~$ sudo /usr/local/apache2/bin/apachectl stop
    o@o-pc:~$ curl localhost
    curl: (7) Failed to connect to localhost port 80: 拒绝连接
    
  • 相关阅读:
    Oracle-通过创建索引加快SQL执行效率
    Oracle-DG,MRP进程无法正常应用问题处理,重启大法好
    Oracle-DG,12c pdb创建测试
    Oracle-DG,疑问主库添加日志后,备库未操作主库日志比备库日志数量多,有什么影响?
    Oracle-DG疑问,什么情况下主库会发出一个会话连接备库
    Oracle-DG 主库将log_archive_dest_state_2远程归档线程参数设置为defer,为什么dg还是处于实时同步状态?
    Oracle-rm误删除数据文件,如何强制删除文件启动db
    Oracle-buffer cache过小导致SQL执行时间长
    win10下完全卸载-重装MySQL
    VSCode配置详细教程
  • 原文地址:https://www.cnblogs.com/oloroso/p/4595115.html
Copyright © 2011-2022 走看看