在Linux上架设支持JSP PHP的Web服务器(1)

由于公司业务的需要,最近要在linux下的php支持java类,故把我的调试笔记贴出来,希望对大家有用。

近年来Linux在服务器市场占有比例日渐攀升,除了缘于Linux的免费和安全性之外,还因为Linux上的应用服务日益丰富。大部分常见的服务都在Linux上有了较好的解决方案。而对于Intenet上应用最广泛的Web服务来说,Linux的表现就更为出色。谁也无法说
清Internet上究竟有多少个网站,但在众多网站中,采用PHP和JSP开发的网站无疑占居了极大的市场份额。下面就介绍一下如何在Linux上架设支持JSP
PHP MySQL的Web服务器。

刚刚看到有人贴win下安装步骤
刚好今天公司网站的新服务器到手。花了一上午安装mysql+php+apache。
新版的老版的还是有些不同的。现在把步骤帖一下

系统环境:

对于Web服务,apache无疑是首选。数据库方面选用MySQL,这对于一般应用也够了,当然Linux下也可以安装oracle、DB2等大型数据库,可是它们费用昂贵。至于对于开发语言的支持,JSP和PHP无疑是当前最主流和应用最广泛的web开发语言了。所有这些软件我们可以从以下网站上找到:

安装步骤: 1.mysql 在如下页面下载mysql的for linux rpm包

Redhat 9.0

Resin:
JDK:
Apache:
MySQL:
PHP:
MM.MySQL:

存至/home/tmp目录 命令列表:

Apache-1.3.27

从以上网站下载对应的软件,笔者下载的软件如下:

cd /home/tmp rpm -ivh MySQL-3.23.52-1.i386.rpm #安装mysql server rpm
-ivh MySQL-client-3.23.52-1.i386.rpm #安装mysql client
/usr/mysql/safe_mysqld & #启动mysql server mysql #运行mysql
客户端,并开放root用户的远程访问权限。以便调试 use mysql update user set
host = ‘%’ where user = ‘root’ and host ‘localhost’; flush privileges;
quit

Mysql3.23-54a-11

mysql-4.0.15.tar.gz
apache_1.3.28.tar.gz
php-4.3.3.tar.gz
resin-3.0.3.tar.gz
mysql-connector-java-3.1.0-alpha.tar.gz
j2sdk-1_4_2_01-linux-i586.bin

至此mysql安装完成

Php-4.32

一、安装MySQL

2.apache 在如下页面下载apache的for linux 的源码包 _1.3.26.tar.gz
存至/home/tmp目录 命令列表:

j2sdk1.4.1_03

MySQL的安装比较简单,但是编译过程可能有点长,具体步骤如下:

cd /home/tmp tar -zxvf apache_1.3.26.tar.gz mv apache_1.3.26.tar.gz
apache cd apache ./configure –prefix=/usr/local/apache
–enable-module=so make make install

安装配置:

# tar -xzpvf mysql-4.0.15.tar.gz
# adduser -s /bin/false mysql
# ./configure –prefix=/usr/local/terry_yu/mysql –enable-assembler
–with-innodb –with-charset=gb2312
# make
# make install
# /usr/local/terry_yu/mysql/bin/mysql_install_db
# chown -R root /usr/local/terry_yu/mysql/
# chown -R mysql /usr/local/terry_yu/mysql/var
# chgrp -R mysql /usr/local/terry_yu/mysql/
# /usr/local/terry_yu/mysql/bin/mysql_install_db

安装apache至/usr/local/apache 并配置apache支持dso方式

1.mysql使用的是redhat9自带的rpm包,不介绍安装了,jdk的安装也很简单,我们把jdk安装到/usr/java/j2sdk1.4.1_03
并在/etc/profile设置jdk环境参数。

修改/etc/ld.so.conf,在最后加入以下一行:

3.php 在如下页面下载php的for linux 的源码包
_download.php?df=php-4.2.3.tar.gz 存至/home/tmp目录 命令列表:

2.编译安装apache

