Linux下编译安装Apache及模块
来源:互联网 发布:淘宝上的ipad是真的吗 编辑:程序博客网 时间:2024/05/17 23:13
Apache是时下最流行的Web服务器软件之一,支持多平台,可快速搭建web服务,而且稳定可靠,并可通过简单的API扩充,就可以集成PHP/Python等语言解释器。文章这里讲解如何在linux下编译 Apache,以及如何编译Apache模块。
linux下编译Apache
下载Apache源代码,编译过程如下:
$ wget http://apache.fayea.com//httpd/httpd-2.4.12.tar.gz
$ tar -zxf httpd-2.4.12.tar.gz
$ cd httpd-2.4.12
$ ./configure --prefix=/usr/local/apache/
$ make && make install
编译过程中,可能会出现了以下错误:
$ ./configure --prefix=/usr/local/apache/
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.
这里是因为Apache编译依赖 apr,没找到 apr 就无法正常安装。另外,Apache还依赖 apr-util 和 pcre编译Apache依赖
APR是Apache可移植运行库,封装了所有操作系统调用,用来实现Apache内部组件对操作系统资源的使用,提高Apache的可移植性。APR和Apache分离出来,避免Apache开发过程中,还要针对不同的平台做不同处理。apr-util 相当于APR工具集。PCRE是实现正则的perl库。
编译和安装 APR
$ wget http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz
$ tar -zxf apr-1.5.2.tar.gz
$ cd apr-1.5.2
$ ./configure --prefix=/usr/local/apr
$ make && make install
编译和安装 apr-util
$ wget http://archive.apache.org/dist/apr/apr-util-1.5.3.tar.gz
$ tar -zxf apr-util-1.5.3.tar.gz
$ cd apr-util-1.5.3
$ ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
$ make && make install
编译和安装 pcre
$ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz
$ tar -zxf pcre-8.37.tar.gz
$ cd pcre-8.37
$ ./configure --prefix=/usr/local/pcre
$ make && make install
重新编译Apache
安装Apache依赖后,编译时加多几个参数,重新编译Apache
$ ./configure --prefix=/usr/local/apache/ \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--with-pcre=/usr/local/pcre
$ make && make install
编译Apache模块
这里以mod_concatx为例,说明如何编译Apache模块,步骤很简单。mod_concatx是apache模块,可以用来合并多个js/css,有效提高js/css加载速度
编译 mod_concatx 模块
$ wget --no-check-certificat https://raw.githubusercontent.com/chenweiqi/apmod/master/mod_concatx/mod_concatx.c
$ ln -s /usr/local/apache/bin/apxs /usr/local/bin/apxs
$ apxs -c mod_concatx.c
编译并安装mod_concatx 模块
$ apxs -iac mod_concatx.c
这种编译方式会自动安装Apache模块,安装成功后,可以在Apache 模块目录找到 mod_concatx.so,并且 conf/httpd.conf 配置也会加上 mod_concatx 模块信息
启动Apache
$ /usr/local/apache/bin/httpd -k start
注:Apache启动后,以后台服务运行。如果想关闭Apache, 就使用以下命令:
$ /usr/local/apache/bin/httpd -k stop
查看已加载的Apache模块
$ /usr/local/apache/bin/httpd -M
Loaded Modules:
core_module (static)
so_module (static)
http_module (static)
mpm_event_module (static)
authn_file_module (shared)
authn_core_module (shared)
authz_host_module (shared)
authz_groupfile_module (shared)
authz_user_module (shared)
authz_core_module (shared)
access_compat_module (shared)
auth_basic_module (shared)
reqtimeout_module (shared)
filter_module (shared)
mime_module (shared)
log_config_module (shared)
env_module (shared)
headers_module (shared)
setenvif_module (shared)
version_module (shared)
unixd_module (shared)
status_module (shared)
autoindex_module (shared)
dir_module (shared)
alias_module (shared)
concatx_module (shared)
Loaded Modules:
core_module (static)
so_module (static)
http_module (static)
mpm_event_module (static)
authn_file_module (shared)
authn_core_module (shared)
authz_host_module (shared)
authz_groupfile_module (shared)
authz_user_module (shared)
authz_core_module (shared)
access_compat_module (shared)
auth_basic_module (shared)
reqtimeout_module (shared)
filter_module (shared)
mime_module (shared)
log_config_module (shared)
env_module (shared)
headers_module (shared)
setenvif_module (shared)
version_module (shared)
unixd_module (shared)
status_module (shared)
autoindex_module (shared)
dir_module (shared)
alias_module (shared)
concatx_module (shared)
说明mod_concatx已加载!
Apache无法正常运行的解决办法
1. 80端口被占用
$ netstat -anp | grep :80
找到占用端口的Pid,kill掉即可。
2. 防火墙默认禁用80端口
$ vi /etc/sysconfig/iptables
加多一行记录
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
保存后,重启防火墙。
$ service iptables restart
2015/6/11 补充Linux下Apache无法正常运行的解决办法
2016/8/16 更新mod_concatx.c的地址(google code已下架)
参考:http://blog.csdn.net/mycwq/article/details/46426261
0 0
- Linux下编译安装Apache及模块
- linux下编译apache模块
- linux下apache编译安装后添加新模块
- Linux下安装apache指定安装模块or安装后编译加载其他模块
- linux下apache的安装及so文件的编译
- linux下编译安装apache
- Linux下编译安装apache
- Linux下编译安装Apache
- Linux下编译安装apache
- Linux下编译安装Apache
- Linux下Apache安装/增加mod_rewrite模块
- Linux下Apache安装/增加mod_rewrite模块
- Unix下Apache HTTP编译及安装
- linux动态模块的编译及安装
- linux 下模块的编译和安装
- linux下单独编译安装Apache rewrite_module
- Linux下编译安装Apache httpd 2.4
- [su]Linux下编译安装Apache httpd
- Java屏幕截取全屏
- poj 3370 Halloween treats 【抽屉原理】
- 动态编译,远端调用Windchill方法
- 移动web开发知识
- SqlServer 错误日志切换和查看
- Linux下编译安装Apache及模块
- 【LeetCode】【JavaScript】Find Peak Element
- C++ string实现原理2
- linux使用telnet自动发送mail.
- SuperExplorer 1.54分析
- JavaScript打开窗口函数(Window.Open)使用详解、绝对路径与相对路径的获取与转换
- ITK读写图像有关问题解决办法
- Android Studio上手,基于VideoView的本地文件及流媒体播放器
- 集团信息化之路 后续集团内部软件开发方向及大数据分析