源码方式编译apache

第一步、通过yum的方式安装apache所依赖的程序

yum -y install wget make gcc gcc-c++ pcre openssl openssl-devel zlib unzip cmake 
ncurses-devel libjpeg libjpeg-devel libpng libpng-devel libxml2 libxml2-devel curl-
devel libtool libtool-ltdl libtool-ltdl-devel libevent libevent-devel zlib-static zlib-devel 
autoconf pcre-devel gd perl freetype freetype-deve expat-devel

二、安装apr

wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.6.3.tar.gz
tar xf apr-1.6.3.tar.gzcd apr-1.6.3
./configure --prefix=/usr/local/apr/
make
make install

三、安装apr-util

wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
tar-zxvfapr-util-1.6.1.tar.gz
cd apr-util-1.6.1
./configure--prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make 
make install

四、编译安装apache

#创建运行apache的用户
groupadd www
useradd -g www www -s /bin/false
#下载软件
wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.29.tar.gz
tar -zxvf httpd-2.4.29.tar.gzcd httpd-2.4.29
#编译
./configure                                   
--with-apr=/usr/local/apr                  
 --with-apr-util=/usr/local/apr-util         
--prefix=/usr/local/apache         
--sysconfdir=/etc/httpd24          
--enable-so                        
--enable-ssl                       
--enable-cgi                       
--enable-rewrite                   
--with-zlib                        
--with-pcre                        
--with-mpm=prefork                 
--enable-modules=most              
--enable-mpms-shared=all   

        以下为几个主要的配置项
        --sysconfdir=/etc/httpd24  指定配置文件路径
        --enable-so  启动模块动态装卸载
        --enable-ssl 编译ssl模块
        --enable-cgi 支持cgi机制(能够让静态web服务器能够解析动态请求的一个协议)
        --enable-rewrite  支持url重写     --Author : Leshami
        --with-zlib  支持数据包压缩       --Blog   : http://blog.csdn.net/leshami
        --with-pcre  支持正则表达式
        --with-apr=/usr/local/apr  指明依赖的apr所在目录
        --with-apr-util=/usr/local/apr-util/  指明依赖的apr-util所在的目录
        --enable-modules=most      启用的模块
        --enable-mpms-shared=all   以共享方式编译的模块
        --with-mpm=prefork         指明httpd的工作方式为prefork
httpd常用编译参数属性解释
--prefix 指定httpd2.4的安装路径
--sysconfdir 指定配置文件路径
--enable-so 启动sharedobject共享对象
--enable-ssl 启用ssl,借助于此可以实现HTTPS访问
--enable-cgi 启用CGI,可以实现CGI脚本执行
--enable-rewrite 启用Rewrite重写,能够实现诸如301重定向的功能,以来PCRE包
--with-zlib 启用zlib压缩
--with-pcre 启用PCRE
--with-apr 指定apr的路径,httpd2.4依赖apr1.4版本以上,所以要指明
--with-apr-util 指定apr-util的路径,同上
--enable-modules 启用哪些模块加载,most尽可能多的
--enable-mpms-shared=all http2.4上prefork、worker、event是模块化的,可以动态加载
--with-mpm=prefork 指明默认的httpd2.4 MPM,即运行在prefork模型下

五、修改apache配置(/etc/httpd/httpd.conf)

vim /etc/httpd/httpd.conf
修改将 ServerName www.example.com:80 改 ServerName locahost:80
修改用户和用户组把 user=deamon group=deamon 改成 user=www group=www

六、增加apache环境变量

echo export PATH=$PATH:/usr/local/httpd/bin >> /etc/profile 

七、配置apache开机启动

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
#修改你的vim /etc/init.d/httpd脚本 
#在开始处#!/bin/bash之后的行后插入 
# chkconfig: 345 61 61
# description:Apache httpd
# 增加服务
chkconfig --addhttpdchkconfig --level2345httpd on

八、启动|停止|重启apache方式

启动|停止|重启  /etc/init.d/httpdstart|stop|restart
扩展启动  /usr/local/httpd/bin/apachectl -f /etc/httpd/httpd.conf
暴力停止      /usr/local/httpd/bin/apachectl -k stop
优雅停止      /usr/local/httpd/bin/apachectl -k graceful-stop
优雅的重启  /usr/local/httpd/bin/apachectl -k graceful
暴力重启    /usr/local/httpd/bin/apachectl -k restart

九、apache和php的整合

./configure \
--prefix=/usr/local/php5.6 \
--sysconfdir=/etc/php5.6 \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-config-file-path=/etc/php5.6 \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-zlib \
--with-zlib-dir \
--with-curl \
--enable-zip \
--with-gd \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-opcache \
--enable-mbstring \
--enable-mbregex \
--enable-pcntl \
--enable-shmop \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-calendar \
--enable-bcmath \
–-enable-fpm

十、设置php支持apache配置文件

> 编辑apache配置文件vim /etc/httpd/httpd.conf
> 添加php支持AddType application/x-httpd-php .php. phtml AddType application/x-httpd-php-source .phps
> 添加默认索引页面index.php,再找到“DirectoryIndex”,
在index.html后面加上  "index.php" DirectoryIndex index.html index.php
> 不显示目录结构,找到“Options Indexes FollowSymLinks”,修改为Options FollowSymLinks
> 开启apache支持伪静态,找到“AllowOverride None”,修改为AllowOverride All

十一、扩展

整合apache和nginx的php编译参数

[root@linux-node2 php-7.2.4]# ./configure --prefix=/usr/local/php/ \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-libxml-dir \
--enable-sockets \
--with-curl \--with-jpeg-dir \
--with-png-dir \
--with-gd \--with-iconv \
--with-freetype-dir \
--enable-gd-native-ttf \--enable-gd-jis-conv \
--with-xmlrpc \
--with-openssl \
--with-mhash \--with-mcrypt \
--with-pear \
--enable-mbstring \
--enable-sysvshm \
--with-mysql=/usr/local/mysql/\
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-mysql-sock \
--with-pdo-mysql \
--with-recode=/usr \
--with-bz2=/usr \
--disable-debug \
--disable-phpdbg \
--enable-bcmath \--enable-calendar \
--enable-exif \--enable-ftp \
--with-gettext=/usr \
--with-gmp=/usr/include/linux \
--enable-pcntl \
--enable-shmop \--enable-soap \
--enable-sysvmsg \
--enable-sysvsem \
--enable-wddx \
--with-xsl \
--disable-fileinfo \
--enable-fpm \
--enable-zip \
--with-zlib \
--with-pcre
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351

推荐阅读更多精彩内容