apache 安装
apache
apache 既是 httpd
apache安装
- wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.26.tar.gz #没有?
-
wget http://archive.apache.org/dist/httpd/httpd-2.4.26.tar.gz
- wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.5.4.tar.gz
apr 和 apr-util 是一个通用的函数库,他让httpd可以不关心底层的操作系统平台,可以方便移植(从linux到windows)
- tar -zxvf httpd-2.4.26.tar.gz
- tar -zxvf apr-util-1.5.4.tar.gz
-
tar -zxvf apr-1.5.2.tar.gz #系统已经安装了就不用安装了,
-
cd /usr/src/local/apr-1.5.2
- ./configure —prefix=/usr/local/apr
-
make && make install
-
cd /usr/src/local/apr-util-1.5.4
- ./configure —prefix=/usr/local/apr-util —with-apr=/usr/local/apr
- make && make install
-
出错因为没有expat.h 头文件: yum search expat;搜索到yum -y install expat-devel.x86_64 #安装后然后重新make编译安装
-
出错“pcre-config for libpcre not found”:yum search pcre;搜索到 yum -y install pcre-devel.x86_64
-
cd /usr/src/local/httpd-2.4.26
./configure \ --prefix=/usr/local/apache2.4\ --with-apr=/usr/local/apr\ --with-apr-util=/usr/local/apr-util\ --enable-so\ --enable-mods-shared=most
-
make && make install
-
出现 undefined reference to 'XML_GETErrorCode'等等
原因是编译apr-util的时候缺少了xml相关的库, yum -y install libxml2-devel
删除apr-util安装的目录和makefile(make distclean),重新进行安装,然后重新执行安装apache
-
- ls /usr/localapache2.4/modules
- /usr/local/apache2.4/bin/httpd -M #查看加载的模块
带share字样的,表示该模块为动态共享模块,static表示静态模块
区别在于静态模块与/usr/local/apache2.4/bin/httpd 绑定在一起,我们看不到,而动态模块都是一个个独立的存在的文件modules目录下面的.so文件都是 - /usr/local/apache2.4/bin/apachectl start #启动服务
- 支持 ssl,参考 (apache扩展模块)[https://www.cnblogs.com/wanderingfish/p/8125453.html]
# 源码编译加上 --enable-ssl --with-ssl=/path/to/ssl 其中 --with-ssl 是 openssl 安装位置: find / -name openssl 没有安装 需要 yum install openssl-devel 安装
./configure
--prefix=/home/xujb/soft/apache2.2.9 \
--with-apr=/home/xujb/soft/apr-http-2.2.9 \
--with-apr-util=/home/xujb/soft/apr-util-http.2.29 \
--enable-so \
--enable-mods-shared=most \
--enable-ssl
--with-ssl=/home/xujb/soft/openssl0.9/
make && make install
测试
[root@localhost apache2.2.9]# bin/apachectl -t
httpd: Syntax error on line 81 of /home/xujb/soft/apache2.2.9/conf/httpd.conf: Cannot load /home/xujb/soft/apache2.2.9/modules/mod_ssl.so into server: libssl.so.0.9.8: cannot open shared object file: No such file or directory
报错:
echo "/home/xujb/soft/openssl0.9/lib" >> /etc/ld.so.conf
ldconfig -v # 查看加载库文件 动态链接库 或者使用临时动态库 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/xujb/soft/openssl0.9/lib