当前位置:首页 » 编程软件 » 编译apache

编译apache

发布时间: 2024-12-30 03:11:50

编译安装的apache,httpd.pid在哪

/var/run/httpd/httpd.pid

看下httpd.conf的配置文件下,比如
grep pid /etc/httpd/conf/httpd.conf

find / -name httpd.pid

㈡ 在linux 上装apache 编译和安装都正常,可是在启动服务apachectl start 的时候报错: apachectl :没有许

编译安装httpd,系统并不会自动给apachectl做链接,你可以到编译安装目录中去寻找apachectl命令,然后执行/path/apachectl start,或者手动把链接做到/usr/local/bin目录中,然后才可以执行apachectl start

㈢ 求助,编译apache服务器出问题

随着网络技术的普及、应用和Web技术的不断完善,Web服务已经成为互联网上重要的服务形式之一。原有的客户端/服务器模式正在逐渐被浏览器/服务器模式所取代。本文将重点Apache 服务器的故障排除的技巧。
一、检查配置文件的错误
Apache服务器的设置文件位于/etc/httpd/conf/目录下,传统上使用三个配置文件httpd.conf,access.conf和srm.conf,来配置Apache服务器的行为。在新版本的Apache中,所有的设置都被放在了httpd.conf中,因此只需要调整这个文件中的设置。其中99% Apache服务器错误是配置文件有误。
1 使用apachectl configtest命令
如果配置文件有错误,可以使用apachectl configtest命令,apachectl configtest命令可以检查出所有语法错误和逻辑错误。
实例1
下面是一个配置文件样例片断:
Locatio
erver
tatu
SetHandler server
tatu
Order deny,allow
Deny from all
Allow from
192.168
149
</
Locatio
如果黑体部分的错误写成了“<Location /server-status”少写了一个 >。
apachectl configtest命令会检查到这个问题,输出如下:
apachectl configtest
Syntax error on line
918
of
etc
httpd
conf
httpd.conf:
Locatio
directive missing closing
2 使用服务管理工具
如果配置文件有错误,也可以使用GUI工具来查看。下面是实例1在GUI工具“服务配置“中的体现,如图1 。
图1 使用GUI工具检查错误
二、 学会使用错误日志 错误日志是最重要的日志文件,其文件名和位置取决于ErrorLog指令。Apache httpd将在这个文件中存放诊断信息和处理请求中出现的错误,由于这里经常包含了出错细节以及如何解决,如果服务器启动或运行中有问题,首先就应该查看这个错误日志。错误日志是你的朋友。任何错误都会在错误日志中有所记载,所以你应该首先查看它。如果你的网站空间提供者不允许访问错误日志,那么你应该考虑换一个空间提供者。学会阅读错误日志,可以快速找出问题并快速解决。 1 错误日志格式 Apache 默认的错误日志配置如下: ErrorLog logs/error_log LogLevel warn 配置错误日志相对简单,只要说明日志文件的存放路径和日志记录等级即可。格式为: 日期和时间 错误等级 错误消息 2 日志记录等级 下面着重说说日志记录等级,包括八个级别。 1 级英文名称emerg ,出现紧急情况使得该系统不可用,如系统宕机等 2 级alert 英文名称,需要立即引起注意的情况 3 级 英文名称crit ,危险情况的警告 4级 英文名称error ,除了emerg 、alert、crit 的其他错误 5级英文名称 warn。 警告信息 6级英文名称 notice ,需要引起注意的情况,但不如error、warn 重要 7级英文名称 info ,值得报告的一般消息 8级英文名称 debug, 由运行于debug 模式的程序所产生的消息 错误日志文件举例 错误日志的格式相对灵活,并可以附加文字描述。某些信息会出现在绝大多数记录中,一个典型的例子是: [Wed Oct 11 14:32:52 2007] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test 其中,第一项是错误发生的日期和时间;第二项是错误的严重性,LogLevel指令使只有高于指定严重性级别的错误才会被记录;第三项是导致错误的IP地址;此后是信息本身,在此例中,服务器拒绝了这个客户的访问。服务器在记录被访问文件时,用的是文件系统路径,而不是Web路径。错误日志中会包含类似上述例子的多种类型的信息。此外,CGI脚本中任何输出到stderr的信息会作为调试信息原封不动地记录到错误日志中。用户可以增加或删除错误日志的项。但是对某些特殊请求,在访问日志(access log)中也会有相应的记录,比如上述例子在访问日志中也会有相应的记录,其状态码是403,因为访问日志也可以定制,所以可以从访问日志中得到错误事件的更多信息。 了解错误代码和错误提示 l 常用的错误响应代码如下: 301 :告知用户请求的URL 已经永久的移动到新的URL,用户可以记住新的URL,以便日后直接使用新的URL 进行访问。 302 :告知用户请求的URL 临时的移动到新的URL,用户无需记住新的URL,如果省略错误响应代码,默认就是此值。 303 :告知用户页面已经被替换,用户应该记住新的URL。 401 :授权失败,即密码错误。 403 :Access denied 存取错误,即不可以读取该文件。 404 :File not found 找不到文件。 410 :告知用户请求的页面已经不再存在,使用此代码时不应该使用重定向的URL 参数。 500 :服务器内部错误,可能是Web服务器本身存在问题,也可能是编写的程序出错。 l 错误消息提示说明 “Invalid argument: core_output_filter: writing data to the network” 消息 Apache在可能的平台上使用系统调用sendfile来加速响应的发送。不幸的是,在某些系统上,Apache会在编译时检测sendfile的存在,即使它不能正常工作。这经常发生在使用网络或其他非标准文件系统时。这个问题的表现症状包括上述信息出现在错误日志里及对于非零长度文件请求发送零长度的响应。一般这个问题只发生在静态文件上,因为动态文件通常用不到sendfile 。要修正这个问题,可用EnableSendfile指令关闭服务器所有部分对sendfile的使用即可。同时参看EnableMMAP指令,对相似的问题有帮助。 “Premature end of script headers” 消息 大多数导致这个错误的CGI脚本问题将会向浏览器发送一个"Internal Server Error"错误信息。 “Permission denied” 消息 error_log中的"Permission denied"错误伴随一个发送到客户端的"Forbidden"信息通常表明违反了文件系统的权限,而不是Apache HTTP的配置文件出了错误。检查并确认用于运行子进程的User和Group有访问导致问题的文件的足够权限。同时检查一下导致问题的文件所在的目录及其所有父目录是否具有执行(搜索)权限(也就是 chmod +x)。最近发行的 Fedora Core 和其它Linux发行版使用了SELinux进行额外的访问控制,违反这些限制也会导致"Permission denied"消息。 "POST Method Not Allowed"消息 这说明Apache没有被正确配置以执行CGI程序,重新阅读配置Apache看看遗漏了什么。 "Internal Server Error"消息 查阅Apache错误日志,可以找到CGI程序产生的出错消息"Premature end of script headers"。对此,需要检查下列各项,以找出不能产生正确HTTP头的原因。
1 检查错误日志!
Apache服务器在遇到问题时会尽力做到对你有所帮助。在许多情况下,它会通过在错误日志中写入一条或多条消息来提供一些细节。有时这已经足够让你自己诊断和解决问题了(比如文件权限或类似的问题)。错误日志的默认位置在/usr/local/apache2/logs/error_log ,但是最后还是看看配置文件中的ErrorLog指令以确认错误日志在你服务器上的确切位置。
2 再一次检查语法
Apache 配置文件是httpd.conf 长度通常在80-990行,几乎99%Apache 故障是语法错误引起的。可以手工检查/etc/httpd/conf/httpd.conf,也可以通过浏览器输入:
http://192.168.1.12/server-info?config
获取当前配置文件,如图3 。
图3 当前Apache服务器配置文件
说明:此时系统会自动添加行号。
3 察看Apache的FAQ!
最新版本的Apache常见问题列表总是可以从Apache主站点得到,
4 察看Apache bug数据库
大多数报告给Apache项目组的问题都记录在bug数据库中。在你添加一个新bug之前,请务必检查已有的报告(打开的和关闭的)。如果你发现你的问题已经被报告了,请不要添加一个"我也是"那样的报告。如果原始报告还没有关闭,我们建议你经常周期性地来看看它。你也可以考虑与最初的提交者接触,因为有可能会在邮件交流中发现没有记录在数据库中的问题。
5 在某个用户论坛中提问
Apache拥有一个活跃的、愿意共享知识的用户社区。参与这个社区通常是获得解答的最快最好的办法。
Apache用户邮件列表:
6 提交问题报告到bug数据库
如果做了以上几个合适的步骤而没有得到解答,那么请务必让httpd的开发者了解这个问题,到这里(
)提交bug报告。
7 获取商业支持

㈣ 编译安装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中的Configure

./Configure文件是一个经常被遗忘的Apache工具。本文介绍如何用./Configure进行编译配置,避免每次编译Apache时进行重复的操作。文章比较了常规方法与使用./Configure这两者各自的优缺点以及如何手工编辑配制文件进行编译配置。 一、优缺点比较 我们知道,配制Apache编译选项使用的是configure。但除此之外,我们还可以使用Configure。注意两者的差别:常用的那个配制工具是小写c开头的“configure”,这里要讨论的“Configure”以大写的C开头。 解开Apache源代码之后,configure脚本位于顶级目录下面。一般我们按照如下步骤使用它: tar -zvxf apache_1.3.14.tar.gz cd apache_1.3.14 ./configure --prefix=/usr/local/apache make make install Configure是位于src子目录下的脚本。它的参数不是通过命令行指定,而是在一个名为Configuration的配置文件中指定。Apache提供一个默认的配置模板文件Configuration.tmpl,其中包含了通用的默认配置值。 用Configure进行默认安装的过程如下: tar -zvxf apache_1.3.14.tar.gz cd apache_1.3.14/src cp -f Configuration.tmpl Configuration vi Configuration ... 如必要,修改默认配置值 ./Configure make make install 缺点 用Configure进行配制有几个明显的缺点,至少对初学者来说是这样的。 首先,这种配制方法并不广为人知。只要是对开放源代码软件有所了解的人,解开源代码并进入它的目录之后,或许会对它的configure脚本感到熟悉,但往往不会进入src子目录去寻找其他什么东西。 即使知道可以用Configure进行编译配制,Configuration文件本身也可能成为小小的障碍。这是因为,虽然Configuration文件内部包含的说明相当完善,每一行都有丰富的注解说明其作用,但这个文件实在过于庞大,包含了许多大多数人永远不想要加以定制的选项。 最后,虽然有关这两种配制方法差别的资料略显缺乏,但总地看来初学者最好使用configure,而Configure只适合于经验丰富的用户使用。虽然这并不能算是一个真正的缺点,但它无疑使许多用户驻足而不敢尝试。 优点 使用Configure进行编译配制最大的优点在于,它方便了我们将特定的配置信息保存下来以后再用,无需记住冗长的configure命令行选项。 例如,本人上次编译Apache时使用的configure命令如下: ./configure --prefix=/usr/local/apache --enable-mole=most --enable-shared=max --enable-mole=auth_dbm --enable-mole=auth_mysql 这还应该算是一次比较简单的编译。问题在于,即使是输入上面这行命令,我也要查看各种参数的语法并努力记住各个模块的名字。对于大多数人来说这并不是一个很重要的问题,但由于我经常要重新构造Apache,这个问题就显得比较突出了。 configure也有它的好处,它实际上会在src目录下生成一个配制文件,我们可以保存这个文件供以后参考。这个文件就是src/Configuration.apaci。 如果我们为测试目的构造Apache,完成后又要在正式运行的系统上以完全相同的方式构造Apache,configure的这个功能将是非常有用的。此时,我们只需要复制一份Configuration.apaci文件,将它拷贝到正式运行的服务器上,然后用这个文件编译Apache服务器即可。 应当说明的是,虽然默认情况下配制选项由Configuration文件提供,但我们可以用-file参数指定另外的文件: ./Configure -file Configuration.saved_prefs 二、手工编辑配制文件 以前,指定编译选项的唯一方法是手工编辑Configuration文件。当然,那时候我们还要步行上学,跋山涉水。这一切现在都已经过去。 不管怎样,如果你准备直接使用Configuration文件,你就得仔细地了解一下它到底由什么内容构成。Configuration文件中的大多数选项都是无需定制的,不过了解一下它们的用处是有好处的。 Configuration文件的前面是关于本文件的一个简短说明。下面摘录了这部分内容并给出其译文: # There are 5 types of lines here: 这里共有5种类型的代码行: # &single;#&single; comments, distinguished by having a &single;#&single; as the first non-blank character “#”注释,以第一个非空字符为“#”区别 # # Makefile options, such as CC=gcc, etc... Make文件选项,例如 CC=gcc,等等... # # Rules, distinguished by having "Rule" at the front. These are used to # control Configure&single;s behavior as far as how to create Makefile. 规则,以前面的“Rule”区别,用于控制Configure的行为以至 如何创建Make文件 # # Mole selection lines, distinguished by having &single;AddMole&single; at the front. # These list the configured moles, in priority order (highest priority # last). They&single;re down at the bottom. 模块选择行,以前面的“AddMole”区别。这些行以优先级为序列出 了已经配制的模块(高优先级的在后面)。模块选择在文件最后进行。 # # Optional mole selection lines, distinguished by having `%Mole&single; # at the front. These specify a mole that is to be compiled in (but # not enabled). The AddMole directive can be used to enable such a # mole. By default no such moles are defined. 可选模块选择行,以前面的“%Mole”区别。这些行指定了必须 编译的模块(但不启用)。AddMole指令可以启用这种模块。默 认不定义这种模块。 大多数用户只需修改模块选择行,其他内容只适合于深入了解其含义的用户进行修改。在文件的最后我们可以发现许多如下形式的行: AddMole moles/standard/mod_cgi.o 它表示本次编译Apache应启用指定的模块(这里是mod_cgi模块)。我们可以用注释掉相应行的方法来删除特定的模块;反之,如果取消已注释行的注释将启用该模块。 我们可以通过SharedMole指令(而不是AddMole)将模块编译成DSO(共享对象,shared object): SharedMole moles/standard/mod_vhost_alias.so 注意在编译DSO时必须启用mod_so模块。 用configure生成Configuration.apaci文件,然后检查其改动之处是一种很好的学习方法。 一旦在Configuration文件中完成了所有必须的改动,只需运行./Configure即可开始编译过程。 三、使用哪种方法好? 显然,使用configure和使用Configure都有着各自强硬的支持者,但可以相信每一种观点都有其派别和历史的原因。 我们建议两种方法都用。用configure生成Configuration文件,阅读这些文件了解其作用,然后保存其中的部分文件供以后在Configure命令中使用。 如果你打算只进行默认安装,而且从来没有想到过要改变任何一个选项,那么使用哪一种方法进行配制就无关紧要了

