如果想看apache+php+mysql前面部分安装过程,请看这里:
apache+mysql+php+GD+zend+eaccelerator+phpmyadmin
四,JDK的安装
1,JDK的安装
2,Tomcat的安装
3.JDBC(JSP与,MSYQL,MSSQL连接)
4,JK2(是APACHE组织指定的连接apceh和tomcat的工具)
5. 启动TOMCAT(jsvc.tar.gz,tomcat启动工具)
具体操作如下:
1. JDK的安装
[root@linuxhero root]# ls
j2sdk-1_4_2_15-linux-i586.bin j2sdk-1_4_2_08-linux-i586-rpm.bin
有两个包.
j2sdk-1_4_2_15-linux-i586-rpm.bin的安装方法
#chmod 755 j2sdk-1_4_2_15-linux-i586-rpm.bin
#./j2sdk-1_4_2_15-linux-i586-rpm.bin (运行JDK自解包)
运行过程中会出现一个用户协议,选择yes即可,会释放出一个rpm包j2sdk-1_4_2_15-linux-i586.rpm.
#rpm –Uvh j2sdk-1_4_2_15-linux-i586.rpm
完成后会在/usr/目录下生成一个/usr/java/j2sdk1.4.2_15目录文件
另一个软件包运行后会直接释放成j2sdk1.4.2_15目录移动合适的位置,如/usr/local/
#chmod 755 j2sdk-1_4_2_15-linux-i586.bin
#./j2sdk-1_4_2_15-linux-i586.bin
# mv j2sdk1.4.2_15 /usr/local/
到此JDK已经安装完成
到/usr/bin目录下,把原用的java,javac文件删除:
#rm -rf java
#rm –rf javac
在/usr/bin 下建立 软连接 java
# ln -s /usr/local/j2sdk1.4.2_15/bin/java /usr/bin/java
# ln -s /usr/local/j2sdk1.4.2_15/bin/javac /usr/bin/javac
# java –version
# javac -version
java version "1.4.2_15"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_08-b03)
Java HotSpot(TM) Client VM (build 1.4.2_08-b03, mixed mode)
为了方便下在的工作建立两个软链接:
ln -s /usr/local/j2sdk1.4.2_15 /usr/local/jdk
ln -s /usr/local/j2sdk1.4.2_15/jre /usr/local/jre
2.Tomcat的安装
#tar -zxvf jakarta-tomcat-5.0.28.tar.gz
# mv jakarta-tomcat-5.0.28 /usr/local/tomcat
设置环境变量:
#Set Environment by NetSeek
JAVA_HOME=/usr/local/jdk
export JAVA_HOME
JRE_HOME=/usr/local/jre
export JRE_HOME
CLASSPATH=/usr=/usr/local/tomcat/common/lib/:/usr/local/jdk/lib:/usr/local/jre/lib
export CLASSPATH
PATH=$PATH:/usr/local/tomcat/bin/:/usr/local/apache/bin:/usr/local/jdk/bin:/usr/local/jre/bin
export PATH
export TOMCAT_HOME=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat/
启动tomcat以检查是否存在错误:
#cd /usr/local/tomcat/bin
#./startup.sh
http://IP
地址:8080 可以看到猫头:)成功了。
3.JDBC的安装
#tar -zxvf mysql-connector-java-3.2.0-alpha.tar.gz
#cd mysql-connector-java-3.2.0-alpha
#cp mysql-connector-java-3.2.0-alpha-bin.jar /usr/local/tomcat/common/lib
#tar xfv mssqlserver.tar
#tar xfv msjdbc.tar
#cd lib
# cp *.jar /usr/local/tomcat/common/lib
4.编译安装JK2(整合Tomcat与Apache)
# tar zxvf jakarta-tomcat-connectors-jk2-src-current.tar.gz
# cd jjakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/
#./configure --with-apxs2=/usr/local/apache/bin/apxs \
--with-java-home=/usr/local/jdk \
--with-tomcat41=/usr/local/tomcat \
--with-apr-lib=/usr/local/apache/lib
#echo $?
报错:
no apxs given
need to check for Perl first, apxs depends on it...
checking for perl... /usr/bin/perl
configure: error: can't locate libapr
解决办法:
安装:apr-1.1.1.tar.gz
apr-util-1.1.1.tar.gz
libtool-1.5.22.tar
解压缩安装libapr
# chmod +x *
# tar xfz apr-1.1.1.tar.gz
# cd apr-1.1.1
# ./configure
# make
# make install
回到......./tomcat目录
#cd ..
解压缩安装libaprutil
# tar xfz apr-util-1.1.1.tar.gz
# cd apr-util-1.1.1
# ./configure --with-apr=../apr-1.1.1
# make
# make install
建立libapr和libaprutil 的软连接到/usr/local/httpd2/lib/目录下
# ln -s /usr/local/apr/lib/libapr-1.so.0.1.1 /usr/local/httpd2/lib/libapr-1.so
# ln -s /usr/local/apr/lib/libapr-1.so.0.1.1 /usr/local/httpd2/lib/libapr-1.so.0
# ln -s /usr/local/apr/lib/libaprutil-1.so.0.1.1 /usr/local/httpd2/lib/libaprutil-1.so
# ln -s /usr/local/apr/lib/libaprutil-1.so.0.1.1 /usr/local/httpd2/lib/libaprutil-1.so.0
再次编译jakarta-tomcat
如果make通不过,/path/to/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/build/jk2/apache2目录下并无mod_jk2.so产生,则需安装新版libtool.
# libtool --version
ltmain.sh (GNU libtool) 1.4.3 (1.922.2.111 2002/10/23 02:54:36)
[root@linux native2]#
这个版本的libtool编译最新的
jakarta-tomcat-connectors-jk2-2.0.4-src
是不会成功的。
返回到....../tomcat
安装libtool-1.5.22
# chmod +x *
# tar xfz libtool-1.5.22.tar.gz
# cd libtool-1.5.22
# ./configure
# make
# make install
删除原来的/usr/local/httpd2/build/libtool
# rm –rf /usr/local/httpd2/build/libtool
建立新的libtool 软连接
# ln -s /usr/local/bin/libtool /usr/local/httpd2/build/libtool
再次编译jakarta-tomcat
现在就OK了
./configure --with-apxs2=/usr/local/apache/bin/apxs --with-java-home=/opt/j2sdk1.4.2_10 --with-apr-lib=/usr/local/apache/lib
注:--with-tomcat41参数指定Tomcat主目录,编译器没有直接对最新的Tomcat提供特定的编译参数,所以使用tomcat41的参数代替,用—with-java-home参数指定Java的安装路径.
#make
将在/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/build/jk2/apache目录下,生成的mod_jk2.so复制到Apache的扩展模块目录/usr/local/httpd/modules下,
#cp mod_jk2.so /usr/local/httpd/modules
再将/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/conf目录下的workers2.properties复制到Apache的配置文件目录/usr/local/httpd/conf下:
#cp workers2.properties /usr/local/httpd/conf
再编辑httpd.conf
vi /usr/local/apache/conf/httpd.conf
LoadModule jk2_module modules/mod_jk2.so
之前我的问题是:在已有的WEB服务器上重新安装一套,所以tomcat 老启不来,得KILL掉进程再启动就OK了。
错误:
Syntax error on line 1038 of /etc/httpd/conf/httpd.conf:
Invalid virtual host name
则修改httpd.conf文件,找到#ServerName所在的行,并在其下面加入如下内容即可
ServerName localhost:8008 # 制定服务器的名称和端口,注意端口是8008,而不是8080
检查$CATALINA_HOME/conf/server.xml文件中相关的配置,默认情况下的
相关的信息是被注释掉了,搜索8008,找到那段,把前面的"后面的"-->"都删掉
5. 启动TOMCAT(jsvc.tar.gz,tomcat启动工具)
Apache和Tomcat安装后需要设置自动启动,如果让Tomcat用root身份启动,Tomcat将会拥用root权限,这将可能给系统带来安全隐患,黑客可能利用这个来攻击我们的系统,所以我们得添加一个独立运行此服务的用户:
#useradd -d /usr/local/tomcat -s /usr/sbin/nologin tomcat
#chown -R tomcat:tomcat /usr/local/tomcat
#cd /usr/local/tomcat/bin/
#tar zxvf jsvc.tar.gz
#cd jsvc-src
#sh support/buildconf.sh (只能在些目录里执行,在别处执行会出错)
会显示support/buildconf.sh: configure script generated successfully
#chmod 755 configure
#./configure
#make
#cp native/Tomcat5.sh /usr/sbin/tomcat
#cd /usr/sbin
#chmod 755 tomcat
#vi tomcat
可以看到:
JAVA_HOME=/usr/java/j2sdk1.4.2_03 指定java安装的目录
CATALINA_HOME=/home/tomcat5/jakarta-tomcat-5/build 指定了tomat的安装目录
DAEMON_HOME=/home/tomcat5/jakarta-commons/daemon 指定了tomcat命令所在的目录
TOMCAT_USER=tomcat5 指定tomcat运行后使用的账号
将上面的配置修改如下:
JAVA_HOME=/usr/local/jdk
CATALINA_HOME=/usr/local/tomcat/
DAEMON_HOME=/usr/local/tomcat/bin/
TOMCAT_USER=tomcat
找到$DAEMON_HOME/src/native/unix/jsvc \
将其更改成:$DAEMON_HOME/jsvc-src/jsvc \
修改完保存退出
vi /etc/rc.d/rc.local
在里面添加如下设置:
/usr/sbin/tomcat start
然后重启所有服务!
五,虚拟主机配置方案
要求:
1,DNS的简设置
2,虚拟域名:www.XXXXXX.com,虚拟用户XXXXXX_com
3,允许FTP维护,禁止远程登陆(具体的FTP维护参照二)
4,为虚拟主机添加用户和使用目录
1, DNS的简单设置,
...........中间略
二. 配置虚拟主机
1. 为虚拟主机添加用户和使用目录
#useradd xxxxxxx_com -s /sbin/nologin 添加虚拟用户,不允许登陆
#passwd xxxxxx_com (Do not Hack me 3ks) DnHm3ks 这是我设置的密码:)
#chmod 755 /home/xxxxxx_com
#cd /home/xxxxx_com
#mkdir sites 建立网站存放根目录
#chown xxxxxxx_com:xxxxxx_com sites 改变sites所属组为xxxxx_com
#mkdir logs 站点的日志目录
#chown xxxxxx_com:linuxhero_com logs
#mkdir cgi-bin 目录用来运行CGI程序
#chown xxxxx_com:xxxxxx_com cgi-bin
#mkdir sites/WEB-INF 用来存放Tomcat发布的程序
#chown xxxxx_com:xxxxx_com sites/WEB-INF
2.设置Apache的虚拟主机
#vi /usr/local/httpd/conf/httpd.conf
找到DirectoryIndex 在文件表中加上index.jsp,然后在文件尾添加虚拟主机配置信息:
NameVirtualHost 192.168.0.230:80
#www.xxxxx.com
<VirtualHost 192.168.0.230:80>
ServerAdmin [email protected]
DocumentRoot /home/xxxxx_com/sites
ServerName www.xxxxx.com
ServerAlias linuxhero.com
ErrorLog /home/xxxxx_com/logs/error_log
CustomLog /home/xxxxx_com/logs/access_log common
alias /cgi-bin /home/xxxxx_com/cgi-bin
<Location /cgi-bin>
Options ExecCGI
</Location>
<Location ~ "/*.jsp">
JkUriSet worker ajp13:localhost:8009
</Location>
<Location ~ "/WEB-INF/*">
JkUriSet worker ajp13:localhost:8009
</Location>
<Location ~ "servlet/*">
JkUriSet worker ajp13:localhost:8009
</Location>
</VirtualHost
1. 设置Tomcat的虚拟主机:
vi /usr/local/tomcat/conf/server.xml
在</Engine></Service></Server>上面加入如下:
------------------------------------------------------------------------------
<Host name="www.xxxxx.com" debug="0" appBase="/home/xxxxx_com/sites/"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Alias>xxxxx.com</Alias>
<Context path="" docBase="." debug="0" reloadable="ture"/>
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="xxxxx_com_log."
suffix=".txt"
timestamp="true"/>
</Host>
</Engine>
</Service>
</Server>
到此xxxxxxx_com这目录就可以同时支持PHP+JSP+mysql+mssql,啦,相当于LINUX下的WEB全能服务器.
http://www.dfmqp.cn
本人的全部安装过程提供给LINUX爱好者共同分享,需要软件如下
resin:http://www.caucho.com/
jdk:http://java.sun.com/
apache:http://www.apache.org
mysql:http://www.mysql.com
php:http://www.php.net
jdbc:http://mmmysql.sourceforge.net/
本人所用的软件版本如下:
resin-3.0.0.tar.gz
j2sdk-_4_2_05-linux-i586.bin
httpd-2.0.52.tar.gz
mysql-4..9.tar.gz
php-4.3.0.tar.gz
mysql-connector-java-3..6.tar.gz
一.安装MYSQL
我把他全部下在到/root 目录下
# chmod 755 mysql-4..9.tar.gz
# tar xfz mysql-4..9.tar.gz
解压后生成mysql-4..9目录,我们进入该目录:
cd mysql-4..9
进入后就开始配置mysql了,配置过程中我们要给mysql设置一个安装目录,我们设置在 /usr/local/mysql 下,以为把文件放到一个地方比较容易管理,如果你还想获得更多的配置信息,使用 ./configure --help:
在这里我要特别强调在 编译的时候要选择好MYSQL的默认编码,因为如果不选择按默认安装的时候在JSP中就不支持GBK编码了
所以我这样编译
# ./configure --prefix=/usr/local/mysql --with-charset=gbk
然后等几秒钟,配置完成后就编译源代码
# make
这个编译的过程比较长,如果机器比较慢的话,可能要近二十分种 ( 我的是联想服务器都需要了5分钟 ) . 编译完成后就安装:
# make install
等上几秒钟,安装完成.下面就到了最关键的部分了,为什么老安装不成功,(至少我是安装了N次,N > 0 ,呵呵),问题关键就在这里,访问mysql要一个专门的用户,而且必须给相应的访问权限,这里我们就设置root和mysql有权限访问.
我们先建立一个mysql和mysql用户来访问mysql:
# groupadd mysql #建立mysql组
# useradd mysql -g mysql #建立mysql用户并且加入到mysql组中
建立用户后我们就初始化表 (注意:必须先执行本步骤后才能进行以下步骤)
# ./scripts/mysql_install_db --user=mysql #初试化表并且规定用mysql用户来访问初始化表以后就开始给mysql和root用户设定访问权限, 我们先到安装mysql的目录:
# cd /usr/local/mysql
然后设置权限
# chown -R root . #设定root能访问/usr/local/mysql
# chown -R mysql var #设定mysql用户能访问/usr/local/mysql/var ,里面存的是mysql的数据库文件
# chown -R mysql var/. #设定mysql用户能访问/usr/local/mysql/var下的所有文件
# chown -R mysql var/mysql/. #设定mysql用户能访问/usr/local/mysql/var/mysql下的所有文件
# chgrp -R mysql . #设定mysql组能够访问/usr/local/mysql
设置完成后,基本上就装好了,好了,我们运行一下我们的mysql:
# /usr/local/mysql/bin/mysqld_safe --user=mysql &
如果没有问题的话,应该会出现类似这样的提示:
[] 42264
# Starting mysqld daemon with databases from /usr/local/mysql/var
这就证明你安装成功了
用如下命令修改MYSQL密码,默认安装密码为空,为了安全你必须马上修改
/usr/local/mysql/bin/mysqladmin -uroot password pengyong
现在修改的密码为:pengyong
二、安装jdk
# chmod 755 j2sdk-_4_2_05-linux-i586.bin
# ./j2sdk-_4_2_05-linux-i586.bin 释放j2sdk-_4_2_05-linux-i586.bin
在/root目录下生成j2sdk.4.2_05目录和文件我是将JDK装到/usr/java/目录下
将文件剪切到/usr/java/目录下
# mv j2sdk.4.2_05/ /usr/java/
设置JDK变量环境
# vi /etc/profile
# /etc/profile
JAVA_HOME=/usr/java/j2sdk.4.2_05
RESIN_HOME=/usr/resin
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/htmlco
nverter.jar:$RESIN_HOME/lib:/usr/java/jdbc/mysql-connector-java-3..6-bin.jar
退出当前登录的环境,重新登录,这样刚刚设定的环境变量就会生效,然后用如下命令测试:
[root@LINUX root]# echo $JAVA_HOME
/usr/java/j2sdk.4.2_05
[root@LINUX root]# echo $CLASSPATH
.:/usr/java/j2sdk.4.2_05/lib/dt.jar:/usr/java/j2sdk.4.2_05/lib/tools.jar:/usr/
java/j2sdk.4.2_05/lib/htmlconverter.jar:/usr/resin/lib:/usr/java/jdbc/mysql-con
nector-java-3..6-bin.jar
[root@LINUX root]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bi
n:/usr/local/sbin:/usr/bin/X:/usr/java/j2sdk.4.2_05/bin:/usr/XR6/bin:/root/
bin
[root@LINUX root]# java -version
java version ".4.2_05"
Java(TM) 2 Runtime Environment, Standard Edition (build .4.2_05-b04)
Java HotSpot(TM) Client VM (build .4.2_05-b04, mixed mode)
看到类似信息就表示jdk环境已经好了。其实在上面的/etc/profile中,我们不仅仅设置了jdk的环境变量,还一并设置了resin和jdbc的环境变量,这些都是后面安装resin所必需的设定
三、安装mysql的jdbc
# tar xfz mysql-connector-java-3..6.tar.gz
# mv mysql-standard-4.0.23-pc-linux-i686/ /usr/java/ 将解压的文件剪切到/usr/java/目录下。
# cd /usr/java/
# ln -s mysql-standard-4.0.23-pc-linux-i686/ jdbc 创建JDBC的软连接与/usr/java/目录下
四、安装apache
# chmod 755 httpd-2.0.52.tar.gz
# tar xfz httpd-2.0.52.tar.gz
# cd httpd-2.0.52
开始配置APACHE
# ./configure --prefix=/usr/java/httpd2 --enable-module=most --enable-shared=max
察看编译进apache的模块:
#/usr/java/httpd2/bin/httpd -l
[root@LINUX root]# /usr/java/httpd2/bin/httpd -l
compiled-in modules:
http_core.c
mod_so.c
看到以上的信息表明apache支持dso方式了。这样就可以用dso的方式把php和resin的模块加进来。
五、安装php
我们使用的PHP版本是4.3.0,先去下载: http://www.php.net/downloads.php, 下回来的包叫做 php-4.3.0.tar.gz, 放到/usr/local/src目录下.
首先进入该目录后解压缩:
# cd /usr/local/src
# tar xfz php-4.3.0.tar.gz
解压后进入目录:
# cd php-4.3.0
进行配置,这一步比较关键,一定要设置好,特别是要考虑到你要支持什么,比如GD库,xml,mysql等等,如果想知道详细的配置,执行 ./configure --help来获得:
# ./configure --with-mysql=/usr/java/mysql --with-apxs=/usr/java/httpd2/bin/apxs
果上面的配置没有错误的话,那么应该最后会显示感谢使用PHP等字样,那么证明配置成功,如果上面的配置选项不支持的话,会提示错误.
比如你没有安装mysql,那么--with-mysql就无法使用,所以一定要注意对应选项系统是否能够支持,如果出现错误,那么就先安装对应的程序,或者去掉相关选项,配置之后就进行编译:
# make
编译成功后出现"Build complete."字样,那么就可以进行安装了:
# make install
安装完成后把/usr/local/src/php-4.3.8/php.ini-dist复制到/usr/local/lib/,并重命名为php.ini
# cp /usr/local/src/php-4.3.0/php.ini-dist /usr/local/lib/php.ini
基本到这里PHP就安装成功了,如果中间出现错误,除了在配置的时候没有选对选项之后一般都不出现错误.
为了让Apache能够直接解析php,我们还要进行一些配置.
# vi /usr/java/httpd/conf/httpd.conf
在httpd.conf文件中,添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
应该将以上两句添加在其他AddType之后。
确保文件中有以下一句话,没有就自己添加在所有LoadModule之后。
LoadModule php4_module modules/libphp4.so
好了,在vi中使用":wq"保存httpd.conf文件,退出vi。启动apache server:
# /usr/java/httpd2/bin/apachectl restart
现在apache就能够运行php了,写个文件测试一下,在/usr/java/httpd2/htdocs目录下,新建一个phpinfo.php文件,
文件中只有一行代码:
<? phpinfo(); ?>
保存此文件, 在你的浏览器中输入http://localhost/phpinfo.php,你应该看到PHP的系统信息。
如果出现错误,比如提示你下灾phpinfo.php,那么apache就是还无法解析php文件,那么请仔细检查以上的操作是否正确.
六.安装resin
下载的resin的安装包解开后应该可以直接单独运行的。笔者将其解开后放到/usr/java/目录下
# tar xfz resin-3.0.0.tar.gz
# mv resin-3.0.0 /usr/java/
# cd /usr/java/
# ln -s resin-3.0.0/ resin
启动resin
# /usr/java/resin/bin/httpd.sh start
现在就能够从http://localhost:8080/上能看到resin的页面,这也就表示单独的resin运行成功了。然后,为了整合resin和apache,我们需要重新编译一下,以生成mod_caucho给apache调用。
# cd /usr/java/resin
# ./configure --with-apache=/usr/java/httpd2
# make
# make install
修改/usr/java/resin/conf/resin.conf,大约在最后(安装的resin版本不同,配置文件的内容可能有所不同),将<document-directory>修改成自己的apache的documentroot的值。
<document-directory>/usr/java/httpd2/htdocs</document-directory> ##这里修改成/usr/java/httpd2/htdocs
最后vi /usr/java/httpd2/conf/httpd.conf
复制以下内容
<location /caucho-status>
sethandler caucho-status
</location>
保存后。从启APACHE和RESIN
# /usr/java/resin/bin/httpd.sh restart
# /usr/java/httpd2/bin/apachectl restart
通过浏览器去访问http://localhost/caucho-status/,如果出现以下页面刚表示resin和apache已经成功整合了。
http://www.dfmqp.cn/caucho-status/
七.建立resin和apache的虚拟主机 我们建立的是tes.jsp.com test2.jsp.com 两个虚拟主机
vi /usr/java/httpd2/conf/httpd.conf
复制如下内容到httpd.conf里
NameVirtualHost 92.68.0. 虚拟主机建立所在的IP
<VirtualHost 99.99.0.>
DocumentRoot /home/jsp/ 文件所在目录
ServerName tes.jsp.com 访问的域名
</VirtualHost>
VirtualHost 92.68.0.>
DocumentRoot /home/jsp2/
ServerName test2.jsp.com
</VirtualHost>
vi /usr/java/resin/conf/resin.conf
查找如下代码并修改:
<host id="" root-directory=".">
<!--
- configures an explicit root web-app matching the
- webapp's ROOT
-->
<web-app id='/' document-directory="/usr/java/httpd2/htdocs"/>
</host>
<host id='tes.jsp.com'>
<web-app id='/' document-directory="/home/jsp"/>
</host>
<host id='tes2.jsp.com'>
<web-app id='/' document-directory="/home/jsp2"/>
</host>
保存从启apache和resin
tes.jsp.com 和tes2.jsp.com 虚拟主机可以运行了
可以做如下测试http://localhost/caucho-status/
可以看到测试面上有
Virtual Host: tes.jsp.com:80
Virtual Host: tes2.jsp.com:80
证明JSP虚拟主机工作很正常
PHP的全名是“PHP:HYPERTEXT PREPROCESSOR”。是一种多平台无缝运行的服务器端嵌入式脚本语言,它融合了C、JAVA和PERL等编程语言,由于它是一种免费的软件,具有自由软件的性质,版本更新速度快,移植速度快,丰富的函数库功能,因而很快得到大家的喜欢,特别是PHP提供加密函数库,特别适合给安全性较高的电子商务网站的要求,在Apache环境下构建的PHP网站已经作为当前的流行的Web网站之一。
PHP能够作为Apache Web服务器的模块执行,使得它的执行效率要高于普通的CGI程序,而且能比CGI或者Perl更快速地执行动态网页。
PHP的工作原理如下(如下图1所示):
我们如果创建了一个PHP应用程序,实际上相当于创建了一个PHP脚本文件。在服务器将输出信息发送到客户端之前,网络服务器会率先将文件中的PHP语言进行加工处理。如果服务器不支持PHP,通常情况下,网络服务器会直接将超文本文件送到客户的浏览器上以表示对HTTP的要求作出应答;如果服务器支持PHP,则在服务器响应一个对PHP文件的请求时,会进行下列处理:首先在一个PHP文件内,标准的HTML编码会被直接送到浏览器上,而内嵌PHP程序却是先被网络服务器解释执行。如果是标准输出的话,输出信息也将作为标准的HTML而被送至浏览器。
PHP可以安装在Unix/Linux环境下,也可以安装在Windows环境下。目前网站使用最多的、也是最理想的便是PHP+MySQL+Apache基于Unix/Linux下的服务器策略。
本文中所说的Linux就选用大家比较熟悉的Red Hat Linux操作系统。
作为一个领先的开放源代码操作系统,红帽企业Linux提供了适用于从台式计算机到大型数据中心的系列产品:红帽企业 Linux AS 适用于高端的,用于关键业务处理的系统,红帽企业 Linux ES 适用于小到中型服务器,红帽企业 Linux WS 适用于技术/设计工作站,红帽企业 Desktop适用于安全,可管理的客户机环境。
我们采用最新的红帽企业 Linux AS4的环境中使用Apache来构建PHP网站,作为学习环境使用,在安装redhat AS4时选择为系统“定制软件包”,在定制安装中选择“全部”,会安装包括在红帽企业 Linux AS4中的所有软件包。Apache 2.0服务器版本、PHP 4.3.9以及MySQL 4.1.x等软件都已经安装成功。
我们也可以到http://www.apache.org/网站下载Apache最新版本, http://www.php.net/网站下载PHP新版本以及http://www.mysql.com/下载Linux的MySQL最新版本分别进行安装,由于篇幅有限,这里就不介绍如何分别编译、配置和安装了。
红帽企业 Linux AS4中使用 “HTTP 配置工具”来配置 Apache HTTP 服务器 的一般步骤如下所述:
1)在「主」标签下配置基本设置。
2)根据实际需要,点击「虚拟主机」标签来配置默认设置。在「虚拟主机」标签下,配置默认的虚拟主机。如果你想为不止一个 URL 或虚拟主机提供服务,则添加额外的虚拟主机。
3)在「服务器」标签下配置服务器设置。
4)在「性能微调」标签下配置连接设置。
5)把所有必要的文件复制到 DocumentRoot 和 cgi-bin 目录中。
6)退出程序并保存你的设置。
1、基本设置
使用「主」标签来配置基本服务器设置。
在「服务器名称」文本字段中输入有权使用的完整域名。该选项和 httpd.conf 中的 ServerName 指令相对应。ServerName 指令设置万维网(WWW或WEB)服务器的主机名。服务器名称不一定非要是它的 IP 地址。在这里服务器名称设为 www.ghq.com。
在「网主电子邮件地址」文本字段中输入万维网服务器维护者的电子邮件地址。该选项和 httpd.conf 中的ServerAdmin 指令相对应。如果配置服务器的错误页要包含电子邮件地址,该地址将会被用户用来向服务器的管理员提交问题。默认的值是:root@localhost。
使用「可用地址」文本字段来定义服务器接受进入连接请求的端口。该选项和 httpd.conf 中的Listen 指令相对应。红帽默认配置 Apache HTTP 服务器 在端口 80 上监听非安全万维网通讯。
为了简单明了,这里我们不配置虚拟主机。
「服务器」标签允许配置基本的服务器设置。默认设置在多数情况下都是适用的。
「锁文件」的值和LockFile 指令相对应。在服务器使用 USE_FCNTL_SERIALIZED_ACCEPT 或 USE_FLOCK_SERIALIZED_ACCEPT 编译时,该指令把路径设为锁文件所用的路径。它必须贮存在本地磁盘上。
「PID 文件」的值和PidFile 指令相对应。该指令设置服务器记录进程 ID(PID) 的文件。该文件应该只能够被根用户读取。多数情况下,应该使用默认值。
「核心转储目录」的值和CoreDumpDirectory 指令相对应。Apache HTTP 服务器在转储核心前会试图转换到该目录中。默认值是 ServerRoot。
「用户」的值和 User 指令相对应。它设置服务器回答请求所用的 userid。用户的设置决定服务器的访问权限。该用户所无法访问的文件,网站来宾也不能够访问。默认的 User 是 apache。
Group 的值与 Group 指令相对应。Group 指令和 User 指令很相似。它设置服务器回答请求所用的组群。默认组群也是 apache。
3、调整性能
点击「调整性能」标签来配置使用的服务器子进程的最大数量,以及客户连接方面的 Apache HTTP 服务器选项。这些选项的默认设置在多数情况下是恰当的。改变这些设置会影响你的万维网服务器的整体性能。
把「最多连接数量」设为服务器能够同时处理的客户请求的最多数量。服务器为每个连接创建一个 httpd 子进程。进程数量达到最大限度后,直到某子进程结束,Web服务器才能够接受新客户连接。如果不重新编译 Apache,该选项设置的值将不能超高 256。该选项与 MaxClients 指令相对应。
「连接超时」定义的服务器在通信时等候传输和回应的秒数。特别是,「连接超时」定义服务器在接收 GET 请求时要等多久,在接收 POST 或 PUT 请求的 TCP 包时要等多久,以及在回应 TCP 包的 ACK 之间要等多久。「连接超时」被默认设为 300 秒,这在多数情况下都是适用的。该选项与 TimeOut 指令相对应。
把「每次连接最多请求数量」设为每个持续连接所允许的最多请求次数。默认值为 100,这应该在多数情况下都适用。该选项与 MaxRequestsPerChild 指令相对应。
如果选择了「允许每次连接可有无限制请求」选项,MaxKeepAliveRequests 指令的值就会是 0,这会允许无限制的请求次数。
如果取消选择了「允许持久性连接」选项,KeepAlive 指令就会被设为 false。如果选择了它,KeepAlive 指令就会被设为 true,并且KeepAliveTimeout 指令的值会被设为「下次连接的超时时间」中选定的值。该指令设置的超时秒数是服务器在回答了一项请求之后,关闭连接之前,等待下一个请求时会等候的秒数。一旦接收到请求,服务器就会改用「连接超时」中的值。
把「持续连接」设为一个较大的数值可能会导致服务器速度减慢,这要依据试图连接该服务器的用户数量而定。该选项的数值越大,等候前一个用户再次连接的服务器进程就越多。
4、保存设置
如果不想保存所做的 Apache HTTP 服务器 配置,点击 HTTP 配置工具窗口右下角的「取消」按钮,会被提示确认。如果点击了「是」来确认该选择,设置就不会被保存。
如果你想保存你所做的 Apache HTTP 服务器 配置,点击 HTTP 配置工具窗口右下角的「确定」按钮。一个对话框就会出现。如果你点击了「是」,你的设置就会被保存在 /etc/httpd/conf/httpd.conf 中。
如果这是第一次使用 HTTP 配置工具,我们会看到一个警告配置文件已经被手工修改的对话框。如果 HTTP 配置工具检测到 httpd.conf 配置文件已被手工修改,它会把手工修改的文件保存为 /etc/httpd/conf/httpd.conf.bak。
Apache的配置文件httpd.conf位于/etc/httpd/conf目录下如图5所示,其中的主机名和网页存放的目录位置等都有相应的配置如图6所示。
红帽企业 Linux AS4中默认的 /etc/php.ini 配置文件已经把过去使用的默认值 "development" 改为使用 "production" 为默认值。这个软件包现在使用 "apache2handler" SAPI 与 Apache httpd 2.0 集成,而不是使用 "apache2filter" SAPI。如果从以前的发行版本升级,SetOutputFilter 会被从 /etc/httpd/conf.d/php.conf 文件中删除。
Php.ini文件在/etc目录下(如图7),打开文件内容如图8所示,其中有engine=On项,表示PHP语言模块已经集成在Apache中即启动Apache服务,PHP也就启动了。
首先编辑一个test.php文件,内容如图11所示,将该文件保存在/var/www/html目录中;然后启动Apache 服务如图12,在浏览器上输入http://192.168.1.68/test.php,调出页面如图13所示,至此在Apache服务器的构建PHP网站就算完成了。