源码方式编译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

你可能感兴趣的:(源码方式编译apache)