教你IIS6的PHP最佳配置方法

 更新时间:2016年11月25日 15:29  点击:1963

虽然 LAMP 组合很不错,但是假如想要架设一台同时支持PHP、ASP、ASP.NET、JSP、Perl的Web虚拟主机服务器,还是用 Windows 2003的IIS 6最好。网上有很多介绍在IIS 6上配置PHP的文章,但是那些方法不是性能不好,就是升级麻烦。下面的方法可以让你在第一次配置好后,能够非常方便的进行升级。
  这里所说的升级,是指从某个php4版本升级到另一个php4版本,或者从某个php5版本升级到另一个php5版本,而不是指从php4升级到php5。

  预备:

  1、一台安装好的 Windows 2003 服务器,并且已经安装了 IIS 6。

  2、下载 windows 版的 PHP 二进制压缩包

  安装:

  解压缩 PHP 二进制压缩包到 C:php 目录下(这里假设 C: 盘是系统盘,即安装了Windows 系统的盘,假如系统盘是 D: 盘,则解压缩到 D:php 目录下,以此类推,下同)。

  然后打开“我的电脑”->“属性”->“高级”->“环境变量”->“系统变量”->“path”,编辑其值,在前面增加下面的路径地址:

  C:php;C:phpdlls;C:phpextensions;C:phpsapi;

  将 php.ini-dist 或 php.ini-recommended 复制到 C:Windows 目录下,并改名为 php.ini,一般正式发布网站的服务器用 php.ini-dist,而作为调试用的服务器用 php.ini-recommended 更好。当然一般情况下,这个 php.ini 还是需要根据实际情况来修改的。

  下面来介绍一下几个必要的修改选项:

  extension_dir = "C:phpextensions"

  这个是 PHP 扩展所放置的目录,请确保跟你实际安装的目录相同。

  extension=php_mbstring.dll

  ;extension=php_big_int.dll

  extension=php_bz2.dll

  extension=php_cpdf.dll

  extension=php_crack.dll

  extension=php_curl.dll

  extension=php_db.dll

  extension=php_dba.dll

  extension=php_dbase.dll

  extension=php_dbx.dll

  extension=php_domxml.dll

  ;extension=php_exif.dll

  ;extension=php_fdf.dll

  ;extension=php_filepro.dll

  extension=php_gd2.dll

  extension=php_gettext.dll

  extension=php_hyperwave.dll

  extension=php_iconv.dll

  ;extension=php_ifx.dll

  ;extension=php_iisfunc.dll

  extension=php_imap.dll

  ;extension=php_interbase.dll

  extension=php_java.dll

  extension=php_ldap.dll

  ;extension=php_mcrypt.dll

在线编辑器FCKeditor 2.0PHP环境下试用小记
  一、简介
  2004年11月30日推出了FCKeditor 2.0 RC1版,据其官方网站称:这是FCKeditor 2.0版的第一个稳定版本。大家现在可以考虑正式使用它了。目前支持的后台语言有ASP、ASP.Net、PHP和ColdFusion。

  笔者在经过简单的试用发现,在线编辑器2.0版确实比1.6版有了许多的改进。首先是FCKeditor的文件结构更加清楚,可以更方便地将其部署在自己的系统中。另外2.0版终于支持了Firefox 1.0浏览器,这将为FCKeditor赢得更多的使用者。废话不多说,让我们赶紧来学习如何安装、配置FCKeditor 2.0吧。

  二、安装与范例

  首先到http://sourceforge.net/projects/fckeditor/ 下载FCKeditor 2.0 RC1(554K),并将其解压缩到你的网站目录里面,并将文件夹名改为FCKeditor。举例来说,假如你的网站放在shaof这个目录下面,则在这个目录中建立3个子目录:


n FCKeditor:存放从网站上下载的FCKeditor在线编辑器
n upimages:用于存放上传的图片
n admin:里面存放测试页面


  网站的结构如下:

/FCKeditor //FCKeditor目录
/UserFiles //上传文件目录
/admin
test.php //提交数据页面
testsubmit.php //显示数据页面


  进入到FCKeditor目录下,打开_samples目录,里面含有各种编程语言调用FCKeditor的范例程序页面,其中php目录中包含着一些使用PHP来调用FCKeditor的范例,大家可以看一下,了解FCKeditord的调用方法,下面是我简写了一个test.php程序,放在网站根目录下的admin目录中:


