搜索关键字:so-8859-1 将so-8859-1替换为utf-8 一共有两处要修改 如:
Set msg = Server.CreateObject("JMail.Message")
msg.silent = false
msg.Logging = true
'msg.Charset = "so-8859-1"
msg.Charset = "utf-8"
msg.ContentTransferEncoding="base64"
if smtpauth then
msg.MailServerUserName =sendmail
msg.MailServerPassword = smtppass
end if
msg.From = sendmail ' 发件人
msg.FromName =mailname
保存.去注册个会员再试试就没问题了.
一般WIN主机推荐PHP环境组合:PHP4.4.x+MySQL4.0.x,故以下关于PHP4.4.x+MySQL4.0.x组合的安装以蓝色文字显示,如果你只需要安装PHP4.4.x+MySQL4.0.x的组合只看蓝色文字的相关内容即可
当然喜欢体验的或者WIN2003系统也可体验尝试最新的版本,推荐组合PHP5.1.x+MYSQL5.0.x/MySQL4.1.x
1.PHP,推荐PHP4.4.0的ZIP解压版本:
PHP(4.4.0):http://cn.php.net/get/php-4.4.0-Win32.zip/from/a/mirror
[供选用]:
PHP(5.1.2):http://www.chinaser.net/download/php-5.1.2-Win32.zip
2.MySQL,配合PHP4推荐MySQL4.0.26的WIN系统安装版本:
MySQL(4.0.26):http://download.discuz.net/mysql-4.0.26-win32.zip
http://dev.mysql.com/get/Downloads/MySQL-4.0/mysql-4.0.26-win32.zip/from/pick#mirrors
[供选用]:
MySQL(5.0.18):http://www.chinaser.net/download/mysql-5022-win32.zip
3.Zend Optimizer,当然选择当前最新版本拉:
Zend Optimizer(2.6.2):http://www.chinaser.net/download/ZendOptimizer-3.0.1-Windows-i386.exe
官方下载https://www.zend.com/store/getfreefile.php?pid=13&zbid=995
4.phpMyAdmin,当然同样选择当前最新版本拉,注意选择for Windows 的版本哦:
phpMyAdmin(2.8.2):http://www.chinaser.net/download/PHPMyadmin-v2.82.rar
https://www.zend.com/store/getfreefile.php?pid=13&zbid=995
假设 C: 为你现在所使用操作系统的系统盘,如果你目前操作系统不是安装在 C: ,请自行对应修改相应路径。同时由于C盘经常会因为各种原因重装系统,数据放在该盘不易备份和转移
选择安装目录,故本文将所有PHP相关软件均安装到D:php目录下,这个路径你可以自行设定,如果你安装到不同目录涉及到路径的请对应修改以下的对应路径即可
二、安装 PHP :本文PHP安装路径取为D:phpphp4(为避混淆,PHP5.1.x版本安装路径取为D:phpphp5)
(1)、下载后得到 php-4.4.0-Win32.zip ,解压至D:php目录,将得到二级目录php-4.4.0-Win32,改名为 php4,也即得到PHP文件存放目录D:phpphp4[如果是PHP5.1.2,得到的文件是php-5.1.2-Win32.zip,直接全部接压至D:phpphp5目录即可得PHP文件存放目录D:phpphp5];
(2)、再将D:phpphp4目录和D:phpphp4dlls目录[PHP5为D:phpphp5]下的所有dll文件拷到c:Windowssystem32(win2000系统为 c:/winnt/system32/)下,覆盖已有的dll文件;
搜索
register_globals = Off
,将 Off 改成 On ,即得到register_globals = On;
注:这个对应PHP的全局变量功能,考虑有很多PHP程序需要全局变量功能故打开,打开后请注意-PHP程序的严谨性,如果不需要推荐不修改保持默认Off状态
再搜索
extension_dir =
,并将其路径指到你的 PHP 目录下的 extensions 目录,比如:修改extension_dir = "./"为extension_dir = "D:/php/php4/extensions/" ;
PHP扩展功能目录[PHP5对应修改为extension_dir = "D:/php/php5/ext/"]
在D:php下建立文件夹并命名为tmp
;upload_tmp_dir =
将;upload_tmp_dir该行的注释符,即前面的分号“;”去掉,使该行在php.ini文档中起作用。upload_tmp_dir是用来定义上传文件存放的临时路径,在这里你还可以修改并给其定义一个绝对路径,这里设置的目录必须有读写权限。
这里我设置为upload_tmp_dir = D:/php/tmp (即前面建立的这个文件夹呵)
搜索找到
;Windows Extensions
将下面一些常用的项前面的;去掉
;extension=php_mbstring.dll
;extension=php_curl.dll
;extension=php_dbase.dll
;extension=php_gd2.dll
这个是用来支持GD库的,一般需要,必选
;extension=php_ldap.dll
extension=php_zip.dll
去掉前面的";"
对于PHP5的版本还需要查找
;extension=php_mysql.dll
并同样去掉前面的";"
这个是用来支持MYSQL的,由于PHP5将MySQL作为一个独立的模块来加载运行的,故要支持MYSQL必选
查找
;session.save_path =
去掉前面;号,本文这里将其设置置为
session.save_path = D:/php/tmp
其他的你可以选择需要的去掉前面的;然后将该文件另存为为php.ini到C:Windows ( Windows 2000 下为 C:WINNT)目录下,注意更改文件后缀名为ini,得到C:Windowsphp.ini ( Windows 2000 下为 C:WINNTphp.ini)
若路径等和本文相同可直接保存到C:Windows ( Windows 2000 下为 C:WINNT)目录下使用若路径等和本文相同可直接保存到C:Windows ( Windows 2000 下为 C:WINNT)目录下使用
一些朋友经常反映无法上传较大的文件或者运行某些程序经常超时,那么可以找到C:Windows ( Windows 2000 下为 C:WINNT)目录下的PHP.INI以下内容修改:
max_execution_time = 30 ; 这个是每个脚本运行的最长时间,可以自己修改加长,单位秒
max_input_time = 60 ; 这是每个脚本可以消耗的时间,单位也是秒
memory_limit = 8M ; 这个是脚本运行最大消耗的内存,也可以自己加大
upload_max_filesize = 2M ; 上载文件的最大许可大小 ,自己改吧,一些图片论坛需要这个更大的值
(4)、配置 IIS 使其支持 PHP :
首先必须确定系统中已经正确安装 IIS ,如果没有安装,需要先安装 IIS ,安装步骤如下:
Windows 2000/XP 下的 IIS 安装:
用 Administrator 帐号登陆系统,将 Windows 2000 安装光盘插入光盘驱动器,进入“控制面板”点击“添加/删除程序”,再点击左侧的“添加/删除 Windows 组件”,在弹出的窗口中选择“Internet 信息服务(IIS)”,点下面的“详细信息”按钮,选择组件,以下组件是必须的:“Internet 服务管理器”、“World Wide Web 服务器”和“公用文件”,确定安装。
安装完毕后,在“控制面板”的“管理工具”里打开“服务”,检查“IIS Admin Service”和“World Wide Web Publishing Service”两项服务,如果没有启动,将其启动即可。
Windows 2003 下的 IIS 安装:
由于 Windows 2003 的 IIS 6.0 集成在应用程序服务器中,因此安装应用程序服务器就会默认安装 IIS 6.0 ,在“开始”菜单中点击“配置您的服务器”,在打开的“配置您的服务器向导”里左侧选择“应用程序服务器(IIS,ASP.NET)”,单击“下一步”出现“应用程序服务器选项”,你可以选择和应用程序服务器一起安装的组件,默认全选即可,单击“下一步”,出现“选择总结界面”,提示了本次安装中的选项,配置程序将自动按照“选择总结”中的选项进行安装和配置。
打开浏览器,输入:http://localhost/,看到成功页面后进行下面的操作:
PHP 支持 CGI 和 ISAPI 两种安装模式,CGI 更消耗资源,容易因为超时而没有反映,但是实际上比较安全,负载能力强,节省资源,但是安全性略差于CGI,本人推荐使用 ISAPI 模式。故这里只解介绍 ISAPI 模式安装方法:(以下的截图因各个系统不同,窗口界面可能不同,但对应选项卡栏目是相同的,只需找到提到的对应选项卡即可)
在“控制面板”的“管理工具”中选择“Internet 服务管理器”,打开 IIS 后停止服务,对于WIN2000系统在”Internet 服务管理器“的下级树一般为你的”计算机名“上单击右键选择“属性”,再在属性页面选择主属性”WWW 服务“右边的”编辑“
对于XP/2003系统展开”Internet 服务管理器“的下级树一般为你的”计算机名“选择”网站“并单击右键选择“属性”
在弹出的属性窗口上选择“ISAPI 筛选器”选项卡找到并点击“添加”按钮,在弹出的“筛选器属性”窗口中的“筛选器名称”栏中输入:PHP ,再将浏览可执行文件使路径指向 php4isapi.dll 所在路径,如本文中为:D:phpphp4sapiphp4isapi.dll[PHP5对应路径为D:phpphp5php5isapi.dll]。
打开“站点属性”窗口的“主目录”选项卡,找到并点击“配置”按钮
在弹出的“应用程序配置”窗口中的”应用程序映射“选项卡找到并点击“添加”按钮新增一个扩展名映射,在弹出的窗口中单击“浏览”将可执行文件指向 php4isapi.dll 所在路径,如本文中为:D:phpphp4sapiphp4isapi.dll[PHP5对应路径为D:phpphp5php5isapi.dll],扩展名为 .php ,动作限于”GET,HEAD,POST,TRACE“,将“脚本引擎”“确认文件是否存在”选中,然后一路确定即可。如果还想支持诸如 .php3 ,.phtml 等扩展名的 PHP 文件,可以重复“添加”步骤,对应扩展名设置为需要的即可如.PHPX。
此步操作将使你服务器IIS下的所有站点都支持你所添加的PHP扩展文件,当然如果你只需要部分站点支持PHP,只需要在“你需要支持PHP的Web站点”比如“默认Web站点”上单击右键选择“属性”,在打开的“ Web 站点属性”“主目录”选项卡,编辑或者添加PHP的扩展名映射即可或者将你步需要支持PHP的站点中的PHP扩展映射删除即可
再打开“站点属性”窗口的“文档”选项卡,找到并点击“添加”按钮,向默认的 Web 站点启动文档列表中添加 index.php 项。您可以将 index.php 升到最高优先级,这样,访问站点时就会首先自动寻找并打开 index.php 文档。
确定 Web 目录的应用程序设置和执行许可中选择为纯脚本,然后关闭 Internet 信息服务管理器
对于2003系统还需要在“Internet 服务管理器”左边的“WEB服务扩展”中设置ISAPI 扩展允许,Active Server Pages 允许
完成所有操作后,重新启动IIS服务。
在CMD命令提示符中执行如下命令:
net stop w3svc
net stop iisadmin
net start w3svc
到此,PHP的基本安装已经完成,我们已经使网站支持PHP脚本。
检查方法是,在 IIS 根目录下新建一个文本文件存为 php.php ,内容如下:
<?php
phpinfo();
?>
打开浏览器,输入:http://localhost/php.php,将显示当前服务器所支持 PHP 的全部信息,可以看到 Server API的模式为:ISAPI 。
三、安装 MySQL :
对于MySQL4.0.26下载得到的是mysql-4.0.26-win32.zip,解压到mysql-4.0.26-win32目录双击执行 Setup.exe 一路Next下一步,选择安装目录为D:phpMySQL和安装方式为Custom自定义安装,再一路Next下一步即可。
安装完毕后,在CMD命令行中输入并运行:
D:phpMySQLbinmysqld-nt -install
如果返回Service successfully installed.则说明系统服务成功安装
新建一文本文件存为MY.INI,编辑配置MY.INI,这里给出一个参考的配置
[mysqld]
basedir=D:/php/MySQL
#MySQL所在目录
datadir=D:/php/MySQL/data
#MySQL数据库所在目录,可以更改为其他你存放数据库的目录
#language=D:/php/MySQL/share/your language directory
#port=3306
set-variable = max_connections=800
skip-locking
set-variable = key_buffer=512M
set-variable = max_allowed_packet=4M
set-variable = table_cache=1024
set-variable = sort_buffer=2M
set-variable = thread_cache=64
set-variable = join_buffer_size=32M
set-variable = record_buffer=32M
set-variable = thread_concurrency=8
set-variable = myisam_sort_buffer_size=64M
set-variable = connect_timeout=10
set-variable = wait_timeout=10
server-id = 1
[isamchk]
set-variable = key_buffer=128M
set-variable = sort_buffer=128M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
[myisamchk]
set-variable = key_buffer=128M
set-variable = sort_buffer=128M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
[WinMySQLadmin]
Server=D:/php/MySQL/bin/mysqld-nt.exe
保存后复制此MY.INI文件到C:Windows ( Windows 2000 下为 C:WINNT)目录下
回到CMD命令行中输入并运行:
net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
将启动 MySQL 服务;
DOS下修改ROOT密码:当然后面安装PHPMYADMIN后修改密码也可以通过PHPMYADMIN修改
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例:给root加个密码chinaser.net
首先在进入CMD命令行,转到MYSQL目录下的bin目录,然后键入以下命令
mysqladmin -uroot password chinaser.net
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
D:phpMySQLbin>mysqladmin -uroot password chinaser.net回车后ROOT密码就设置为chinaser.net了
如果你下载的是 MySQL5.x或者MySQL4.1.x,例mysql-5.0.18-win32:解压后双击执行 Setup.exe ,Next下一步后选择Custom自定义安装,再Next下一步选择安装路径这里我们选择D:phpMySQL,继续Next下一步跳过Sign UP完成安装。
安装完成后会提示你是不是立即进行配置,选择是即可进行配置。当然一般安装后菜单里面也有配置向导MySQL Server Instance Config Wizar,运行后按下面步骤配置并设置ROOT密码即可
Next下一步后选择Standard Configuration
Next下一步,钩选Include .. PATH
Next下一步,设置ROOT密码,建议社设置复杂点,确保服务器安全!
Apply完成后将在D:phpMySQL目录下生成MY.INI配置文件,添加并启动MySQL服务。
四、安装 Zend Optimizer :
下载后得到 ZendOptimizer-2.6.2-Windows-i386.exe ,直接双击安装即可,安装过程要你选择 Web Server 时,选择 IIS ,然后提示你是否 Restart Web Server,选择是,完成安装之前提示是否备份 php.ini ,点确定后安装完成。我这里安装到D:phpZend
以下两步的目录根据你自己的默认WEB站点目录来选,当然也可以选择到D:phpZend目录
Zend Optimizer 的安装向导会自动根据你的选择来修改 php.ini 帮助你启动这个引擎。下面简单介绍一下 Zend Optimizer 的配置选项。以下为本人安装完成后 php.ini 里的默认配置代码(分号后面的内容为注释):
zend_extension_ts="D:phpZendlibZendExtensionManager.dll"
;Zend Optimizer 模块在硬盘上的安装路径。
zend_extension_manager.optimizer_ts="D:phpZendlibOptimizer-2.6.2"
;优化器所在目录,默认无须修改。
zend_optimizer.optimization_level=1023
;优化程度,这里定义启动多少个优化过程,默认值是 15 ,表示同时开启 10 个优化过程中的 1-4 ,我们可以将这个值改为 1023 ,表示开启全部10个优化过程。
调用phpinfo()函数后显示:
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies with Zend Extension Manager v1.0.9, Copyright (c) 2003-2006, by Zend Technologies with Zend Optimizer v2.6.2, Copyright (c) 1998-2006, by Zend Technologies 则表示安装成功。
四.安装GD库
这一步在前面PHP.INI配置中去掉“;extension=php_gd2.dll”前面的;实际上已经安装好了~
[在php.ini里找到"extension=php_gd2.dll"这一行,并且去掉前面的分号,gd库安装完成,用echophpinfo();测试是否成功! ]
五、安装 phpMyAdmin:
下载得到 phpMyAdmin-2.7.0.zip ,将其解压到D:php或者 IIS 根目录,改名phpMyAdmin-2.7.0为phpMyAdmin,并在IIS中建立新站点或者虚拟目录指向该目录以便通过WEB地址访问,这里建立默认站点的phpMyAdmin虚拟目录指向D:phpphpMyAdmin目录通过http://localhost/phpmyadmin/访问
找到并打开D:phpphpMyAdmin目录下的 config.default.php ,做以下修改:
查找:$cfg['PmaAbsoluteUri']
设置你的phpmyadmin的WEB访问URL,如本文中:$cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin/'; 注意这里假设phpmyadmin在默认站点的根目录下
搜索:$cfg['blowfish_secret'] =
设置COOKIES加密密匙,如xqin.com则设置为$cfg['blowfish_secret'] = 'chinaser.net';
搜索$cfg['Servers'][$i]['auth_type'],默认为config,是不安全的,不推荐,推荐使用cookie,将其设置为$cfg['Servers'][$i]['auth_type'] = 'cookie';
注意这里如果设置为config请在下面设置用户名和密码!例如:
$cfg['Servers'][$i]['user'] = 'root'; // MySQL user-----MySQL连接用户
$cfg['Servers'][$i]['password'] = 'chinaser.net';
搜索$cfg['DefaultLang'] ,将其设置为 zh-gb2312 ;
搜索$cfg['DefaultCharset'] ,将其设置为 gb2312 ;
打开浏览器,输入:http://localhost/phpMyAdmin/
首先点击权限进入用户管理,删除除ROOT和主机不为localhost的用户并重新读取用户权限表,这里同样可以修改和设置ROOT的密码,添加其他用户等
phpMyAdmin 的具体功能,请慢慢熟悉,这里不再赘述。至此所有安装完毕。
六、目录结构以及MTFS格式下安全的目录权限设置:
当前目录结构为
D:php
|
+—————+——————+———————+———————+
php4(php5) tmp MySQL Zend phpMyAdmin
D:php设置为管理员和SYSTEM完全权限即可,其他用户均无权限
对于其下的二级目录
php4(或者php5)、 tmp 给EVERYONE完全权限
MySQL 、Zend 管理员和SYSTEM完全权限
phpMyAdminWEB匿名用户读取运行权限
数据库采用mysql(配置过程如有问题可以重启tomcat试一下)
一、下载软件
.J2SE
http://java.sun.com/j2se/.4.2/download.html
2.Tomcat服务器
http://tomcat.apache.org/download-4.cgi
3.mysql服务器
http://dev.mysql.com/downloads/mysql/5.0.html
安装时字符集选latin(应与数据库采用字符集相同)
安装好数据库后用以下命令看数据库采用什么字符集:
help
4.JDBC驱动
http://dev.mysql.com/downloads/connector/j/5.0.html
二、依次安装以上软件
假设安装后的路径分别如下:
.J2SE
C:\j2sdk.4.2
2.Tomcat
C:\Program Files\Apache Software Foundation\Tomcat 4.
3.mysql
C:\Program Files\MySQL\MySQL Server 5.0
三、配置
.设置环境变量
在'我的电脑'上点右键,属性->高级->环境变量,添加如下变量:
PATH=%PATH%;C:\j2sdk.4.2\bin;C:\Program Files\MySQL\MySQL Server 5.0\bin
JAVA_HOME=C:\j2sdk.4.2
CLASSPATH=C:\j2sdk.4.2\lib\tools.jar;mysql-connector-java-5.0.5-bin.jar;mysql-connector-java-5.0.5-bin-g.jar
TOMCAT_HOME=C:\Program Files\Apache Software Foundation\Tomcat 4.
2.jsp连接mysql设置
把
mysql-connector-java-5.0.5-bin.jar
mysql-connector-java-5.0.5-bin-g.jar
拷贝到C:\j2sdk.4.2\lib
把
mysql-connector-java-5.0.5-bin.jar
拷贝到
C:\Program Files\Apache Software Foundation\Tomcat 4.\common\lib
C:\Program Files\Apache Software Foundation\Tomcat 4.\shared\lib
(千万别复制mysql-connector-java-5.0.5-bin-g.jar)
四、JSP连接mysql测试
.建立数据库xia
打开命令行窗口,输入:
mysql -h localhost -u root -p
crate database xia;
use xia;
crate table member(id int(8) primary key,name varchar(0));
insrt into member values(,'yang');
insrt into member(name,id) values('xia',2);
(安全:为数据库设置权限(用户和密码)
命令:grant all privileges on shujuku.* to test@localhost identified by “23456”;
当你执行完这个命令以后,只要你再以用户名:test,密码:23456登录时你就只可以对shujuku这个数据库操作,
这样避开使用root,对数据库的安全有很大帮助.)
2.把以下文件保存为index.jsp到C:\Program Files\Apache Software Foundation\Tomcat 4.\webapps\ROOT
----------------begin----------------------
<%@ page contentType="text/html; charset=gb232" %>
<%@ page language="java" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.*" %>
<%
//驱动程序名
String driverName="com.mysql.jdbc.Driver";
//数据库用户名
String userName="root";
//密码
String userPasswd="";
//数据库名
String dbName="xia";
//表名
String tableName="member";
//联结字符串
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection=DriverManager.getConnection(url);
Statement statement = connection.crateStatement();
String sql="Selct * FROM "+tableName;
ResultSet rs = statement.executeQuery(sql);
//获得数据结果集合
ResultSetMetaData rmeta = rs.getMetaData();
//确定数据集的列数,亦字段数
int numColumns=rmeta.getColumnCount();
// 输出每一个数据值
out.print("id");
out.print("|");
out.print("name");
out.print("
");
while(rs.next()) {
out.print(rs.getString()+" ");
out.print("|");
out.print(rs.getString(2));
out.print("
");
}
out.print("
");
out.print("数据库操作成功,恭喜你");
rs.close();
statement.close();
connection.close();
%>
--------------------end------------------------
输入http://localhost:8080测试
五、安装网站程序
)、拷贝文件
.拷贝C:\Program Files\MySQL\MySQL Server 5.0\data\dataname
2.把
C:\Program Files\Apache Software Foundation\Tomcat 4.\webapps\ROOT\mywebroot
C:\Program Files\Apache Software Foundation\Tomcat 4.\webapps\ROOT\web-inf
目录拷贝过去
3.建立
C:\Program Files\Apache Software Foundation\Tomcat 4.\webapps\ROOT\web-inf\classes
把用到的包拷贝到
C:\Program Files\Apache Software Foundation\Tomcat 4.\webapps\ROOT\web-inf\classes
目录下面
2)、javabean安装配置测试
建立自己的Bean:
.文件名TestBean.java:
--------begin---------
package test;
public class TestBean{
private String name = null;
public TestBean(String strName_p){
this.name=strName_p;
}
public void setName(String strName_p){
this.name=strName_p;
}
public String getName(){
return this.name;
}
}
---------end-------------
2 .编译
将TestBean.java放在c:\test下,使用如下命令编译:
C:\Test>javac TestBean.java
然后在c:\Test下会产生一个编译后的bean文件:TestBean.class
3 .将TestBean.class文件剪切到 C:\Program Files\Apache Software Foundation\Tomcat 4.\webapps\ROOT\WEB-INF\classes\test
4 .新建一个TestBean.jsp文件,文件内容为:
<%@ page import="test.TestBean" %>
<%
TestBean testBean=new TestBean("This is a test java bean.");
%>
Java bean name is: <%=testBean.getName()%>
5 .好了,重启Tomcat,启动浏览器,输入http://localhost:8080/TestBean.jsp
如果看到输出Java bean name is: This is a test java bean.就说明编写的Bean成功了。
六、问题解决
.页面乱码
在jsp文件前面加
<%@page contentType="text/html; charset=gb232"%>
2.mysql返回结果乱码
解决方法一:
连接mysql时(无论在从mysql读还是取数据的情况),指定使用的编码方式为gb232,具体代码如下
//装载mysql-jdbc驱动
Class.forName("com.mysql.jdbc.Driver").newInstance();
//连接数据库
Connection sqlCon = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gb232" );
解决方法二:
如果方法一不行那么在方法一的基础上对读入的字符串进行强制编码方式转换。
代码示例如下:
String name = rst.getString("name");
name= new String(name.getBytes("ISO-8859-"),"gb232");
注:代码也可以为:String name =new String( rst.getString("name").getBytes("ISO-8859-"),"gb232"));其中rst为返回的resultset,ISO-8859-为mysql默认的编码方式,代码的目的是把以ISO-8859-的编码转换为gb232编码方式,这样强制转换,可以解决一部分问题,如果结合方法一,应该可以解决中文乱码问题。
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虚拟主机工作很正常
在IIS基础上建立PHP环境总会出现这样或那样的问题,很多问题都比较难解决,笔者最近在建立IIS下PHP环境时就遇到了出现访问出错的问题,所有php页面文件无法正常显示出来,而ASP还有HTML静态页面能够顺利访问。下面就请各位IT168的读者随我一起从权限入手解决IIS+PHP环境故障。
一、故障现象:
笔者搭建环境采用的操作系统是windows XP,IIS是系统自带的IIS 5,PHP版本是5.2。按照网上的步骤笔者安装PHP程序并配置了IIS中的相应映射参数建立了PHP环境,并且生成了名为index.php的文件作为测试用。在实际使用中却发现在服务器上通过浏览器访问http://127.0.0.1/index.php和http://localhost/index.php均出现错误提示,具体页面显示为“无权查看网页,基于所提供的凭据,您没有权限查看此目录或网页,HTTP错误 401.3——访问被资源ACL拒绝”。(如图1)
为了进一步排查故障笔者又在IIS中通过在默认网站上点“浏览”来查看,结果收到的反馈消息和上面的一样,也是“HTTP错误 401.3——访问被资源ACL拒绝”。(如图2)
然而在同一个站点的其他页面文件,只要不是PHP语言建立的都可以正常浏览和查看,包括HTML静态页面和ASP动态网页文件。
二、修改验证方式解决问题:
既然IIS反馈回的信息是“HTTP错误 401.3——访问被资源ACL拒绝”,所以笔者也针对访问权限进行排查故障工作。
第一步:在IIS中的默认网站上右键选择“属性”来查看该站点的相关属性信息。(如图3)
第二步:在打开的默认网站属性处我们找到“目录安全性”标签,然后点“匿名访问和身份验证控制”旁边的“编辑”按钮。(如图4)
第三步:笔者在“身份验证方法”处看到了默认情况下IIS是通过建立的IUSER_CHINA-914340F04以及相应的密码访问IIS页面信息的,这个帐户也是由IIS自动创建的。(如图5)
第四步:为了方便排查故障,特别是为了避免权限访问造成的问题,笔者在“身份验证方法”处点了“集成Windows身份验证”,这个选项的意思就是在本机或者网络有用户访问该站点里的页面文件时,将提示要求输入正确的Windows系统登录口令,通过Windows登录身份来验证是否容许浏览页面。(如图6)
第五步:“确定”完毕后提示要求将下属目录和页面文件也按照这种规则生效,继承覆盖设置。我们同意即可。(如图7)
第六步:修改完验证采用“集成Windows身份验证”后在IIS中浏览默认网站就没有任何问题了,可以顺利的显示出index.php文件中的PHP页面内容。(如图8)
第七步:一般情况下在IIS中调用查看该页面是不需要进行集成Windows身份验证的,所以没有出现要求输入具备相应权限的Windows系统帐户和密码,不过如果要是通过网络或者浏览器访问就需要填写具有足够权限的Windows系统帐户和密码。(如图9)
第八步:如果身份验证通过了Windows系统的检查,那么正确的页面信息也将显示出来。(如图10)
至此我们就解决了IIS中PHP页面访问所出现的“HTTP错误 401.3——访问被资源ACL拒绝”故障。不过这种设置在访问上带来了一定的不方便,必须知道Windows系统的帐户和密码才可以浏览,要知道一般网站都是给外部用户使用的,他们并不会知道服务器的密码与管理帐户,就算知道了也会给服务器的安全带来巨大的隐患。所以我们还需要从权限入手,解决问题。
三、修改匿名访问帐号解决实际问题:
既然通过修改访问方式为“集成Windows身份验证”能够解决实际问题,这就说明问题的根源不在PHP上,而在于权限的设置。
我们再次尝试在IIS中的默认网站上右键选择“属性”来查看该站点的相关属性信息。找到“目录安全性”标签,然后点“匿名访问和身份验证控制”旁边的“编辑”按钮。将“身份验证方法”处看到的IUSER_CHINA-914340F04帐户通过“浏览”按钮选择管理员administrator帐户,密码也设置相应的密码。(如图11)
再次浏览PHP文件你会发现一切顺利,PHP文件的内容可以被正常显示。(如图12)通过浏览器访问页面也没有任何问题,PHP内容显示无误。(如图13)
可见将默认的IUSER_CHINA-914340F04帐户修改为administrator管理员权限的帐户后访问就没有任何问题了,同时也不会出现上面修改验证方式时出现的帐户密码确认对话框,外部用户访问顺顺利利。不过这种方法非常不安全,毕竟administrator的权力太大,权限太高,可以轻松实现对页面的修改和删除操作。
四、修改文件夹权限解决问题:
上面两种修改办法都可以解决问题,这更加说明了问题出在权限而不是PHP的安装上。从网上找到的资料就是需要容许IUSER_CHINA-914340F04这个IIS临时调用帐号具备对IIS发布目录的访问权限,如果是PHP页面还需要具备执行权限。
第一步:由于笔者没有修改默认的IIS发布目录路径,所以我们进入到c:\inetpub目录,找到WWWROOT目录,在其上点鼠标右键选择“共享和安全”。(如图14)
第二步:将对应的IUSER_CHINA-914340F04帐户添加到对文件夹访问的属性窗口,并给予读取和运行,列出文件夹目录以及读取权限。(如图15)
第三步:另外为了保险还应该将IUSER_CHINA-914340F04帐户添加到对PHP文件夹访问的属性窗口中,给予并给予读取和运行,列出文件夹目录以及读取权限。(如图16)
第四步:接下来就应该可以顺利访问了,浏览PHP页面不会出现诸如“无权查看网页,基于所提供的凭据,您没有权限查看此目录或网页,HTTP错误 401.3——访问被资源ACL拒绝”的错误提示了。
小提示:如果还是有问题我们只需要将IUSER_CHINA-914340F04帐户的密码重新设置下。(如图17)最后再在“身份验证方法”处的IUSER_CHINA-914340F04帐户密码处输入相应的字符即可,记得要把容许IIS控制密码前的对勾去掉。(如图18)
这种方法解决了故障问题后可以实现外部用户不需要输入任何验证信息就可以顺利访问站点的目的,而且也不会给网站带来极大的安全隐患。
五、总结:
实际上本文是循序渐进的解决了PHP在IIS环境下的“无权查看网页,基于所提供的凭据,您没有权限查看此目录或网页,HTTP错误 401.3——访问被资源ACL拒绝”问题。相比之下第一种和第二种用于定位问题所在,在实际中并不可取,因为这样不方便用户浏览页面,而且在容易造成安全隐患;最后第三种方法才是真正的解决方案。不过本文介绍的三种方法是为了让读者开阔思路,真正从实例理解IIS中相应的设置信息,在关键时候可以解决大问题。