/usr/local/terry_yu/mysql/lib/mysql/lib

cd /home/tmp tar -zxvf php-4.2.3.tar.gz mv php-4.2.3.tar.gz php cd php
./configure –prefix=/usr/local/php
–with-apxs=/usr/local/apache/bin/apxs
–with-config-file-path=/usr/local/lib –enable-track-vars –with-xml
–with-mysql make make install cp php.ini-dist /usr/local/lib/php.ini

tar zvxf apache_1.3.27.tar.gzcd apache_1.3.27./configure prefix=/usr/local/apache enable-module=so enable-shared=maxmakemake install 

然后执行以下命令:

以dso方式安装php至/usr/local/php 设置配置文件目录为/usr/local/lib
开启mysql,xml支持

3.编译安装php

# ldconfig

4.配置

tar zvxf php-4.3.2.tar.gzcd php-4.3.2./configure prefix=/usr/local/php with-mysql /--with-apxs=/usr/local/apache/bin/apxs /--with-java=/usr/java/j2sdk1.4.1_03makemake install 

用以下命令启动MySQL

vi /usr/local/apache/conf/ 对apache做如下配置 #将ServerAdmin
q3boy@younet.com一行改为您的邮箱地址

修改 /usr/local/apache/conf/

/usr/local/terry_yu/mysql/bin/mysqld_safe &

#DocumentRoot “/home/” 此处为html文件主目录

查找

用以下命令修改MySQL的root密码:

# 同上

在此范围添加

/usr/local/terry_yu/mysql/bin/mysqladmin -uroot password abcdefg

#Options FollowSymLinks MultiViews 为安全起见,去掉”Indexes”

AddType application/x- .php

用以下命令可以进入MySQL的命令行方式:

# # DirectoryIndex default.php default.phtml default.php3 default.html
default.htm # #设置apache的默认文件名次序

AddType application/x- .phps

[[email protected]
root]# /usr/local/terry_yu/mysql/bin/mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1 to server version: 4.0.15

#AddType application/x- .php .phtml .php3 .inc #AddType application/x-
.phps #设置php文件后缀

4.配置php.ini

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.

存盘退出

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

mysql> quit
Bye

vi /usr/local/lib/php.ini #register-golbals = On

vim php.ini

出现以上信息表示MySQL已经成功运行了。

存盘退出

修改如下内容:

二、安装JDK

5.启动服务 /usr/local/apache/bin/apachectl start

[Java]java.class.path = /usr/local/php/lib/php/php_java.jarjava.home = /usr/java/j2sdk1.4.1_03java.library = /usr/java/j2sdk1.4.1_03/jre/lib/i386/libjava.sojava.library.path =/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429extension_dir = /usr/local/php/lib/php/extensions/no-debug-non-zts-20020429extension=java.so 

# chmod 755 j2sdk-1_4_2_01-linux-i586.bin
# ./j2sdk-1_4_2_01-linux-i586.bin
# mv j2sdk1.4.2_01/ /usr/local/terry_yu/
# cd /usr/local/terry_yu/
# ln -s j2sdk1.4.2_01/ jdk
# ln -s jdk/jre/ jre

6.备注
apache在linux下的默认最大进程数为256,无论如何修改都不能超过这个限制。如果想加大这个限制,在编译apache前编辑/home/tmp/apache/src/include/,将其中#define
HARD_SERVER_LIMIT 256 一行改为#define HARD_SERVER_LIMIT
2048后再编译apache,

保存退出。

# vi /etc/profile
JAVA_HOME=/usr/local/terry_yu/jdk
RESIN_HOME=/usr/local/terry_yu/resin
CLASSPATH=.:../$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$RESIN_HOME/lib:/usr/local/terry_yu/jdbc
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

apache
1.3.26中mod_so似乎已经不是默认模块了。编译时候需加上–enable-module=so,我第一次编译没加此参数,结果php编译时无法找到apxs

cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20020429

退出当前登录的环境,重新登录,这样刚刚设定的环境变量就会生效,然后用如下命令测试:

