注:此设定对应APACHE 和PHP VC6 线程安全程式。
1)、将PHP的压缩包zip解压到一个目录下,推荐:“E:\PHP”,pharmar的是D:\Program Files\Php。
2)、将PHP目录(E:\PHP)下的 php.ini-dist 文件重命名为 php.ini,PHP的配置文件就是它,修改以下几个地方
①extension_dir="E:\ Php\ext" ,指向php文件夹下放置“php_*.dll”文件的路径。PHP4和PHP5的路径在这里有所区别。
②doc_root="E:\ Apache" ,指向前面apache设置的首页位置;
③default_charset="gb2312" ,修改默认字符集,这里,如果前面有分号“;”,去掉这个分号;
④register_globals=Off 改为 register_globals=On ,使传递全局变量有效;
⑤extension=php_dba.dll 如果前面有分号,取消分号,以下同;
extension=php_dbase.dll
extension=php_gd2.dll GD库做图,一般用于图形验证码;
extension=php_mysql.dll 用于连接MYSQL数据库;
3) 、修改好后把 php.ini 文件复制到 C:\WINDOWS\ 目录里:
4)、将PHP目录下的 php5ts.dll 文件拷贝到 C:\WINDOWS\system32 目录。
5)、最后修改 Apache 的 httpd.conf 文件。在该文件的末尾添加如下2行,表示以模块方式安装PHP进入Apache:
LoadModule php5_module E:/Php/php5apache2_2.dll
AddType application/x-httpd-php .php
注意:第一行的目录路径要更新为当前版本的apache动态链接库,比如这里我使用的是apache2.2.17版本和php5.3.6,那这个文件必须是php5apache2_2.dll,而不能是php5apache.dll、php5apache2.dll等。第二行为php脚步的后缀。
php4版中,需要添加一行 AddType mod_php4.c,而在php5中,就不需要这样的一行 AddType mod_php5.c了,php5已经集成,否则 apache 启动不了。
以上就完成了apache和php的配置过程了,重启apache。在服务器的默认目录“E:\ Apache\htdocs”里新建文件index.php,写上如下代码:
<?php
phpinfo();
?>
在浏览器地址栏里输入 http://127.0.0.1/ 或 http://localhost/ ,你就会看到php版本信息了。到此为止,php和apache就已经成功的安装了。
这里有个细节:apache的配置文件 httpd.conf 中的目录分割符号是“/”,而 PHP 的配置文件 php.ini 里的目录则要求是反斜线 “ \”,不要搞混了哦。
您试图从目录中执行CGI、ISAPI 或其他可执行程序,但该目录不允许执行程序
本人使用WIN2003 INTERNET信息服务(IIS)管理器建立一个网站虚拟目录,结果浏览网页时出现错误,错误提示信息大体如此:
该页无法显示
您试图从目录中执行 CGI、ISAPI 或其他可执行程序,但该目录不允许执行程序。
请尝试以下操作:
* 如果您认为该目录应该允许执行访问权限,请与网站管理员联系。
HTTP 错误 403.1 - 禁止访问:执行访问被拒绝。
Internet 信息服务 (IIS)
技术信息(为技术支持人员提供)
* 转到 Microsoft 产品支持服务并搜索包括“HTTP”和“403”的标题。
* 打开“IIS 帮助”(可在 IIS 管理器 (inetmgr) 中访问),然后搜索标题为“配置 ISAPI 扩展”、“配置 CGI 应用程序”、“使用网站权限保护站点”和“关于自定义错误消息”的主题。
* 在 IIS 软件开发工具包 (SDK) 或 MSDN Online Library 中,搜索标题为“Developing ISAPI Extensions”、“ISAPI and CGI”和“Debugging ISAPI Extensions and Filters”的主题。
以下是解决的方法:
单击操作系统的开始→程序→管理工具→Interneter服务器管理,在IIS中选择您的站点然后右键→属性,在虚拟目录选项中,查看“执行权限”是否设置为“无”,这里改成“纯脚本”保存即可。
如下:
如果还不成,那么,在点击上图中的“创建”按钮,创建一个应用程序名称,这样就可以了!
通过上述两步的操作,就没有问题了,我是这样来解决的!
phpdesigner
php在能嵌入到其他网上语言和技术。phpdesigner 不仅支持php ,也支持其他网络语言像html ,xhtml, xml,css和javascript , vbscript,java, c #,perl , python等!
由于可以搭配使用的相关免费资源相当的多,PHP 的网页设计越来越多人在学习了,MPS PHP DESIGNER 是针对 PHP 网页的编写所设计的程序,它内建一系列的指令码、PHP4 原始码数据库、语法高亮度显示功能、FTP 客户端...等,不管您是 PHP 网页设计高手,或者是刚入门的新手,您都可以使用这套软件来帮您设计网页程序(SQL、HTML 亦支持)。
phpDesigner 7支持PHP中你最喜欢的框架,它也支持任何流行的JavaScript框架,如jQuery的全
雅虎UI库,ExtJS原型和MooTools。
最新版phpdesigner 2008,是完整的集成开发环境,对于php无论初学者和专业开发人员,帮助您提高编辑过程中,分析,调试及出版应用和网站采用php和其它网络语言!
官方站点:
www.mpsoftware.dk/phpdesigner.php
摘要: jquery 使用方法 jQuery是目前使用最广泛的javascript函数库。据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库。微软公司甚至把jQuery作为他们的官方库。对于网页开发者来说,学会jQuery是必要的。因为它让你了解业界最通用的技术,为将来学习更高级的库打下基础,并且确实可以很轻松地做出许多复杂的效果。 一...
阅读全文
1、/分区。用于存储系统文件。 2、swap,即交换分区,也是一种文件系统,它的作用是作为Linux的虚拟内存。 在Windows下,虚拟内存是一个文件:pagefile.sys;而Linux下,虚拟内存需要使用独立分区,这样做的目的据说是为了提高虚拟内存的性能。 3、/home:是用户文件夹所在的地方。如果独立划分/home,即使Ubuntu不能启动,也可以用Live CD启动来取得自己的文件资料。 4、/boot:包含了操作系统的内核和在启动系统过程中所要用到的文件。 在很多老旧的教程中,都会让用户在/boot目录上挂载一个大小为100MB左右的独立分区,并推荐把该/boot放在硬盘的前面——即1024柱面之前。事实上,那是Lilo无法引导1024柱面后的操作系统内核的时代的遗物了。当然,也有人说,独立挂载/boot的好处是可以让多个Linux共享一个/boot。 其实,无论是基于上述的哪种理由,都没有必要把/boot分区独立出来。首先,Grub可以引导1024柱面后的Linux内核;其次,即使是安装有多个Linux,也完全可以不共享/boot。因为/boot目录的大小通常都非常小,大约20MB,分一个100MB的分区无疑是一种浪费,而且还把把硬盘分的支离破碎的,不方便管理。另外,如果让两个Linux共享一个/boot,每次升级内核,都会导致Grub的配置文件冲突,带来不必要的麻烦。而且,不独立/boot分区仅仅占用了根目录下的大约20MB左右的空间,根本不会对根目录的使用造成任何影响。 但值得注意的是,随着硬盘容量的增大,无法引导Linux内核的现象再次出现,这也就是著名的137GB限制。很遗憾,Grub是无法引导137GB之后的分区中的Linux内核的。如果你不巧遇到了这样的情况,你就要考虑把/boot独立挂载到位于137GB前方的独立分区中,或者索性就把 Linux的分区都往前移动,让根目录所在分区位于137GB之前。 5、/usr/local:是 Linux系统存放软件的地方。 建议把/opt,/usr或/usr/local独立出来的教程,基本上也是非常老的了。使用Ubuntu时,我们一般都是使用系统的软件包管理器安装软件,很少自己编译安装软件。而建议独立/usr,/opt,/usr/local的理由无非是为了重装系统时不再重新编译软件而直接使用早先编译的版本。不过对于大多数普通用户来说,这个建议通常是没有意义的。 6、/var:是系统日志记录分区。 7、/tmp分区,用来存放临时文件。 建议把/var和/tmp独立出来的教程通常是面向服务器的。因为高负载的服务器通常会产生很多日志文件、临时文件,这些文件经常改变,因此把/var,/tmp独立出来有利于提高服务器性能。但如果你用Ubuntu是做桌面的,或从来不关心过系统日志这东西,就没有必要独立的为/var和/tmp挂载分区。
还有些老旧的教程中建议把Linux安装在主分区中,或在/boot下挂载一个主分区。事实上,这也是不需要的。Linux的所有分区都可以位于逻辑分区中。所以请放心的把Linux安装在逻辑分区中吧。
---
Linux的文件系统(分区格式)主要有ext3、ReiserFS、XFS、JFS等。同时Linux也可以读写使用FAT、FAT32和NTFS文件系统的分区。
Ubuntu默认的文件系统是ext3。
或许有人会告诉你其他文件系统会有什么什么优点,ext3会有什么什么不好,但如果你对文件系统并不了解的话,我的建议就是使用默认的ext3,默认的设置可能不一定是性能最好的,但对普通用户一定是最稳定最安全最适合的。
最大分区大小:ext3是4TB,ReiseFS是16TB。FAT32在Windows XP和Windows 2000里的最大分区是32GB;而Linux中的FAT32则可以支持到2TB。 最大文件大小:ext3是2GB-4GB,ReiseFS是8TB,FAT32是4GB。
---
如果你准备在硬盘里只安装Ubuntu一个操作系统的话,建议你采用三分区方案: 1)“/”分区:使用ext3文件系统;分区容量为10GB-15GB。 2)“swap”分区:用于交换空间。内存小于或等于 512MB,swap分区容量为内存大小的2倍;内存大于512MB的,swap分区容量等于内存大小。 3)“/home”分区:使用ext3文件系统;分区容量为“/”和“swap”以外的剩余空间
在linux系统中至少必须有两个挂载点(磁盘分区),分别是 / 及 swap ,其余是否要将其他的挂载点独立分割出来则视你的规划需求而定。可参考以下建议:
swap的大小约等同你的内存大小,或稍大
初次接触的新手或硬盘空间有限 Desktop的安装建议: 挂载点 装置 说明 / /dev/hda1 可用空间 - swap大小后的所有空间 swap /dev/hda2 大约内存大小 建议至少512Mb
高级用户 Desktop的安装建议: 挂载点 装置 说明 / /dev/hda1 15G /home /dev/hda2 最大的剩余空间 /boot /dev/hda3 128MB左右 swap /dev/hda5 大约内存大小(建议至少512MB)
高级用户 Server的安装建议: 挂载点 装置 说明 / /dev/hda1 15G /home /dev/hda2 最大的剩余空间 /boot /dev/hda3 128MB左右 swap /dev/hda5 大约内存大小(建议至少512MB) /var /dev/hda6 视服务器功能决定大小
安装Liunx Ubuntu磁盘分区的配置与建议事项就说到这里,有了以上的相关说明相信要将自己的硬盘规划好,应该不会是件难事啦。
Linux 规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 个号码。以第一个 IDE 硬盘为例说明,主分区(或者扩展分区)占用了 hda1、hda2、hda3、hda4,而逻辑分区占用了 hda5 到 hda16 等 12 个号码。因此,Linux 下面每一个硬盘总共最多有 16 个分区。 因此 hda1- hda4 是主区的意思。 hda5以后是逻辑分区!! |
1.消失了的分区
在WinPE下,我将一块硬盘分成一个主分区和四个逻辑分区,主分区指派驱动器号C,四个逻辑分区均不指派驱动器号:这会出现什么情况?结果是在我的电脑中你只能看到一个C盘,其他四个盘都不见了:2.将分区装入文件夹接下来,我在C盘建了boot,home,user,tmp四个文件夹:再打开磁盘管理,按下边的步骤将第一个逻辑分区装入一个空白的NTFS文件夹中(C:\boot):再按上边同样的步骤,将第二个逻辑分区装入C:\home文件夹中,将第三个逻辑分区装入C:\user文件夹中。3.有什么变化了吗?这会发生什么变化?打开C盘,好像看不出有什么变化:再打开boot文件夹,建一个txt文件,好像一切仍是正常:打开磁盘管理,我们为第一个逻辑驱动器指派一个驱动器号D,到我的电脑中打开D盘看下: txt不是在C:\boot文件夹中吗?怎么到D盘来了?再到C:\boot看下,txt仍在,对其进行修改保存,再看D:\mzwu.com.txt,也被修改了! 想到什么了吗?没错,打开C:\boot,实际打开的是D盘,换句话说,C:\boot是D盘的入口,以此类推,home变成了第二个逻辑分区的入口,user变成了第三个逻辑分区的入口。 再看下将分区装入C:\boot前后,C:\boot文件夹属性的变化:4.Linux分区和挂载点Linux下将分区挂载到挂载点,和上边Windows下将磁盘分区装入空白的NTFS文件夹其实是一样的。Linux根目录就是上边的C盘,不同的是Windows可以为其他分区指派驱动器号,Linux不行。一个挂载点就是一个文件夹,将分区挂载到一个挂载点,挂载点就成了分区的入口。没有挂载分区的挂载点将使用根目录的空间,没有挂载到挂载点的分区是无法访问的,如上边第四个逻辑分区。
jQuery CSS 操作
jQuery 拥有三种供 CSS 操作的重要函数:
- $(selector).css(name,value)
- $(selector).css({properties})
- $(selector).css(name)
CSS 操作实例
函数 css(name,value) 为所有匹配元素的给定 CSS 属性设置值:
实例
$(selector).css(name,value) $("p").css("background-color","yellow");
TIY
函数 css({properties}) 同时为所有匹配元素的一系列 CSS 属性设置值:
实例
$(selector).css({properties}) $("p").css({"background-color":"yellow","font-size":"200%"});
TIY
函数 css(name) 返回指定的 CSS 属性的值:
实例
$(selector).css(name) $(this).css("background-color");
TIY
jQuery Size 操作
jQuery 拥有两种供尺寸操作的重要函数:
- $(selector).height(value)
- $(selector).width(value)
Size 操作实例
函数 height(value) 设置所有匹配元素的高度:
实例
$(selector).height(value) $("#id100").height("200px");
TIY
函数 width(value) 设置所有匹配元素的宽度:
实例
$(selector).width(value) $("#id200").width("300px");
TIY
jQuery CSS 函数 - 来自本页
CSS 属性 | 描述 |
---|
$(selector).css(name,value) | 为匹配元素设置样式属性的值 |
$(selector).css({properties}) | 为匹配元素设置多个样式属性 |
$(selector).css(name) | 获得第一个匹配元素的样式属性值 |
$(selector).height(value) | 设置匹配元素的高度 |
$(selector).width(value) | 设置匹配元素的宽度 |
(selector) jQuery 元素选择器语法
<html>
<body>
<?php
$d=date("D");
if ($d=="Fri")
echo "Have a nice weekend!";
elseif ($d=="Sun")
echo "Have a nice Sunday!";
else
echo "Have a nice day!";
?>
<?php
$names[0] = "Peter";
$names[1] = "Quagmire";
$names[2] = "Joe";
echo $names[1] . " and " . $names[2] . " are ". $names[0] . "'s neighbors";
?>
<?php
$i=0;
do
{
$i++;
echo "The number is " . $i . "<br />";
}
while ($i<5);
?>
<?php
for ($i=1; $i<=5; $i++)
{
echo "Hello World!<br />";
}
?>
<?php
$arr=array("one", "two", "three");
foreach ($arr as $value)
{
echo "Value: " . $value . "<br />";
}
?>
<?php
function writeMyName($fname,$punctuation)
{
echo $fname . " Yang" . $punctuation . "<br />";
}
echo "My name is ";
writeMyName("David",".");
echo "My name is ";
writeMyName("Mike","!");
echo "My name is ";
writeMyName("John","...");
?>
<?php
echo date("Y/m/d");
echo "<br />";
echo date("Y.m.d");
echo "<br />";
echo date("Y-m-d");
?>
<?php
$tomorrow = mktime(0,0,0,date("m"),date("d")+1,date("Y"));
echo "Tomorrow is ".date("Y/m/d", $tomorrow);
?>
<?php
//This is a comment
/*
This is
a comment
block
*/
?>
<a href="default.php">Home</a> |
<a href="about.php">About Us</a> |
<a href="contact.php">Contact Us</a>
<h1>Welcome to my home page</h1>
<p>Some text</p>
</body>
</html>
<html>
<body>
<?php
class smtp
{
/* Public Variables */
var $smtp_port;
var $time_out;
var $host_name;
var $log_file;
var $relay_host;
var $debug;
var $auth;
var $user;
var $pass;
/* Private Variables */
var $sock;
/* Constractor */
function smtp($relay_host = "", $smtp_port = 25,$auth = false,$user,$pass)
{
$this->debug = FALSE;
$this->smtp_port = $smtp_port;
$this->relay_host = $relay_host;
$this->time_out = 30; //is used in fsockopen()
$this->auth = $auth;//auth
$this->user = $user;
$this->pass = $pass;
$this->host_name = "localhost"; //is used in HELO command
$this->log_file = "";
$this->sock = FALSE;
}
/* Main Function */
function sendmail($to, $from, $subject = "", $body = "", $mailtype, $cc = "", $bcc = "", $additional_headers = "")
{
$mail_from = $this->get_address($this->strip_comment($from));
$body = ereg_replace("(^|(\r\n))(\.)", "\1.\3", $body);
$header .= "MIME-Version:1.0\r\n";
if($mailtype=="HTML")
{
$header .= "Content-Type:text/html\r\n";
}
$header .= "To: ".$to."\r\n";
if ($cc != "")
{
$header .= "Cc: ".$cc."\r\n";
}
$header .= "From: $from<".$from.">\r\n";
$header .= "Subject: ".$subject."\r\n";
$header .= $additional_headers;
$header .= "Date: ".date("r")."\r\n";
$header .= "X-Mailer:By Redhat (PHP/".phpversion().")\r\n";
list($msec, $sec) = explode(" ", microtime());
$header .= "Message-ID: <".date("YmdHis", $sec).".".($msec*1000000).".".$mail_from.">\r\n";
$TO = explode(",", $this->strip_comment($to));
if ($cc != "")
{
$TO = array_merge($TO, explode(",", $this->strip_comment($cc)));
}
if ($bcc != "")
{
$TO = array_merge($TO, explode(",", $this->strip_comment($bcc)));
}
$sent = TRUE;
foreach ($TO as $rcpt_to)
{
$rcpt_to = $this->get_address($rcpt_to);
if (!$this->smtp_sockopen($rcpt_to))
{
$this->log_write("Error: Cannot send email to ".$rcpt_to."\n");
$sent = FALSE;
continue;
}
if ($this->smtp_send($this->host_name, $mail_from, $rcpt_to, $header, $body))
{
$this->log_write("E-mail has been sent to <".$rcpt_to.">\n");
}
else
{
$this->log_write("Error: Cannot send email to <".$rcpt_to.">\n");
$sent = FALSE;
}
fclose($this->sock);
$this->log_write("Disconnected from remote host\n");
}
return $sent;
}
/* Private Functions */
function smtp_send($helo, $from, $to, $header, $body = "")
{
if (!$this->smtp_putcmd("HELO", $helo))
{
return $this->smtp_error("sending HELO command");
}
#auth
if($this->auth)
{
if (!$this->smtp_putcmd("AUTH LOGIN", base64_encode($this->user)))
{
return $this->smtp_error("sending HELO command");
}
if (!$this->smtp_putcmd("", base64_encode($this->pass)))
{
return $this->smtp_error("sending HELO command");
}
}
if (!$this->smtp_putcmd("MAIL", "FROM:<".$from.">"))
{
return $this->smtp_error("sending MAIL FROM command");
}
if (!$this->smtp_putcmd("RCPT", "TO:<".$to.">"))
{
return $this->smtp_error("sending RCPT TO command");
}
if (!$this->smtp_putcmd("DATA"))
{
return $this->smtp_error("sending DATA command");
}
if (!$this->smtp_message($header, $body))
{
return $this->smtp_error("sending message");
}
if (!$this->smtp_eom())
{
return $this->smtp_error("sending <CR><LF>.<CR><LF> [EOM]");
}
if (!$this->smtp_putcmd("QUIT"))
{
return $this->smtp_error("sending QUIT command");
}
return TRUE;
}
function smtp_sockopen($address)
{
if ($this->relay_host == "")
{
return $this->smtp_sockopen_mx($address);
}
else
{
return $this->smtp_sockopen_relay();
}
}
function smtp_sockopen_relay()
{
$this->log_write("Trying to ".$this->relay_host.":".$this->smtp_port."\n");
$this->sock = @fsockopen($this->relay_host, $this->smtp_port, $errno, $errstr, $this->time_out);
if (!($this->sock && $this->smtp_ok()))
{
$this->log_write("Error: Cannot connenct to relay host ".$this->relay_host."\n");
$this->log_write("Error: ".$errstr." (".$errno.")\n");
return FALSE;
}
$this->log_write("Connected to relay host ".$this->relay_host."\n");
return TRUE;;
}
function smtp_sockopen_mx($address)
{
$domain = ereg_replace("^.+@([^@]+)$", "\1", $address);
if (!@getmxrr($domain, $MXHOSTS))
{
$this->log_write("Error: Cannot resolve MX \"".$domain."\"\n");
return FALSE;
}
foreach ($MXHOSTS as $host)
{
$this->log_write("Trying to ".$host.":".$this->smtp_port."\n");
$this->sock = @fsockopen($host, $this->smtp_port, $errno, $errstr, $this->time_out);
if (!($this->sock && $this->smtp_ok()))
{
$this->log_write("Warning: Cannot connect to mx host ".$host."\n");
$this->log_write("Error: ".$errstr." (".$errno.")\n");
continue;
}
$this->log_write("Connected to mx host ".$host."\n");
return TRUE;
}
$this->log_write("Error: Cannot connect to any mx hosts (".implode(", ", $MXHOSTS).")\n");
return FALSE;
}
function smtp_message($header, $body)
{
fputs($this->sock, $header."\r\n".$body);
$this->smtp_debug("> ".str_replace("\r\n", "\n"."> ", $header."\n> ".$body."\n> "));
return TRUE;
}
function smtp_eom()
{
fputs($this->sock, "\r\n.\r\n");
$this->smtp_debug(". [EOM]\n");
return $this->smtp_ok();
}
function smtp_ok()
{
$response = str_replace("\r\n", "", fgets($this->sock, 512));
$this->smtp_debug($response."\n");
if (!ereg("^[23]", $response))
{
fputs($this->sock, "QUIT\r\n");
fgets($this->sock, 512);
$this->log_write("Error: Remote host returned \"".$response."\"\n");
return FALSE;
}
return TRUE;
}
function smtp_putcmd($cmd, $arg = "")
{
if ($arg != "")
{
if($cmd=="")
{
$cmd = $arg;
}
else
{
$cmd = $cmd." ".$arg;
}
}
fputs($this->sock, $cmd."\r\n");
$this->smtp_debug("> ".$cmd."\n");
return $this->smtp_ok();
}
function smtp_error($string)
{
$this->log_write("Error: Error occurred while ".$string.".\n");
return FALSE;
}
function log_write($message)
{
$this->smtp_debug($message);
if ($this->log_file == "")
{
return TRUE;
}
$message = date("M d H:i:s ").get_current_user()."[".getmypid()."]: ".$message;
if (!@file_exists($this->log_file) || !($fp = @fopen($this->log_file, "a")))
{
$this->smtp_debug("Warning: Cannot open log file \"".$this->log_file."\"\n");
return FALSE;;
}
flock($fp, LOCK_EX);
fputs($fp, $message);
fclose($fp);
return TRUE;
}
function strip_comment($address)
{
$comment = "\([^()]*\)";
while (ereg($comment, $address))
{
$address = ereg_replace($comment, "", $address);
}
return $address;
}
function get_address($address)
{
$address = ereg_replace("([ \t\r\n])+", "", $address);
$address = ereg_replace("^.*<(.+)>.*$", "\1", $address);
return $address;
}
function smtp_debug($message)
{
if ($this->debug)
{
echo $message;
}
}
}
$smtpserver = "smtp.126.com";//SMTP服务器
$smtpserverport = 25;//SMTP服务器端口
$smtpusermail = "##########@126.com";//SMTP服务器的用户邮箱
$smtpemailto = "###########@qq.com";//发送给谁
$smtpuser = "EEEEEEEEEE@126.com";//SMTP服务器的用户帐号
$smtppass = "#########";//SMTP服务器的用户密码
$mailsubject = "中文";//邮件主题
$mailbody = "<h1>中文rgser</h1>";//邮件内容
$mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件
##########################################
$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证.
$smtp->debug = TRUE;//是否显示发送的调试信息
$smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype);
?>
</body>
</html>
下载 rpm安装包后,关闭浏览器,然后再装就好了.