if($_POST["ADD"]){
$Content=$_POST['EditorDefault'];
echo $Content;
//变量$Content就是我们在FCKeditord里面编辑的内容,这里可以将其保存到数据库,代码省略。
}

  三、配置在线编辑器

  FCKeditor 2.0的配置文件为FCKeditorfckconfig.js,其中几个重要的配置项目如下:


  1、工具栏的设置


  默认情况下,FCKeditor会调用如下的工具栏按钮,大家可以根据自己的需要进行增减。需要注重的是,2.0版与1.6版的按钮并不完全相同,有些按钮以及删除或者改名了。


//##
//## Toolbar Buttons Sets
//##
FCKConfig.ToolbarSets["Default"] = [
['Source','-','Save','NewPage','Preview'],
['Cut','Copy','Paste','PasteText','PasteWord','-','Print'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
['OrderedList','UnorderedList','-','Outdent','Indent'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
['Link','Unlink'],
['Image','Table','Rule','SpecialChar','Smiley'],
['Style','FontFormat','FontName','FontSize'],
['TextColor','BGColor'],
['About']
] ;


  2、简体中文设置

  编辑edit/lang/fcklanguagemanager.js

将 Sajax 连接到相册

  利用刚刚创建的代码,我们将用 Sajax 迅速把相册从多页面应用程序转化成活动的 Ajax 应用程序。

  因为相册主要有两个函数,get_table() 和 get_image(),这也是需要用 Sajax 导出的全部函数。事实上,为了通过 Sajax 调用这些函数,这些函数本身基本上不需要修改,很快我们就会看到,我们只需要修改生成的链接即可。

  清单 9. Sajax 相册的头部

<?php
require("Sajax.php");

function get_image () { } // Defined later
function get_thumbs_table () { } // Defined later

// Standard Sajax stuff. Use Get, and export two
// main functions to javascript
$sajax_request_type = "GET";
sajax_init();
sajax_export("get_thumbs_table", "get_image");
sajax_handle_client_request();
?>

  对于本文而言,文档主体部分很简单。我们将使用 div 和 window 的 id 来显示服务器的输出。

  清单 10. 显示服务器输出的 div 和 window id

<body>
<h1>Sajax photo album</h1>
<div id="window"></div>
</body>

  最后还要编写 JavaScript 回调函数。该例中,因为所有的服务器输出都直接输出到 window div 标记,所以可以重复使用简单的回调函数。将回调函数添加到 Sajax 函数调用中,就可以得到头(head)。

  清单 11. 简单的头

<head>
<title>Creating a Sajax photo album</title>
<style type="text/css">
body { text-align: center }
div#window { margin: 0 auto 0 auto; width: 700px;
padding: 10px; border: 1px solid #ccc; background: #eee; }
table.image_table { margin: 0 auto 0 auto; }
table.image_table td { padding: 5px }
table.image_table a { display: block; }
table.image_table img { display: block; width: 120px
padding: 2px; border: 1px solid #ccc; }
img.full { display: block; margin: 0 auto 0 auto;
width: 300px; border: 1px solid #000 }
</style>

<script language="javascript">
<? sajax_show_javascript(); ?>

// Outputs directly to the "window" div
function to_window(output) {
 document.getElementById("window").innerHTML = output;
}

window.onload = function() {
 x get table to window);
};

</script>
</head>

  最后一步是保证应用程序中的所有链接都是自定义的 Sajax 调用。只需要取上一节中的代码并作如下替换:href="index.php?start=0&step=5" 变为 onclick="x_get_table(0, 5, to_window)",href="expand.php?index=0" 变为 onclick="x_get_image(0, to_window)"。

  并在相应的函数中做同样修改:get_image_link() 和 get_table_link()。这样向 Sajax 的转化就完成了(如图 6 所示)。所有链接都变成了与远程 PHP 调用对应的 JavaScript 调用,PHP 使用 JavaScript 响应处理程序 to_window() 直接输出到页面。

  整个应用程序都包含在一个页面中,还可以把其余功能(get_table()、get_image() 等)放在不能从 Web 访问的单独的库文件中。在大多数 Ajax 应用程序中,每个发往服务器的请求都需要由单独的脚本处理,或至少需要编写一个非常庞大的处理程序脚本来重定向请求。将所有这些文件都集中到一起可能非常麻烦。使用 Sajax 永远只需要一个文件,在该文件中只需定义我们使用的函数即可。Sajax 代替了处理程序脚本。


  可以看到 URL 仍然保持不变,并带来了更多愉快的用户体验。window div 显示在一个灰色的框中,通过 Sajax 生成的内容非常清楚。脚本不一定要知道自身或者它在服务器上的位置,因为所有的链接最终都成为直接对页面自身的 JavaScript 调用。因此我们的代码能够很好的模块化。我们只需要保持 JavaScript 和 PHP 函数在同一个页面上即可,即使页面位置发生了变化也没有关系。

  扩展相册

1.安装环境
操作系统:Red Hat Linux Enterprise AS 4.0
数据库:MySQL 5.0.24
Web服务器:Apache 2.2.3
脚本语言:PHP 5.1.6

2.安装MySQL 5.0.24
-------------下载软件包mysql-5.0.24.tar.gz,地址http://www.mysql.com-------------
# tar zvxf mysql-5.0.24.tar.gz //解压缩
# cd mysql-5.0.24 //进入解压缩后的文件目录
# ./configure --prefix=/usr/local/mysql \ //设定安装目录
--enable-thread-safe-client \ //编译线程安全版的客户端库
--without-debug \ //关闭debug功能
--localstatedir=/data/mysqldata \ //设定数据库文件目录
# make //编译
# make install //安装
# /usr/local/mysql/bin/mysql_install_db //初始化授权
# chown –R root:root /usr/local/mysql //文件属性改为root用户
# cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf //复制配置文件
----------------------------------启动MySQL服务----------------------------------
# /usr/local/mysql/bin/mysqld_safe --user=root & //启动MySQL
----------------------------------修改MySQL密码----------------------------------
# /usr/local/mysql/bin/mysqladmin -uroot password mysqlsecret //修改密码
----------------------------------关闭MySQL服务----------------------------------
# /usr/local/mysql/bin/mysqladmin -uroot -pmysqlsecret shutdown //关闭MySQL

3.安装Apache 2.2.3
-------------下载软件包httpd-2.2.3.tar.gz,地址http://www.apache.org-------------
# tar zvxf httpd-2.2.3.tar.gz
# cd httpd-2.2.3
# ./configure --prefix=/usr/local/apache \
--enable-module=most \
--enable-shared=max
# make
# make install
----------------------------------启动Apache服务----------------------------------
# /usr/local/apache/bin/apachectl start
----------------------------------关闭Apache服务----------------------------------
# /usr/local/apache/bin/apachectl stop
----------------------------------重启Apache服务----------------------------------
# /usr/local/apache/bin/apachectl restart

4.安装PHP 5.1.6
-------------------下载软件包php-5.1.6.tar.gz,地址www.php.net--------------------
# tar zvxf php-5.1.6.tar.gz
# cd php-5.1.6
# ./configure --prefix=/usr/local/php \
--with-mysqld=/usr/local/mysql \
--with-apxs2=/usr/local/apache/bin/apxs
# make
# make install
# cp php.ini-dist /usr/local/php/lib/php.ini

5.配置Apache服务的httpd.conf文件
*在LoadModule处添加 LoadModule php5_module module/libphp5.so
*在DirectoryIndex处添加 index.php
*在AddType application处添加
AddType application/x-httpd-php .php .phtml
AddType applicatoin/x-httpd-php-source .phps


下载下列文件至/usr/local/src/
apache(Unix平台最流行的WEB服务器平台)2.tar.gz
MySQL(和PHP搭配之最佳组合)-5.0.22.tar.gz
php(做为现在的主流开发语言)-5.1.2.tar.gz
解压缩:
#tar xvz(parallels的虚拟行平台)f apache(Unix平台最流行的WEB服务器平台)2.tar.gz
#tar xvz(parallels的虚拟行平台)f MySQL(和PHP搭配之最佳组合)-5.0.22.tar.gz
#tar xvz(parallels的虚拟行平台)f php(做为现在的主流开发语言)-5.1.2.tar.gz
 
#cd ..        //在/usr/local/目录下创建文件夹
# mkdir apache(Unix平台最流行的WEB服务器平台)
# mkdir MySQL(和PHP搭配之最佳组合)
# mkdir php(做为现在的主流开发语言)
 
//MySQL(和PHP搭配之最佳组合)安装过程
#cd ../MySQL(和PHP搭配之最佳组合)               //找到/usr/local/MySQL(和PHP搭配之最佳组合)文件夹
#groupadd MySQL(和PHP搭配之最佳组合)
#usseradd -g MySQL(和PHP搭配之最佳组合) MySQL(和PHP搭配之最佳组合)
 
#cd ../MySQL(和PHP搭配之最佳组合)-5.0.22       //找到/usr/local/src/MySQL(和PHP搭配之最佳组合)-5.0.22文件夹
#./configure --prefix=/usr/local/MySQL(和PHP搭配之最佳组合) --localstatedir=/var/lib/MySQL(和PHP搭配之最佳组合)/ --with-client-ldflags=-all-static --with-MySQL(和PHP搭配之最佳组合)d-ldflags=-all-static --with-MySQL(和PHP搭配之最佳组合)d-user=MySQL(和PHP搭配之最佳组合) --enable-assembler --with-extra-charsets=all
#make ; make install
 
/usr/local/MySQL(和PHP搭配之最佳组合)/bin/MySQL(和PHP搭配之最佳组合)_install_db //初始化MySQL(和PHP搭配之最佳组合)
                     //对MySQL(和PHP搭配之最佳组合)进行配置
#chown –R root /usr/local/MySQL(和PHP搭配之最佳组合)
#chown –R MySQL(和PHP搭配之最佳组合) /var/lib/MySQL(和PHP搭配之最佳组合)/
#chgrp –R MySQL(和PHP搭配之最佳组合) /usr/local/MySQL(和PHP搭配之最佳组合)
#cp support-files/my-medium.cnf /etc/my.cnf
 
/usr/local/MySQL(和PHP搭配之最佳组合)/bin/MySQL(和PHP搭配之最佳组合)d_safe –user=MySQL(和PHP搭配之最佳组合) &         //启动MySQL(和PHP搭配之最佳组合)
 
/usr/local/MySQL(和PHP搭配之最佳组合)/bin/MySQL(和PHP搭配之最佳组合)admin –u root –p password 123     //将密码改为123
enter password:
              
              //测试一下新密码
/usr/local/MySQL(和PHP搭配之最佳组合)/bin/MySQL(和PHP搭配之最佳组合) –u root –p MySQL(和PHP搭配之最佳组合)
enter password:                             //如果顺利的话就能进入MySQL(和PHP搭配之最佳组合)了.
      
                 
//apache(Unix平台最流行的WEB服务器平台)安装过程
./configure --prefix=/usr/local/apache(Unix平台最流行的WEB服务器平台) --enable-mods=shared=all --enable-module=so --disable-info
make
make install
 
apache(Unix平台最流行的WEB服务器平台)安装过程中,遇到libiconv.so.2的问题,解决方法如下:
ln –sf /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
 
//在窗口栏中敲入本机IP,如果出现着名的羽毛网页,就算成功了….
 
 
 
//php(做为现在的主流开发语言)安装过程
./configure --prefix=/usr/local/php(做为现在的主流开发语言) --with-MySQL(和PHP搭配之最佳组合)=/usr/local/MySQL(和PHP搭配之最佳组合) --with-apxs2=/usr/local/apache(Unix平台最流行的WEB服务器平台)/bin/apxs --enable-calendar --with-openssl=/usr/ --with-config-file-path=/usr/local/php(做为现在的主流开发语言)
make
make install
cp /usr/local/src/php(做为现在的主流开发语言)-5.1.2/php(做为现在的主流开发语言).ini-dist /usr/local/lib/php(做为现在的主流开发语言).ini
 
 
#cd usr/local/apache(Unix平台最流行的WEB服务器平台)/conf
//然后打开httpd.conf在相应的地方进行修改
AddType application/x-httpd-php(做为现在的主流开发语言) .php(做为现在的主流开发语言)
AddType application/x-httpd-php(做为现在的主流开发语言)-source .php(做为现在的主流开发语言)s
 
DocumentRoot "/usr/local/apache(Unix平台最流行的WEB服务器平台)/htdocs"
 
LoadModule php(做为现在的主流开发语言)5_module modules/libphp(做为现在的主流开发语言)5.so
 
//把测试的.php(做为现在的主流开发语言)文件放入/usr/local/apache(Unix平台最流行的WEB服务器平台)/htdocs/,在窗口栏中如能打开页面,则大功告成了
//常见问题1:ERROR 2002: Can't connect to local MySQL(和PHP搭配之最佳组合) server through socket '/var/lib/MySQL(和PHP搭配之最佳组合)/MySQL(和PHP搭配之最佳组合).sock
  ' (2)
//解决方法: 权限问题
chown -R MySQL(和PHP搭配之最佳组合) /var/lib/MySQL(和PHP搭配之最佳组合)/
//常见问题2:Warning: MySQL(和PHP搭配之最佳组合) Connection Failed: Can't connect to local MySQL(和PHP搭配之最佳组合) server
// through socket '/tmp/MySQL(和PHP搭配之最佳组合).sock' (111) in /home/httpd/html/show.php(做为现在的主流开发语言) on line 9
//解决方法: 将/tmp/MySQL(和PHP搭配之最佳组合).sock link 到 /var/lib/MySQL(和PHP搭配之最佳组合) 目录里即可:
linux# ln -s /var/lib/MySQL(和PHP搭配之最佳组合)/MySQL(和PHP搭配之最佳组合).sock /tmp/MySQL(和PHP搭配之最佳组合).sock
[!--infotagslink--]

相关文章

  • IntelliJ IDEA2021.1 配置大全(超详细教程)

    这篇文章主要介绍了IntelliJ IDEA2021.1 配置大全(超详细教程),需要的朋友可以参考下...2021-04-18
  • Windows VPN服务器配置图文教程 超详细版

    VPN可以虚拟出一个专用网络,让远处的计算机和你相当于处在同一个局域网中,而中间的数据也可以实现加密传输,用处很大,特别是在一些大公司,分公司处在不同的区域。...2016-01-27
  • Tomcat配置及如何在Eclipse中启动

    这篇文章主要介绍了Tomcat配置及如何在Eclipse中启动,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-04
  • php 中file_get_contents超时问题的解决方法

    file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25
  • Laravel4安装配置的方法

    如果我们需要安培Laravel4的话最php最低要求要在php5.3.7版本并且我们需要把mcrypt与openss这两个扩展开启才可以,具体步骤我们参考下文。 前面我们介绍我了 com...2016-11-25
  • HTTP 408错误是什么 HTTP 408错误解决方法

    相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • ps把文字背景变透明的操作方法

    ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
  • intellij idea快速查看当前类中的所有方法(推荐)

    这篇文章主要介绍了intellij idea快速查看当前类中的所有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-02
  • Mysql select语句设置默认值的方法

    1.在没有设置默认值的情况下: 复制代码 代码如下:SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果:...2014-05-31
  • js导出table数据到excel即导出为EXCEL文档的方法

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht...2013-10-13
  • mysql 批量更新与批量更新多条记录的不同值实现方法

    批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
  • js基础知识(公有方法、私有方法、特权方法)

    本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。公有方法 公有方法就是能被外部访问...2015-11-08
  • ps怎么制作倒影 ps设计倒影的方法

    ps软件是一款非常不错的图片处理软件,有着非常不错的使用效果。这次文章要给大家介绍的是ps怎么制作倒影,一起来看看设计倒影的方法。 用ps怎么做倒影最终效果&#819...2017-07-06
  • PHP 验证码不显示只有一个小红叉的解决方法

    最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
  • c#中分割字符串的几种方法

    单个字符分割 string s="abcdeabcdeabcde"; string[] sArray=s.Split('c'); foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab de...2020-06-25
  • 安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法

    手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21
  • js控制页面控件隐藏显示的两种方法介绍

    javascript控制页面控件隐藏显示的两种方法,方法的不同之处在于控件隐藏后是否还在页面上占位 方法一: 复制代码 代码如下: document.all["panelsms"].style.visibility="hidden"; document.all["panelsms"].style.visi...2013-10-13
  • 详解Maven profile配置管理及激活profile的几种方式

    这篇文章主要介绍了详解Maven profile配置管理及激活profile的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-26