㈥ 怎样区别APACHE动态和静态编译

关于apache的动态与静态编译的理解,引用某人的比喻如下:
好比有两个人a和m,a代表apache,m代表mole,要想让a使用m的东西,一个方法是把m的东西都放到a那里去,a使用的时候就是现成的了,就是所谓的静态编译
还有一个方法,就是告诉a,m的住址,当a要使用m的东西的时候,a去找m,然后使用,不过,这种方法要注意的一个问题就是:m必须要有实际的住址,否则a会找不到m而产生错误的,这种方法也就是apache 的动态(DSO)编译了。
下面说说在apache1.3和apache2.0动态与静态编译编译的区别
首先是apache1.3.29+php4.3.4+mysql4.0.13的静态编译
apache第一次编译,并不要安装,因为php的编译需要apache至少已经编译过一次
tar zvxf apache_1.3.27.tar.gz
cd apache_1.3.27
./configure --prefix=/usr/local/apache
编译php
tar zvxf php4.3.4.tar.gz
cd php4.3.4
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apache=../apache_1.3.27
make
make install
第二次编译安装apache:
cd ../apache_1.3.29
./configure --prefi=/usr/local/apache --activate-mole=src/moles/php4/libphp4.a
make
make install
cp ../php4.3.4/php.ini.dist /usr/local/php/lib/php.ini

修改/usr/local/apache/conf/httpd.conf
查找<IfMole mod_mime.c>
在此范围添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
注意:apache和php的源码包在同一个目录,--with-apache=../apache_1.3.27是指向源码解压的目录
ok!静态编译完成。
再看DSO动态编译方法:
首先编译安装apache
tar zvxf apache_1.3.29
cd apache_1.3.29
./configure --prefix=/usr/local/apache --enable-mole=so --enable-mole=rewrite --enable-shared=max
make
make install
so模块用来提供DSO支持的apachehe核心模块,rewrite是地址重写的模块,如果不需要可以不编译enable-shared=max是指除了so以外的所有标准模块都编译成DSO模块。

然后编译php
tar zvxf php4.3.4.tar.gz
cd php4.3.2
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs=/usr/local/apache/bin/apxs
make
make install
然后修改httpd.conf,方法同静态编译的方法
OK,DSO动态编译就完成了!

接下来我们讲apache2.0.46+php4.3.2的动态编译方法
一样先编译安装apache
tar zvxf httpd-2.0.46.tar.gz
cd httpd-2.0.46
./configure --prefix=/usr/local/apache2 --enable-so --enable-mods-shared=most
make
make install

大家注意了--enable-so相当与1.3.27的--enable-mole=so,而--enable-mods-shared=most又等同与以前的--enable-shared=max
然后还是编译PHP
tar zvxf php4.3.2.tar.gz
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache2/bin/apxs
make
make install
注意这里是apxs2!!
修改httpd.conf与1.3.27也有所不同,大家寻找Add Type application/x-tar .tgz 在下面添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
另外要显示中文的话,请修改:
AddDefaultCharset gb2312

㈦ Apache可移植运行库apr在windows下怎么编译

如果是开发者则使用此选项,--with-included-apr利于连接apache的代码或者是调试apache,其消除了由于版本或者编译中跟APR或者APR-util代码产生的不匹配; 如果从子版本编译apache,要先运行buildconf(需要Python,GNU autoconf和libtool)

热点内容
华为手机如何添加文件夹 发布:2025-01-02 01:58:26 浏览:620
java通讯录 发布:2025-01-02 01:54:45 浏览:62
服务器上的ip怎么查 发布:2025-01-02 01:45:08 浏览:677
ts430s512gb缓存 发布:2025-01-02 01:43:38 浏览:481
编译原理杂志 发布:2025-01-02 01:37:47 浏览:336
玩cf配置低怎么办 发布:2025-01-02 01:36:23 浏览:888
lol的文件夹 发布:2025-01-02 01:33:12 浏览:421
解压引导 发布:2025-01-02 01:23:25 浏览:654
微信小程序游戏如何设置密码 发布:2025-01-02 01:01:27 浏览:76
php跨域请求 发布:2025-01-02 01:01:24 浏览:785