当前位置: 首页 > 工具软件 > webalizer > 使用案例 >

php5+ssl,AS3上安装Apache2+MySQL+PHP5+Resin+SSL+GD以及webalizer(补

宰父涵忍
2023-12-01

AS3上安装Apache2+MySQL+PHP5+Resin+SSL+GD以及webalizer(补充)

我们假设安装系统时没有选择任何系统自带的服务器程序,例如Apache,MySQL。如果已经安装,请首先卸

载。我们还假设已经安装了开发工具。

第一部分:web服务器的配置

(一) 下载文件:(假设全部放在~/server下面)

httpd-2.0.50.tar.gz

mysql-standard-4.0.20-pc-linux-i686.tar.gz

http://dev.mysql.com/get/Downloa ... ysql.ihostunit.com/

php-5.0.0.tar.gz

resin-3.0.8.tar.gz

openssl-0.9.7d.tar.gz

j2sdk-1_4_2_05-linux-i586-rpm.bin

... -linux-i586-rpm.bin

gd-2.0.27.tar.gz

(二) 安装

1、MySQL

# groupadd mysql

# useradd -g mysql mysql

# cd /usr/local

# gunzip < ~/server/mysql-standard-4.0.20-pc-linux-i686.tar.gz | tar xvf -

# ln -s mysql-standard-4.0.20-pc-linux-i686 mysql

# cd mysql

# scripts/mysql_install_db --user=mysql

# chown -R root .

# chown -R mysql data

# chgrp -R mysql .

# bin/mysqld_safe --user=mysql &

# ./mysqladmin -u root password ‘password’ #使用mysqladmin修

改root的口令为 'password’

系统启动时自动运行:

# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

# chkconfig --add mysqld

用ntsysv设置使mysql每次启动都能自动运行。

至此mysql安装完毕,你可以这样起动你的mysql服务

# /etc/rc.d/init.d/mysqld start

2、安装openssl

cd ~/server

# tar -zxvf openssl-0.9.7d.tar.gz

# cd openssl-0.9.7d

# ./configure --prefix=/usr/local/openssl #设置安装路径

# make

# make test

# make install

3、配置Apache

# cd /usr/local/

# tar -zxvf ~sea/server/httpd-2.0.50.tar.gz

# ./configure --enable-so --enable-ssl --with-ssl=/usr/local/openssl --enable-rewrite

# make

# make install

到这我们就要说说APR了,这个东西是Apache可移植运行库,源自为了服务器代码的多

平台性, 尝试将不同的操作系统特定字节与操作系统无关代码隔离。结果就提供了一

个基础API的接口。具体作用大家可参考

文章。

apache-2.2.0提供了apr以及apr-util的源代码

要使用发行源代码中自带的apr/apr-util源代码进行安装,你必须手动完成:

我们先编译和安装 apr 1.2

# tar xzvf httpd -2.2.0.tar.gz

# cd httpd-2.2.0

# cd srclib/apr

# ./configure --prefix=/usr/local/apr

# make

# make install

现在编译和安装 apr-util 1.2

# cd ../apr-util

# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/

# make

# make install

# ./configure --prefix=/usr/local/apache2 \

--enable-mods-shared=all \

--enable-cgi \

--with-apr=/usr/local/apr \

--with-apr-util=/usr/local/apr-util/bin \

--enable-ssl \

--with-ssl=/usr/local/openssl/bin \

--enable-rewrite

# make

#make install

生成 Apache 启动文件

# cd /etc/rc.d/init.d

# sed 's/sbin/atd/local/servers/apache/bin/httpd/g' atd > httpd

# sed 's/atd/httpd/g' httpd > /tmp/txt

# sed 's/at daemon/httpd daemon/g' /tmp/txt > httpd

# rm /tmp/txt

# chmod 755 httpd

# chkconfig --level 345 httpd on

# chkconfig --level 0126 httpd off

启动并测试Apache服务器

# /etc/rc.d/init.d/httpd start

如果出现:

Starting httpd daemon: [ OK ]

则证明 httpd 已经正确的安装并已经在后台运行,如果出现其它的提示,请检查您的安装步骤是否正确

输入或,可以看到apache的欢迎页面。

./configure --prefix=/usr/local/apache2 \

--enable-mods=all \

--enable-rewrite \

--enable-speling \

--enable-ssl \

--with-ssl=/usr/local/openssl \

--enable-forward \

--enable-vhost-alias \

./configure --prefix=/usr/local/apache2 \

--enable-mods=all \

--enable-rewrite \

--enable-speling --enable-ssl \

--with-ssl=/usr/local/openssl \

--enable-forward \

--enable-vhost-alias \

make

make install

然后apachectl -l

显示:

Compiled in modules:

core.c

mod_access.c

mod_auth.c

mod_include.c

mod_log_config.c

mod_env.c

mod_setenvif.c

mod_ssl.c

prefork.c

http_core.c

mod_mime.c

mod_limitipconn.c

mod_status.c

mod_autoindex.c

mod_asis.c

mod_cgi.c

mod_negotiation.c

mod_dir.c

mod_imap.c

mod_actions.c

mod_speling.c

mod_userdir.c

mod_alias.c

mod_rewrite.c

mod_so.c

看到了rewrite,limitipconn,ssl都加载了。。

终于暂时的松口气了。。。

然后再重新编译php

而问题就出在--enable-so

现在知道了--enable-so的意思是说

让apache 核心装载DSO,但是不实际编译任何动态模块

--enable-ModuleName的意思是说 编译并包含模块ModuleName

而 --enable-ModuleName=shared 的意思是说将这个模块编译成动态的.

明白了这几个选项的意思,感觉就水落石出了

根据上面的总结

我应该去掉--enable-so这行

如何希望动态编译模块

比如:--enable-rewrite应该替换为: --enable-rewrite=shared

最后,我将要编译的应该为:

./configure \

--prefix=/usr/local/apache2 \

--enable-mods-shared=all \

--enable-rewrite \

--enable-speling \

--enable-forward \

--enable-cgi \

--with-apr=/usr/local/apr \

--with-apr-util=/usr/local/apr-util/bin \

--enable-ssl \

--with-ssl=/usr/local/openssl

上面中 --enable-mods-shared=most的意思是说 动态的编译进来大多数的模块

而 --enable-mods-shared=all是指动态的编译所有的模块

如果把-shared去掉,就是静态的编译了...

综上所述

总结出了我个人对apache的动态与静态编译的理解

好比有两个人a和m

a代表apache,m代表module

要想让a使用m的东西

一个方法是把m的东西都放到a那里去,a使用的时候就是现成的了

就是所谓的静态编译

还有一个方法,

就是告诉a, m的住址,当a要使用m的东西的时候,a去找m,然后使用

不过,这种方法要注意的一个问题就是:m必须要有实际的住址,

否则a会找不到m而产生错误的,我此文开始提到的 apachectl startssl产生

的错误就是这个原因,应该再编译好ssl才可以的.

这种方法也就是apache 的动态(DSO)编译了

希望我上面的叙述能够给初学的朋友一些帮助

同时也希望朋友们和我一起交流

共同学习,共同进步

httpd: apr_sockaddr_info_get() failed

去apache网站查找才知道,这是apache2.0的一个小bug

这是他们网站的原文

Change Listen directive to bind to all addresses returned by

apr_sockaddr_info_get when a hostname is not specified

解决办法:vi /etc/sysconfig/network

修改字段HOSTNAME=localhost.localdomain

然后重启服务器,问题解决。

3、配置J2DK

# cd ~/server

# chmod 755 j2sdk-1_4_2_05-linux-i586-rpm.bin

# rpm -ivh j2sdk-1_4_2_05-linux-i586.rpm

vi ~/.bash_profile

把其改成如下:

JAVA_HOME=/usr/java/j2sdk1.4.2_05

CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/rt.jar

PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

BASH_ENV=$HOME/.bashrc

USERNAME="root"

export USERNAME BASH_ENV PATH JAVA_NAME CLASSPATH

注销,然后重新登录,使环境变量起作用

# exit

# su -

# java

# javac

如果java 和javac运行了,说明java环境变量配置成功。

4、安装Resin

# cd /usr/local

# tar -zxvf ~/server/resin-3.0.8.tar.gz

# cd resin-3.0.8/

#

./configure \

--prefix=/usr/local/resin \

--with-java-home=$JAVA_HOME \

--with-apxs=/usr/local/apache2/bin/apxs \

--with-apache=/usr/local/apache2

# make

# make install

resin直接编译

./configure --prefix=/usr/local/resin --with-apache=/usr/local/apache2

make

make install

然后配置resin的环境

RESIN_HOME=/usr/local/resin

RESIN_BIN=$RESIN_HOME/bin

export RESIN_HOME

export RESIN_BIN

PATH=$PATH:$RESIN_BIN

然后修改/usr/local/resin/conf/resin.conf中的 为

apache的目录

启动测试

没有问题

这个时候忽然想到了曾经在网上看到的resin启动的问题

需要有个sleep15 seconds的延时什么的,否则resin很有可能不会正常启动

于是

使用vi在/usr/local/servers/apache/htdocs/创建一个名为test.jsp的文件,其内容包括:

out.println("

Hello, World!");

%>

存盘之后,使用浏览器查看 如果正确的话,可以看到"Hello, World!"

字样。否则,请检查:Resin是否运行、Resin的参数修改是否正确、JAVA环境安装是否正确、Apche是否

运行正常。

5、安装GD

# cd /usr/local

# tar -zxvf ~/server/gd-2.0.27.tar.gz

# cd gd-2.0.27/

# ./configure --prefix=/usr/local/gd2

# make

# make install

6、安装PHP

# cd /usr/local

# tar -zxvf ~/server/php-5.0.0.tar.gz

# mv php-5.0.0 php5

# cd php5/

#

./configure --prefix=/usr/local/php/ \

--with-mysql=/usr/local/mysql/ \

--with-apxs2=/usr/local/apache2/bin/apxs \

--with-curl=/usr/local/curl/ \

--with-mcrypt=/usr/local/libmcrypt/ \

--with-gd=/usr/local/gd2 \

--enable-track-vars \

--enable-ftp \

--with-zlib-dir=/usr/local/zlib/

make

make install

cp ./php.ini-dist /usr/loocal/php/php.ini

# make

# make install

( 如果configure最后出现以下错误信息:configure: error: libxml2 version 2.6.11 or greater

required. 则补充操作如下:

wget

tar -zxvf libxml2-2.6.11.tar.gz

cd libxml2-2.6.11

./configure --enable-ipv6=no

make

make install

# cp php.ini-dist /usr/local/php/lib/php.ini

# vi /usr/local/php/lib/php.ini

;default_charset = "iso-8859-1"

在这行下面加一行

default_charset = "gbk"

# vi /usr/local/apache/conf/httpd.conf

找到#AddType application/x-tar .tgz 这行,在下面加两行

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

找到下面一行在后面加上index.php,这表示网站的默认页也能够为index.php

DirectoryIndex index.html index.html.var index.php

注意:改变了http.conf后,要重启apache服务

使用vi打开httpd.conf,在头部添加:

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

AddType application/x-httpd-php .php3

重新启动Apache以使修改生效

# /etc/rc.d/init.d/httpd restart

测试PHP

使用vi在/www/troyoo.com建立一个文件(info.php),内容包括:

phpinfo();

?>

使用浏览器查看数。如果出现错误,则请检查:Apache是否运行、参数修改是否

正确。

为php编译mcrypt函数

网站的需要,php需要用到mcrypt函数,初步看了一下php的编译函数,很简单,就是增加--with-mcrypt

编译参数就行,但你真的预编译的时候,他就会提示错误configure: error: mcrypt.h not found.

Please reinstall libmcrypt,大致意思是你没有编译libmcrypt,我们只好先编译libmcrypt

到这里下载libmcrypt-2.5.7.tar.gz,编译很简单,依旧是

configure,make,make check,make install。

装完马上重新去编译php,安装非常顺利。

当然我是走了不少弯路,还以为要装mcrypt这个程序,装这个程序更加麻烦,除了要安装libmcrypt,还

要安装mhash,装完这两个,记得修改ld.so.conf,这样mcrypt才能正常安装。由于可能php实际不需要这

个,这里就不讲实际问题了,如果大家碰到问题,可来交流。

附:mcrypt-2.6.4的安装

1.先安装libmcrypt,前面已经阐述

2.安装mhash,去下载mhash,安装简单,不过我安装最新的0.9.4版本,

在make check时候失败,所以我最后安装了个0.9.2版本。

3.安装mcrypt-2.6.4.tar.gz

如果你顺利安装了前2者,你才可以安装mcrypt-2.6.4.tar.gz,但在预编译的时候,你可能会碰到以下错

误:configure: error: "You need at least libmhash 0.8.15 to compile this program.

" 按理你应该是安装了mhash,之所以他提这么的错误,我们可以初步分析为预编译

的时候没找到lib文件所在的地址,所以我们可以这么做

cd mcrypt-2.6.4

LD_LIBRARY_PATH=/usr/local/lib ./configure

make

make install

第二部分:web服务器日志分析软件webalizer

webalizer-2.01-10-src.tgz

# tar zxf webalizer-2.01-10-src.tgz

#

./configure --with-language=simplified_chinese \

--with-gdlib=/usr/local/gd2 \

--with-gd=/usr/local/gd2

# perl /path/of/webalizer_patch.pl ./ #这里为了解决乱码问题,参看

()

# make

# make install

# mkdir /www/troyoo.com/usage

#cp webalizer /usr/bin/

#cd /etc

#ls webalizer*

webalizer.conf.sample

#cp webalizer.conf.sample webalizer.conf.troyoo

#vi webalizer.conf.troyoo

Edit the webalizer.conf.troyoo file(将里面的值改成下列):

LogFile /usr/local/apache2/log/access_log

OutputDir /www/troyoo.com/usage

HostName

Incremental yes

PageType htm*

PageType cgi

PageType php

HideURL *.gif

HideURL *.GIF

HideURL *.jpg

HideURL *.JPG

HideURL *.ra

IgnoreURL /taskbar*

运行:

#/usr/bin/webalizer -c /etc/webalizer.conf.troyoo

正常信息:

Webalizer V2.01-10 (Linux 2.4.21-4.EL) Simplified Chinese

使用日志文件 /usr/local/apache2/logs/access_log (clf)

输出结果到 /www/troyoo.com/usage

产生报表的主机名是 'SEA'

正在读取历史信息文件... webalizer.hist

正在生成报表 ---- 为 七月 2004

正在生成综合报表

正在保存历史信息文件...

3273647 条记录 共用时 33.57 秒, 97517/sec

自动运行:

设定crontab 让webalizer每小时运行一次:

#crontab -e

0 * * * * /usr/bin/webalizer -c /etc/webalizer.conf.troyoo

至此, Redhat LinuxAS3.0上安装Apache2.0.50+MySQL+PHP5+Resin+SSL以及流量统计工具

(webalizer)已经安装完毕,网站的根目录是/www/troyoo.com,您可以在这个系统上提供基于PHP和JAVA

语言的站点服务。

 类似资料: