apache源码安装
① 如何使用apache源代码安装
进入该文件夹并依次执行:
/configure --prefix=/work/installed/apr-util --with-apr=/work/installed/apr
make
make install
② 关于apache的一些疑惑
1、编译就是把高级语言变成底层计算机可以识别的2进制语言,计算机只认识1和0。比如编写php时,咱们的代码是有像if,else等词汇组成的,但是这些词汇是为了人们看、写起来方便,机器是不认识的。要顺利执行这些代码,就需要通过编译程序把if,else等高级语言编写的代码转换成机器能识别的0和1,这个过程就是编译。
2、为何安装好后的apache需要编译?这个不是很明白问题的意思。和3结合起来回答。通常从网上下载软件包后,根据他们的格式(比如rpm,tgz或tar.gz)会有不同的安装方式。rpm安装简单讲就是把已经编译好的(即预编译的)二进制文件自动放到对应的目录下。而像tgz,tar.gz等文件包含的是软件的源代码,即像前面提到的人能很容易看懂的php代码,需要编译成二进制之后才能安装。“安装预编译的apache服务器(1)”与“从apache服务器源代码开始安装(2)”的关系,简单点就是:(1)能直接安装(2)中源代码编译成的二进制文件。举个例子:比如你现在有两台一样的linux系统a和b,你在a中通过(2)源代码的方式编译安装某软件d,这个过程完成后会生产许多的二进制文件c(通常是借助以下命令./configure; make(编译); make install),如果这个时候你把这些生成的所有二进制文件c,都拷贝到b系统中对应的目录下,那么在b中也就成功安装了d软件。因为你拷贝的文件c已经是二进制文件了,系统能直接认到。换句话说就是可以直接把别人编译好的二进制文件(即预编译的文件)拿过来在自己的机器上安装,前提是你们linux系统要一样(或兼容)。
不知道说清楚没有
③ 编译安装apache 需要什么环境
编译Apache的要求如下:
磁盘空间
必须保证有50MB以上的自由临时磁盘空间。Apache安装完毕后会占据10MB左右的空间,实际的磁盘空间需求会因编译设置和是否安装第三方模块而有所不同。
ANSI-C编译器及编译环境
必须装有ANSI-C编译器,推荐使用自由软件基金会(FSF)的GCC。如果没有GCC,那么要确保使用的编译器符合ANSI标准,而且PATH中必须包含指向基本编译工具比如make的路径。
确保准确的时间
由于HTTP协议的元素都会用到时间,有必要了解一下你的系统所使用的时间同步机制。在基于网络时间协议(NTP)的系统中,一般是用ntpdate或xntpd来同步时间。有关NTP软件的资料请参见NTP主页。
Perl 5 [可选]
有些用Perl写的支持脚本,如apxs或dbmmanage ,需要Perl5解释器(5.003或以上的版本就足够了)。如果系统中存在多个Perl解释器,比如有系统提供的Perl 4,还有你自己安装的Perl 5,推荐你使用 --with-perl 选项来确保configure脚本使用正确的版本。如果configure没有没找到Perl 5也没关系,这并不影响Apache httpd的编译和安装,只是相关的支持脚本不能使用而已。
apr/apr-util >= 1.2
apr和apr-util包含在Apache httpd的发行源代码中,并且在绝大多数情况下使用都不会出现问题。当然,如果apr或apr-util的1.0或1.1版本已经安装在你的系统中了,则必须将你的apr/apr-util升级到1.2版本,或者将httpd单独分开编译。要使用发行源代码中自带的apr/apr-util源代码进行安装,你必须手动完成:
# 编译和安装 apr 1.2
cd srclib/apr
./configure --prefix=/usr/local/apr-httpd/
make
make install
# 编译和安装 apr-util 1.2
cd ../apr-util
./configure --prefix=/usr/local/apr-util-httpd/ --with-apr=/usr/local/apr-httpd/
make
make install
# 配置 httpd
cd ../../
./configure --with-apr=/usr/local/apr-httpd/ --with-apr-util=/usr/local/apr-util-httpd/
④ 如何将apache源码打成rpm安装包
这些命令一半都是制作rpm包和tar.gz调试时用的,一般的用户不会用到这些命令 一半安装rpm包时用命令: rpm -ivh XX.rpm 卸载命令: rpm -e XX.rpm 安装和卸载过程其实就已经执行了上面的命令,至于具体执行那些命令
⑤ 编译安装apache 怎么关闭 gzip
先来了解一下GZIP ,gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,也经常用来表示gzip这种文件格式。软件的作者是Jean-loup Gailly和Mark Adler。1992年10月31日第一次公开发布,版本号是0.1,目前的稳定版本是1.2.4。
gzip可以级大的加速网站.有时压缩比率高到80%,近来测试了一下,最少都有40%以上,还是相当不错的.在Apache2之后的版本,模块名不叫gzip,而叫mod_deflate
1、Apache启用gzip
如果要开启gzip的话,一定要打开下面二个模块.
LoadMole headers_mole moles/mod_headers.so
LoadMole deflate_mole moles/mod_deflate.so
设置压缩比率,取值范围在 1(最低) 到 9(最高)之间,不建议设置太高,虽然有很高的压缩率,但是占用更多的CPU资源.
DeflateCompressionLevel 3
AddOutputFilter DEFLATE html xml php js css
<Location />
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4/.0[678] no-gzip
BrowserMatch /bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI //.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary #对代理的设置
</Location>
测试数据对css
Original Size: 44 KB
Gzipped Size: 10 KB
Data Savings: 77.27%
测试数据js
Original Size: 6 KB
Gzipped Size: 2 KB
Data Savings: 66.67%
测试数据php
Original Size: 62 KB
Gzipped Size: 15 KB
Data Savings: 75.81%
上面只是随机拿的几个数据,看的出来,使用了gzip压缩后文件小多了.
另外讲一下,有关squid对gzip的处理
在squid中,对同一个URL只保留一份缓存。对于如果不同browser(是否支持压缩)如果频繁交替访问,例如:对某个cache住的目标,一个 http/1.0请求可能会导致squid强制更新其缓存。但接下来的另一个http/1.1请求又会导致squid再次更新缓存。这样那squid缓存 数据就要频繁更新,这就极大的降低了cache命中率。
不过还好,现实环境中不支持压缩的browser毕竟是很少的情况,所以对于缓存命中率的降低很有限.
这个神通广大的模块就是mod_gzip. 它通过用和gzip一样的压缩算法对apache发出的页面进行压缩,可能的话可以把页面压缩成为原来大小的十份之一。哪,如果10K的页面只要传1K这 不就是提速10倍嘛。当然一般网页只可以达到3-6倍。那也很不错。对吧。连google这样一个大的网站都采用这个技术。你还不快跟上?
这样一个好东东,来来来,我告诉你如何安装:分3步,1、下载,2、修改配置,3、测试。
安装, 配置
把mod_gzip放到你的apache的源代码目录下,新建一个mod_gzip目录如果需要补丁(针对1.3.17.la版) 还需运行:
patch mod_gizp.c
按你需要,在配置中选择动态DSO或静态编译进apache系统。如何处理在README中讲得很清楚,如-add-mole=mod_gzip.c, make,make install等等。这里不多讲。
把下列配置加入httpd.conf尾部。
# MOD_GZIP configuration
mod_gzip_on Yes
mod_gzip_minimum_file_size 1002
mod_gzip_maximum_file_size 0
mod_gzip_maximum_inmem_size 60000
mod_gzip_item_include mime "application/x-httpd-php"
mod_gzip_item_include mime text/*
mod_gzip_item_include mime "httpd/unix-directory"
mod_gzip_dechunk Yes
mod_gzip_temp_dir "/tmp"
mod_gzip_keep_workfiles No
mod_gzip_item_include file ".php3$"
mod_gzip_item_include file ".txt$"
mod_gzip_item_include file ".html$"
mod_gzip_item_exclude file ".css$"
mod_gzip_item_exclude file ".js$"
在保存修改后运行
…/bin/apachectl configtest确保配置修改无误。
然后用 apachectl restart 指令重起服务。
修改,测试
在宣布做好了之前在测试一下是优秀程序员的习惯。为了尽量不影响你的用户的浏览,我们可以用把新的apache驱动在8080端口上或者用指令控制mod_gzip起作用的目录,而不是一下子全用mod_gzip.
用法如下:
MOD_GZIP configuration
没有问题后你就可以让你的用户很开心的发现’XX网站现在好快哦。’
Mod_gzip真的很神奇,100K的HTML大 文档只要12K就可以传到用户端了。越先采用这个技术你的用户对你的网站的高速度印象就越深。不过有所得必有所失,由于解压是在客户端进行的,效果和用户 的浏览器有一定关系。
2、IIS启用gzip
现代的浏览器IE6和Firefox都支持客户端Gzip,也就是说,在服务器上的网页,传输之前,先使用Gzip压缩再传输给客户端,客户端接收之后由浏览器解压显示,这样虽然稍微占用了一些服务器和客户端的CPU,但是换来的是更高的带宽利用率。对于纯文本来讲,压缩率是相当可观的。如果每个用户节约50%的带宽,那么你租用来的那点带宽就可以服务多一倍的客户了。
IIS6已经内建了Gzip压缩的支持,可惜,没有设置更好的管理界面。所以要打开这个选项,还要费些功夫。
首先,如果你需要压缩静态文件(HTML),需要在硬盘上建一个目录,并给它“IUSR_机器名”这个用户的写权限。如果压缩动态文件(PHP,asp,aspx)就不需要了,因为它的页面是每次都动态生成的,压缩完就放弃。然后在IIS管理器中,“网站”上面右键-属性,不是下面的某个站点,而是整个网站。进入“服务”标签,选上启用动态内容压缩,静态内容压缩。
然后选中网站下面那个服务器扩展,新建一个服务器扩展。名字无所谓,下面的添加文件的路径是:
c:/windows/system32/inetsrv/gzip.dll,然后启用这个扩展。
这时候静态内容是可以压缩的,但是对于动态内容,aspx文件却不在压缩范围内。因为默认的可压缩文件并没有这个扩展名。而管理界面中你又找不到可以增加扩展名的地方,这时候只能去修改它的配置文件了。
在 c:/windows/system32/inetsrv/下面有个MetaBase.xml文件,可以用记事本打开,找到 IIsCompressionScheme,有三个相同名字的段,分别是deflate,gzip,Parameters,第三段不用管它,前两段有基本相同的参数,在这两段的参数HcScriptFileExtensions下面都加上一行aspx,如果你有其它的动态程序要压缩,也加在这里。 HcDynamicCompressionLevel改成9,(0-10,9是性价比最高的一个)。
1.首先备份 IIS 的配置文件,
复制C:/Windows/system32/inetsrv/metabase.xml到另外的备份文件夹中.
C:/Windows/system32/inetsrv/metabase.xml是 IIS 的核心配置文件,该文件的完整性一但被破坏,IIS 将无法正常运行,严重到需要重新安装系统.
2. 在开始菜单中启动 Internet 信息服务(IIS)管理器,右键点击“网站”属性,打开“服务”选项卡,勾选“HTTP 压缩”的两个选项。“临时目录”和“临时目录最大容量”可根据需要自行设置。设置完成后点击确定。
3. 右键点击“网站”下方的 “Web服务扩展”,添加一个新的Web服务扩展,扩展名填写为“HTTP Compression”或其他,都可以。“要求的文件”添加:c:/windows/system32/inetsrv/gzip.dll ,并勾选“设置扩展状态为允许”,完成后点击确定。
4.下面的步骤有些复杂,如果没有确定的把握能理解,最好不要尝试,右键点击“Internet 信息服务的”“本地计算机”属性,勾选“允许直接编辑配置数据库”并确定。
5. 在开始菜单中运行 notepad C:/Windows/system32/inetsrv/metabase.xml ,打开metabase.xml 文件,请在任何改动前再次确认该文件已经备份。
6. 搜索并找到 metabase.xml 文件中的<IIsCompressionScheme 片段中的HcScriptFileExtensions,依照原有文件的格式添加你希 望进行 HTTP 压缩的文件扩展名,静态文件HcFileExtensions可添加 JS,CSS 等; 动态文件HcScriptFileExtensions可添加"ASPX"”ASMX”,如下:
<IIsCompressionScheme Location =”/LM/W3SVC/Filters/Compression/deflate”
HcCompressionDll=”%windir%/system32/inetsrv/gzip.dll”
HcCreateFlags=”0″
HcDoDynamicCompression=”TRUE”
HcDoOnDemandCompression=”TRUE”
HcDoStaticCompression=”FALSE”
HcDynamicCompressionLevel=”9″
HcFileExtensions=”htm
html
js
css
txt”
HcOnDemandCompLevel=”10″
HcPriority=”1″
HcScriptFileExtensions=”asp
aspx
asmx
dll
exe”
>
</IIsCompressionScheme>
<IIsCompressionScheme Location =”/LM/W3SVC/Filters/Compression/gzip”
HcCompressionDll=”%windir%/system32/inetsrv/gzip.dll”
HcCreateFlags=”1″
HcDoDynamicCompression=”TRUE”
HcDoOnDemandCompression=”TRUE”
HcDoStaticCompression=”TRUE”
HcDynamicCompressionLevel=”9″
HcFileExtensions=”htm
html
js
css
txt”
HcOnDemandCompLevel=”10″
HcPriority=”1″
HcScriptFileExtensions=”asp
aspx
asmx
dll
exe”
>
</IIsCompressionScheme>
注意“Compression/deflate”和“Compression/gzip”两个片段都需要修改。动态压缩等级,HcDynamicCompressionLevel建议设置为“9”
7. 保存并关闭 metabase.xml 文件。
8. 重新启动 IIS 服务,运行“IISReset”或重新启动 WWW 服务。
9. 其他:
如果你的服务器上某一个Web站点不希望启用 IIS 压缩,请运行以下脚本:
cscript. C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/site#/root/DoStaticCompression False
cscript. C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/site#/root/DoDynamicCompression False
如果想增加启用 HTTP 压缩的文件类型,请运行以下脚本:
“” 中为文件扩展名,别忘了把原有的扩展名加上。
静态文件压缩:
CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcFileExtensions “htm” “html” “txt” “doc” “ppt” “xls”
CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcFileExtensions “htm” “html” “txt” “doc” “ppt” “xls”
动态文件压缩:
CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcScriptFileExtensions “asp” “aspx” “asmx” “dll” “exe” “php”
CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcScriptFileExtensions “asp” “aspx” “asmx” “dll” “exe” “php”
将site#替换为该 Web 站点的 ID。Web 站点的 ID是什么到“日志记录属性”中看一下日志记录的“日志文件名”前面的路径就知道了。
运行以上脚本前务必备份,运行后再次执行“IISReset”使生效.
⑥ 服务器的apache安装后怎么设置网站源码后面那些
运行 Terminal,输入命令:复制代码 代码如下:ssh username@ip,然后输入密码。2. 安装 Apache 软件:复制代码 代码如下:yum install httpd3. 设置 Apache 在服务器启动时运行:复制代码 代码如下:chkconfig --levels 235 httpd on4. 在 Apache 配置文件中配置域名:复制代码 代码如下:vi /etc/httpd/conf/httpd.conf,找到 ServerName ,添加“域名:80”,保存并退出。5. 重启 Apache:复制代码 代码如下:service httpd restart6. 浏览器中访问第4步配置的域名,如果出现“Apache 2 Test Page powered by CentOS”的页面,说明配置成功。
⑦ centos怎么查看apache安装在哪里
在centos下Apache的安装方式无非两种,源码编译安装和yum(rpm)安装,下面列出查找方式
1. 查找服务安装位置通常使用查找进程的方式,适用于编译安装的apache,下面例子中可以看出来apache安装在/usr/local/httpd/下
ps-ef|egrep"apache|httpd"
root300101004:01?00:00:00/usr/local/httpd/bin/httpd-kstart
www3001230010004:01?00:00:00/usr/local/httpd/bin/httpd-kstart
www3001330010004:01?00:00:00/usr/local/httpd/bin/httpd-kstart
www3001430010004:01?00:00:00/usr/local/httpd/bin/httpd-kstart
www3001530010004:01?00:00:00/usr/local/httpd/bin/httpd-kstart
www3001630010004:01?00:00:00/usr/local/httpd/bin/httpd-kstart
www3001730010004:01?00:00:00/usr/local/httpd/bin/httpd-kstart
www3001830010004:01?00:00:00/usr/local/httpd/bin/httpd-kstart
www3001930010004:01?00:00:00/usr/local/httpd/bin/httpd-kstart
www3002030010004:01?00:00:00/usr/local/httpd/bin/httpd-kstart
www3002130010004:01?00:00:00/usr/local/httpd/bin/httpd-kstart
www3002230010004:01?00:00:00/usr/local/httpd/bin/httpd-kstart
www3002330010004:01?00:00:00/usr/local/httpd/bin/httpd-kstart
www3002430010004:01?00:00:00/usr/local/httpd/bin/httpd-kstart
www3002530010004:01?00:00:00/usr/local/httpd/bin/httpd-kstart
www3002630010004:01?00:00:00/usr/local/httpd/bin/httpd-kstart
www3002730010004:01?00:00:00/usr/local/httpd/bin/httpd-kstart
2. 如果进程中无法找到尝试在启动脚本中寻找,适用于yum安装的apache,如下所示,可以看到启动时apache加载配置文件的位置,其中apache运行的站点目录可以在/etc/httpd/conf/httpd.conf中找到
#查看apache配置文件位置
sed-n'9,11p'/etc/init.d/httpd
#config:/etc/httpd/conf/httpd.conf
#config:/etc/sysconfig/httpd
#pidfile:/var/run/httpd/httpd.pid
#查看apache站点目录
grep"DocumentRoot"/etc/httpd/conf/httpd.conf|grep-v"#"
DocumentRoot"/var/www/html"
3. 通过编译参数查找
apache_bin=$(find/-typef-name"httpd"|xargs-ils-l{}|awk'{if($5>30000)print$NF}')
$apache_bin-V|grepHTTPD_ROOT
结果:-DHTTPD_ROOT="/etc/httpd"
#apache安装在/etc/httpd目录下
⑧ apache用源代码安装好 还是 apt-get
在 Linux 系统中,使用 apt-get 获取软件并安装自动化更高一些。但是有些驱动程序是没有现成的,是必须需要自行从网上下载后,再和系统的内核一起进行编译。如果是从网上下载源代码来进行编译的话,用户操作起来就得麻烦一些。
⑨ 怎么彻底删除linux下编译安装的apache和php
啊 这个很容易删除吧.
源码编译安装,都会通过--prefix 参数安装目录的.
先停止所有服务直接把安装目录文件夹删除,然后再到/etc配置文件下删除配置文件 就可以了...
然后再通过find命令确定一下就可以了..一般都没这必要.只要删除安装目录和配置文件就可以了..