跳至主要内容

mod

apache安装后,如果想再添加模块,往往不想重新安装一次,再者,我在安装中发现,并不是安装文件中所有的modules都会被默认安装,即使在安装中使用了 ./configure --prefix=/usr/local/apache --enable-so --enable-modules=all --enable-mods-shared=all也是如此。我使用上述方法安装的apache2.2.6就没有安装proxy相关模块。这时,需要手工生成so文件,但会自动的被复制到你的apache安装目录的modules中,然后修改apache的配置文件,加载相关模块,验证apache配置并重启服务即可。以上描述的具体操作步骤如下:
操作系统:linux redhat 4.5 ES
apache版本:2.2.6 可自行下载tar包

1. 拷贝安装包到/usr/local,并在目标目录下进行解压。[root@localhost local]# cd /usr/local[root@localhost local]# tar -zxvf httpd-2.2.4.tar.gz2. 配置安装参数,安装的目标目录为/usr/local/apache,建议设置enable-mods-shared=all,不用的module注释掉就行了![root@localhost local]# cd httpd-2.2.4[root@localhost httpd-2.2.4]# ./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=all3. 编译并安装。[root@localhost httpd-2.2.4]# make[root@localhost httpd-2.2.4]# make install4. 启动Apache,并测试。[root@localhost httpd-2.2.4]# cd /usr/local/apache/bin[root@localhost bin]# ./apachectl start
打开浏览器,并在地址栏中输入主机的IP地址如http://192.168.1.254/如果出现以下画面则说明安装成功。It works! 注意:安装完成后检查系统服务中的HTTPD服务是否已经启动,如果启动需要先停止。
5. 编译mod_proxy.so.
[root@localhost httpd-2.2.4]# cd modules
[root@localhost modules]# /usr/local/apache/bin/apxs -c -i mod_proxy.c proxy_util.c
这时生成的mod_proxy.so会被自动复制到/usr/local/apache/modules
6. 修改配置文件
[root@localhost modules]# cd /usr/local/apache/conf
[root@localhost conf]# vi httpd.conf
添加一行 LoadModule proxy_module modules/mod_proxy.so
7. 测试配置是否正确
[root@localhost conf]# cd ..[root@localhost apache]# cd bin[root@localhost bin]# ./apachectl configtest
出现如下信息证明配置正确
[Fri Nov 23 15:45:55 2007] [warn] module rewrite_module is already loaded, skippingSyntax OK8. 重新启动apache
[root@localhost bin]# ./apachectl stop
[root@localhost bin]# ./apachectl start
完成!!
-------------------------------
Personal Configuration:
安装apache============>> apr
#tar -zxvf apr-1.3.2.tar.gz#cd apr-1.3.2#./configure --prefix=/usr/local/apr-httpd/#make#make install
>>apr-util
#tar -zxvf apr-util-1.3.2.tar.gz#cd apr-util-1.3.2#./configure --prefix=/usr/local/apr-util-httpd/ --with-apr=/usr/local/apr-httpd/#make#make install
>> apache
#tar -zxvf httpd-2.2.9.tar.gz#cd httpd-2.2.9#./configure --prefix=/usr/local/apache22 \--with-apr=/usr/local/apr-httpd \--with-apr-util=/usr/local/apr-util-httpd \--with-mpm=prefork \--enable-so \--enable-rewrite \--enable-info \--enable-mime-magic \--enable-vhost-alias \--enable-deflate \--enabel-expires \#make#make install
安装php5=========>>mhash
#tar -zxvf mhash-0.9.6.tar.gz#cd mhash-0.9.6#./configure --prefix=/usr/local/mhash#make#make install#cd include/mutils/#rm -R CVS#cp * /usr/local/mhash/include/mutils/
>> xml2#pkg_add -r libxml2
>> PNG#pkg_add -r png
>>iconv#pkg_add -r libiconv
>> php5#tar -zxvf php-5.2.6.tar.gz#cd php-5.2.6#./configure --prefix=/usr/local/php \--with-apxs2=/usr/local/apache22/apxs \--with-mysql=/usr/local/mysql \--with-curl \--disable-debug\--enable-inline-optimization -q \--enable-zlib \--enable-gd \--enable-iconv \--enable-mbstring \#make#make install
配置=====2.apache[/apache/conf/httpd.conf ]修改
A. ServerAdmin your@doman.comB. ServerName 127.0.0.1:80
C. Options FollowSymLinks AllowOverride None Order deny,allow Allow from all # <-- 原来为Deny
D. DirectoryIndex index.html index.php # <-- 增加index.php
E. AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddType application/x-httpd-php .php # <-- 增加
F. 启用MPM、Virtual hosts# Server-pool management (MPM specific)Include conf/extra/httpd-mpm.conf
# Virtual hostsInclude conf/extra/httpd-vhosts.conf
E.修改MPM、Virtual Hosts StartServers 5 MinSpareServers 5 MaxSpareServers 10 ServerLimit 4000 MaxClients 2000 MaxRequestsPerChild 0
ServerAdmin webmaster@test.com DocumentRoot /Data/webapps ServerName www.test.com ErrorLog logs/test.com-error_log CustomLog logs/test.com-access_log common
测试: =========在/apache2/htdocs 创建文件phpinfo.php 内容为:

评论

此博客中的热门博文

Python学习笔记20100117

映射list   Dictionary 是用{}. list 是一那个[]. turple是用() 当你定义过dictionary后,你可以使用d.keys(), d.values(),d.items()将定义后的时候分别显示出来 当然可以将list里的值加减乘除,也可以如一般的定义直接重新复制这个list. 链接与分割字符串的 li=";", join(li) 则显示的就是 分隔符为;的数 如果使用li=li.split(";")则将刚刚;的分隔符删除,而split里也可定义域,如li.split(";",1)   自省 <---这是啥 之前在使用的时候发觉有些书本上的模块不能调用,很多是py脚本定义过的函数。 下载该脚本s,然后上传至指定位置。 >>>import sys >>>sys.path >>>sys.path.append("绝对位置")然后就能调用这些脚本和参数了。 删除 >>>sys.path.pop() 定义一个参数是 def info(test, test1=10.test2=12): info是函数名,test是必备参数,因为没有定义值,test1和test2是可选参数,定义了初始值   以上是外部函数的调用,下面转到内部函数 内部函数有type,str,dir及其他   ---type 返回任意字符的类型,模块也可以。types模块 >>> type(1) <type 'int'> >>> li=[] >>> type(li) <type 'list'> >>> import odbchelper >>> type(odbchelper) <type 'module'> >>> type(sys) <type 'module'> >>> import types ...

Python学习笔记20100128

methodList = [method for method in dir(object) if callable(getattr(object, method))] ###插一句, ifconfig pcn0 unplumb 去禁solaris的网卡plumb起网卡   and, or  已经and-or一起用。 and 两者为真,print第二个数,一个为假一个为真返回假,三者为真返回最后一个真。 or 两个为真,返回第一个, 一个为假一个为真返回真,三者为假返回最后一个假   lambda可快速定义最小值函数   g = lambda x:x*2 g(3) 6 (lambda x:x*2)(3)   doc string print getattr(object,mothod).__doc__   ljust ljust 用空格填充字符串以符合指定的长度。info 函数使用它生成了两列输出并将所有在第二列的 doc string 纵向对齐。 如果小于的话不会从中截断   -----面向对象 首先导入,你可以选择import module or from module import module 如果你要经常访问模块的属性和方法,且不想一遍又一遍地敲入模块名,使用 from module import。 如果你想要有选择地导入某些属性和方法,而不想要其它的,使用 from module import。 如果模块包含的属性和方法与你的某个模块同名,你必须使用 import module 来避免名字冲突   -----类的定义 class Lofs    pass   这个类的名字是 Loaf,它没有从其它类继承。 类名通常是第一个字母大写,如:EachWordLikeThis,但这只是一个习惯,不是一个必要条件。   这个类没有定义任何方法或属性,但是从语法上,需要在定义中有些东西,所以你使用 pass。这是一个 Python 保留字,仅仅表示 “向前走,不要往这看”。它是一条什么都不做的语句,当你删空函数或类时,它是一个很好的占位符。   你可能猜...

Back to Blog again

     My last blog was almost 6 years again.  lots of things happening those years. like marriage, and move to another country, simply relocation, something is very big in my life.      Back to now,  I guess it is a very good time to start with the blog again. no matter daily life or the tech parts.      These blog may or will contains various languages, Chinese, English or Few Japanese. The first thing, I change the profile to Kamata life, Kamata is Japanese words. "鎌田"  as Kanji. why this change happened, due to we will move from Tamagawa "玉川" to Kamata very soon. I hope I can start to write this not daily, but I hope I can do this continuously.