zhangxiaocc 2020-06-28
Apache HTTP Server是Apache软件基金会的一个开放源码的网页服务器软件,可以在大多数电脑操作系统中运行。由于其跨平台和安全性,被广泛使用,是最流行的Web服务器软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。 [ ~]# yum install -y gcc pcre pcre-devel expat-devel bzip2 openssl-devel zlib* libtool [ src]# rz [ src]# tar xvf apr-1.7.0.tar.gz [ src]# ls apr-1.7.0 apr-1.7.0.tar.gz [ src]# cd apr-1.7.0 [ apr-1.7.0]# ./configure --prefix=/usr/local/apr [ apr-1.7.0]# make [ apr-1.7.0]# make install [ apr-1.7.0]# cd .. [ src]# rz rz waiting to receive. zmodem trl+C ? 100% 541 KB 541 KB/s 00:00:01 0 Errors.. [ src]# ls apr-1.7.0 apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz [ src]# tar xf apr-util-1.6.1.tar.gz [ src]# ls apr-1.7.0 apr-1.7.0.tar.gz apr-util-1.6.1 apr-util-1.6.1.tar.gz [ src]# cd apr-util-1.6.1 [ apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr [ apr-util-1.6.1]# make [ apr-util-1.6.1]# make install
更多的选项可以通过./configure --help 了解 官方的编译选项文档http://httpd.apache.org/docs/current/programs/configure.html --prefix=/usr/local/apache --sysconfdir=/etc/httpd // 指定配置文件在安装在哪个路径。如不指定,配置文件就在程序安装的目录;如指定/etc目录 --with-apr=/usr/local/apr // 指定依赖的apr路径。注意必须指明路径,否则编译时会自动去找/usr下的apr,而不是编译的高版本apr,下同 --with-apr-util=/usr/local/apr-util --with-mpm=MPM //指定默认的 [prefork | worker | event] 如3种MPM模块都编译了,则通过此项指定默认使用哪种 --with-pcre //依赖pcre库用于解决正则表达式问题。 ## 安装 pcre-devel(兼容Perl的正则表达式库) --enable-so //打开 so 模块,启用动态装载模块功能 --enable-ssl //启用ssl功能。注意要先安装,https使用 --enable-cgi //启用cgi功能,为非线程方式工作的mpm使用 --enable-cgid //以线程工作(worker/event)的mpm使用 --enable-rewrite //支持 URL 重写 --enable-zlib //通用压缩机制 --enable-module=most //[ all | most | ……] 指定启用哪些模块。可指定具体的模块名,也可使用all表示启用所有模块,most表示启用大多数常用模块。 一般使用most即可 --enable-mpms-shared=all //启用MPM支持的模式,启用哪种mpm(prefork,worker,event),使用worker或event时要另外一种方式编译php(编译时使用了–enable-maintainer-zts选项) --enable-deflate //传输压缩机制,节约带宽提供对内容的压缩传输编码支持一般是html、js、css等内容的站点。使用此参数会大大 提高传输速度提升访问者访问的体验。在生产环境中这是apache调优的一个重要选项之一
[ apr-util-1.6.1]# cd .. [ src]# rz rz waiting to receive. zmodem trl+C ? 100% 8983 KB 8983 KB/s 00:00:01 0 Errors [ src]# ls apr-1.7.0 apr-1.7.0.tar.gz apr-util-1.6.1 apr-util-1.6.1.tar.gz httpd-2.4.39.tar.gz [ src]# tar xf httpd-2.4.39.tar.gz [ src]# ls apr-1.7.0 apr-util-1.6.1 httpd-2.4.39 apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.39.tar.gz [ src]# cd httpd-2.4.39 [ httpd-2.4.39]# ./configure --prefix=/usr/local/apache24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-mpm=event [ httpd-2.4.39]# make [ httpd-2.4.39]# make install 所有组件 /usr/local/apache24 主配置文件 /usr/local/apache24/conf 启动脚本 /usr/local/apache24/bin/apachectl [ httpd-2.4.39]# ls /usr/local/apache24/ bin build cgi-bin conf error htdocs icons include logs man manual modules [ httpd-2.4.39]# ls /usr/local/apache24/conf/ extra httpd.conf magic mime.types original [ httpd-2.4.39]# ls /usr/local/apache24/bin/ ab apxs dbmmanage envvars-std htcacheclean htdigest httpd logresolve apachectl checkgid envvars fcgistarter htdbm htpasswd httxt2dbm rotatelogs [ httpd-2.4.39]# ll /usr/local/apache24/bin/apachectl -rwxr-xr-x 1 root dip 3440 Mar 10 16:45 /usr/local/apache24/bin/apachectl
启动 apache2.4
[ httpd-2.4.39]# /usr/local/apache24/bin/apachectl AH00558: httpd: Could not reliably determine the server‘s fully qualified domain name, using fe80::250:56ff:fe2c:fe97%ens33. Set the ‘ServerName‘ directive globally to suppress this message 这是一个提示,问题不大 (⊙o⊙)…