php 4.2.3中默认配置文件路径似乎变了。编译时需加上
–with-config-file-path=/usr/local/lib
参数,我第一次编译完php.ini放了n个地方都没有用。不得已。只能加上这个参数。

ln s java.so libphp_java.so 这一步很重要哦!

[[email protected]
root]# java -version
java version “1.4.2_01”
JavaTM) 2 Runtime Environment, Standard Edition build 1.4.2_01-b06)
Java HotSpotTM) Client VM build 1.4.2_01-b06, mixed mode)

p.s. 不保证本文所述步骤适用于其他版本

设置环境变量:

看到类似信息就表示JDK环境已经好了。其实在上面的/etc/profile中,我们不仅仅设置了JDK的环境变量,还一并设置了Resin和JDBC的环境变量,这些都是后面安装Resin所必需的设定。

附:相关文件下载地址 php: _download.php?df=php-4.2.3.tar.gz apache:
_1.3.26.tar.gz mysql server: mysql client:

export
LD_LIBRARY_PATH=/usr/java/j2sdk1.4.1_03/jre/lib/i386:/usr/java/
j2sdk1.4.1_03/jre/lib/i386/server

三、安装MySQL的JDBC

ok!重启一下apache

MySQL的JDBC的相关环境变量已经在前面设置好了,所以余下的只是按以下命令安装:

/usr/local/apache/bin/apachectl start

# tar -xzpvf mysql-connector-java-3.1.0-alpha.tar.gz
# mv mysql-connector-java-3.1.0-alpha /usr/local/terry_yu/
# cd /usr/local/terry_yu/
# ln -s mysql-connector-java-3.1.0-alpha/ jdbc

测试一下,写个测试页test.php

四、安装Apache

?$system=new Java(java.lang.System);//demonstrate property accessprint Java version=.$system-getProperty(java.version). br;? 

正常的话页面应该能显示:Java version=1.4.1_03

需要注意的是,编译apache时候必须加入了DSO支持,如果没有,请加入
–enable-module=so 选项重新编译apache

# tar -xzpvf apache_1.3.28.tar.gz
# cd apache_1.3.28/
# ./configure –prefix=/usr/local/terry_yu/apache
–enable-module=most
–enable-shared=max
# make
# make install

察看编译进apache的模块:

#/usr/local/terry_yu/apache/bin/httpd -l
Compiled-in modules:
http_core.c
mod_so.c

看到以上的信息表明apache支持DSO方式了。这样就可以用DSO的方式把php和resin的模块加进来。

五、安装PHP

安装PHP比较简单,我们先装PHP。

# tar -xzpvf php-4.3.3.tar.gz
# cd php-4.3.3/
# ./configure –with-mysql=/usr/local/terry_yu/mysql
–with-apxs=/usr/local/terry_yu/apache/bin/apxs
# make
# make install
# cp php.ini-dist /usr/local/lib/php.ini

编辑PHP的配置文件是/usr/local/lib/php.ini,将其中的register_globals变量修改成On,默认是Off的。需要将它改成On。否则会出现php不能直接读不到post或get的数据的现象。

编辑Apache的配置文件/usr/local/terry_yu/apache/conf/httpd.conf,在文件结尾加上以下一行:

AddType application/x-httpd-php .php .php3

启动apache:

# /usr/local/terry_yu/apache/bin/apachectl start

然后可以用一个简单的php文件来测试PHP的安装,这个简单的PHP文件包含下列一行:

<? phpinfo);?>

将其保存为/usr/local/terry_yu/apache/htdocs/info.php,然后在浏览器中浏览,如果观看到以显示有“PHP
Version4.3.3”标题的页面就表示整合PHP与Apache成功了。而且在这个页面中可以看到与PHP相关的选项,其中应该有关于MySQL的子项,这表明PHP已经内置了对MySQL的支持了。这样就表示PHP
MySQL Apache的环境已经成功了,接下来是安装Resin来支持JSP环境。

六.安装Resin

发表评论

电子邮件地址不会被公开。 必填项已用*标注