使用WAMP5搭建Apache+MySQL+PHP环境

 更新时间:2016年11月25日 16:08  点击:2326

转贴:http://xoops.org.cn/modules/newbb/viewtopic.php?topic_id=8734&forum=1

目前有不少AMP(ApacheMySQLPHP)的集成软件,可以让我们一次安装并设置好。这对于不熟悉AMP的用户来说,好处多多。

一、使用AMP集成软件的优点:
1、可避免由于缺乏AMP的知识,而无法正确设置环境;
2、可快速安装并设置好AMP环境,让我们直接开始真正感兴趣的软件,如xoops;
3、可方便的搭建测试环境,对于测试“是AMP环境问题,还是XOOPS造成的问题”很有帮助,采用排除法即可。

二、常用的AMP集成软件:
1、AppServ:http://www.appservnetwork.com/
这个软件在台湾很流行。看到不少书籍也极力推荐,估计都是受台湾用户的影响。

2、XAMPP:http://www.apachefriends.org/en
这个软件支持多个平台,WinLinuxSolarisMac OS X,目前也有不少人使用。

3、WAMP5:http://www.wampserver.com/en/
这是我今天极力推荐的,绝对五星级。注意它的名字是带个5的哦,意思就是WAMP5使用最新的PHP5版本,正如官方网站上的口号:Discover PHP5 with WAMP5 ! 

三、根据我的经验,WAMP5有如下优点:
1、XOOPS在WAMP5中使用,没有任何问题。
2、WAMP5专注于Windows平台,安装设置及其简单。
3、PHP默认的是5.x版本,如果需要php4.x,只要安装php4.x插件,就可以在两者之间自由的切换,非常方便。
4、MySQL默认的是5.x版本,但可以通过选择老版本的WAMP5,从而使用4.x的MySQL。
5、可视化的菜单管理,极其方便。如,打开关闭php extention、Apache module等,直接通过菜单选择就可以。
6、还有各种插件,如ZEND OPTIMIZER ADD-ON等。
7、如果有疑问,官方还有论坛可以求助。
......更多优点:谁用谁知道,早用早知道^_^



学了几种语言,有时回想,却发现没什么积累,偏偏自己又喜欢卖弄;怎奈何自己又不甘堕落,于是乎就强迫自己写写日记,但是自己跟自己对话又觉得没意思, 就想着把日志写成教程,给社区里的难兄难弟没做做参考.小弟实在是没有什么经验,还望那些看到本文的有缘人多多包涵....



php5自带了一个开发web service的扩展extension=php_soap.dll;
在php.ini中加入上面扩展;同时配置ini文件的以下选项
Name                   Default Changeable  Changelog
soap.wsdl_cache_enabled  "1"    PHP_INI_ALL Available since PHP 5.0.0.
soap.wsdl_cache_dir    "/tmp"   PHP_INI_ALL Available since PHP 5.0.0.
soap.wsdl_cache_ttl    "86400"  PHP_INI_ALL Available since PHP 5.0.0.
这样就可以使用SoapServer了.
那建一个文件,内容如下
<?php
class service_class {
/**
* @return string
* */
function sayHello(){
return ''hello world'';
}
/**
* @param string $name;
* @return string;
*/
function getName($name){
return $name;
}
}


$server = new SoapServer(''buildin.wsdl'');(1)
$server->setClass(''service_class'');(2)
$server->handle();(3)

?>
这里有一点需要注意的是:如果要在生成的wsdl文件有类型的话,应使用方法注释;(string,integer等).

(1)生成一个实例,参数"buildin.wsdl"是wsdl文件所在的位置,因为SoapServer还没有提供生成wsdl的实现,因些要指明细wsdl文件所在的位置.
(2)注册webservice的提供的方法,默认为类里面的所有方法
(3)处理请求;

到这里为止,在浏览器中访问本php文件,如果出现如果提示
"cant find HTTP_RAW_POST_DATA";则在创建soapServer前,插入以下代码
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
if (!isset($HTTP_RAW_POST_DATA)){
$HTTP_RAW_POST_DATA = file_get_contents(''php://input'');
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

此时如果提示bad request之类的错误,说明web service已经启动了.

如果没有忘记前面前到的wsdl的话,此刻必会想即然不还不能生成wsdl文件的话,那那个buildin.wsdl从何而来呢,如果对zend studio熟悉的话,就会想到tool菜单下面的wsdl generator,对了,用这个工具可以生成很帅的wsdl文件,使用方法在这里就不多说了,自己就两下就知道是怎么生成了..

server端到此结束.
令天就先到这里,,明天接续delphi客户端如果调用.....

<

导读:
  大写Y表示年四位数字,而小写y表示年的两位数字;
  小写m表示月份的数字(带前导),而小写n则表示不带前导的月份数字。
  echo date(''Y-M-j'');
  2007-Feb-6
  echo date(''Y-m-d'');
  2007-02-06
  大写M表示月份的3个缩写字符,而小写m则表示月份的数字(带前导0);
  没有大写的J,只有小写j表示月份的日期,无前导o;若需要月份带前导则使用小写d。
  echo date(''Y-M-j'');
  2007-Feb-6
  echo date(''Y-F-jS'');
  2007-February-6th
  大写M表示月份的3个缩写字符,而大写F表示月份的英文全写。(没有小写f)
  大写S表示日期的后缀,比如“st”、“nd”、“rd”和“th”,具体看日期数字为何。
  小结:
  表示年可以用大写的Y和小写y;
  表示月可以用大写F、大写M、小写m和小写n(分别表示字符和数字的两种方式);
  表示日可以用小写d和小写j,大写S表示日期的后缀。
  2,时:分:秒
  默认情况下,PHP解释显示的时间为“格林威治标准时间”,与我们本地的时间相差8个小时。
  echo date(''g:i:s a'');
  5:56:57 am
  echo date(''h:i:s A'');
  05:56:57 AM
  小写g表示12小时制,无前导0,而小写h则表示有前导0的12小时制。
  当使用12小时制时需要表明上下午,小写a表示小写的“am”和“pm”,大写A表示大写的“AM”和“PM”。
  echo date(''G:i:s'');
  14:02:26
  大写G表示24小时制的小时数,但是不带前导的;使用大写的H表示带前导的24小时制小时数
  小结:
  字母g表示小时不带前导,字母h表示小时带前导;
  小写g、h表示12小时制,大写G、H表示24小时制。
  3,闰年、星期、天
  echo date(''L'');
  今年是否闰年:0
  echo date(''l'');
  今天是:Tuesday
  echo date(''D'');
  今天是:Tue
  大写L表示判断今年是否闰年,布尔值,为真返回1,否则为0;
  小写l表示当天是星期几的英文全写(Tuesday);
  而使用大写D表示星期几的3个字符缩写(Tue)。
  echo date(''w'');
  今天星期:2
  echo date(''W'');
  本周是全年中的第 06 周
  小写w表示星期几,数字形式表示
  大写W表示一年中的星期数
  echo date(''t'');
  本月是 28 天
  echo date(''z'');
  今天是今年的第 36 天
  小写t表示当前月份又多少天
  小写z表示今天是本年中第几天
  4,其他
  echo date(''T'');
  UTC
  大写T表示服务器的时间区域设置
  echo date(''I'');
  0
  大写I表示判断当前是否为夏令时,为真返回1,否则为0
  echo date(''U'');
  1170769424
  大写U表示从1970年1月1日到现在的总秒数,就是Unix时间纪元的UNIX时间戳。
  echo date(''c'');
  2007-02-06T14:24:43+00:00
  小写c表示ISO8601日期,日期格式为YYYY-MM-DD,用字母T来间隔日期和时间,时间格式为HH:MM:SS,时区使用格林威治标准时间(GMT)的偏差来表示。
  echo date(''r'');
  Tue, 06 Feb 2007 14:25:52 +0000
  小写r表示RFC822日期。
  小小的date()函数就显示出了PHP的强大功能和迷人魅力,再比较下ASP,呵呵。




//创建一个对象
$timer = new Benchmark_Timer();

//计时开始
$timer->start();

//测试的一段脚本
for ($i=0; $i<1000; $i++)
{
//we do nothing here
}

//设置标记
$timer->setMarker("Mark1");

//输出两点之间的用时
echo $timer->timeElapsed("Start", "Mark1");
?>
然后执行之,就可以得到0.000543这样的结果,大致为从开始到Mark1点之间的耗时.
类方法
方法:Benchmark_Timer( [mixed $auto = false])
描述:构造器,开始计时器记录.
参数:boolean $auto,缺省为false,如果设定为true的话,则会自动打印计时器结果.形如下表
    time index    ex time    %
Start    1099020859.80505200    -    0.00%
Stop    1099020859.80595000    0.000898    100.00%
total    -    0.000898    100.00%

分别列出开始/终止的时间索引,与上一标记之间的运行时间,与上一标记之间的运行时间占总耗时的百分比(所以Stop点一直为100%),以及总耗时.
方法: display( )
描述:打印由getOutput方法返回的信息.
形如下表:
    time index    ex time    %
Start    1099021292.32145600    -    0.00%
Mark1    1099021292.32202000    0.000564    46.38%
Mark2    1099021292.32209700    0.000077    6.33%
Stop    1099021292.32267200    0.000575    47.29%
total    -    0.001216    100.00%

列出每一标记的时间索引,与上一标记之间的运行时间,与上一标记之间的运行时间占总耗时的百分比,以及总耗时.
调用该方法前,应该先调用stop()来终止计时(并不会终止程序).见例2. 方法: getOutput( )
描述:返回格式化后的计时器信息. 该方法把计时器信息放如一个表中(如上表),供display()方法列出.
方法:getProfiling( )
描述:返回计时器信息.将是形如
Array
(
[0] => Array
(
[name] => Start
[time] => 1099021787.69669100
[diff] => -
[total] => 1099021787.696691
)

[1] => Array
(
[name] => Mark1
[time] => 1099021787.69675900
[diff] => 0.000068
[total] => 1099021787.696759
)

[2] => Array
(
[name] => Mark2
[time]


此文演示了PHP三层开发的强大功能,PEAR::DB_DataObject用于业务逻辑,Smarty用于显示逻辑,这里假设你熟
悉了HTML,Smarty,PEAR::DB_DataObject,Mysql和PHP5.如果你需要补充知识,下面的文章解释了一些原理:
用PHP DataObject简化业务逻辑
Smarty简介:一个PHP模板引擎
PHP可伸缩性:Myth
你应该已安装和配置好了Apache,MySQL,和PHP5(或者IIS,MySQL5和PHP)
PEAR::DB_DataObject
PEAR::DB_DataObject 是一个用户数据库访问的抽象API.它是一个基于PEAR::DB的SQL构建器和数据建模层.它
把数据库表映射到PHP类并且提供像SELECT,INSERT,UPDATE,和DELETE这样的公共SQL函数.这使即使不了
解SQL的开发者也可以写出好的数据库访问代码,并且鼓励演示逻辑和业务逻辑有一个清晰的分离.
(DB_OO已经移动到的PEAR,现在是DB_DataObject,如果你有老的代码要更新,查看关于从老的db_oo代码更新到
DB_DataObjects的注释).
相关阅读
 
Upgrading to PHP 5
By Adam Trachtenberg
Table of Contents
Index
Sample Chapter
Read Online--Safari Search this book on Safari:
   
 Only This Book All of Safari
Code Fragments only
DataObject performs two tasks. First, it builds SQL statements based on the object''s variables and the builder
methods. Second, it acts as a datastore for a table row. There''s a core class, which you extend for each of
your tables so that you put the data logic inside the data classes. There''s also an included Generator to make
your configuration files and your base classes.
DataObject 执行两个任务.第一,它构建基于对象变量的SQL语句和构建器方法.第二,它作为数据库表的数据存
储.这里有个核心类,对于每个表继承它,以使你把数据逻辑放入数据类中.这里还包括一个生成器,

DataObject 极大的简化了数据库访问代码,它使开发大型的,数据驱动的站点更加容易.
At present, Alan Knowles, the lead developer of PEAR::DB_DataObject, is working on a new project called DBDO,
a C implementation of the PEAR package DB_DataObjects, based on libgda. His goal is to create the next
generation of PEAR::DB_DataObjects.
SMARTY
Smarty是一个从web页演示中分离内容的PHP模板引擎.它使用GPL许可.
Large projects commonly separate the role of the graphic designer from that of the programmer. However,
programming in PHP has the tendency to combine those two roles in a person and inside the code. This can bring
difficulties when it comes time to change some part of the page''s design. If the page mixes content and
presentation, the developer has to crawl through the program to find the presentation. Smarty helps to solve
this problem.
Combining the Two
The first thing to do when starting this project is
[!--infotagslink--]

相关文章

  • 图解PHP使用Zend Guard 6.0加密方法教程

    有时为了网站安全和版权问题,会对自己写的php源码进行加密,在php加密技术上最常用的是zend公司的zend guard 加密软件,现在我们来图文讲解一下。 下面就简单说说如何...2016-11-25
  • ps怎么使用HSL面板

    ps软件是现在很多人都会使用到的,HSL面板在ps软件中又有着非常独特的作用。这次文章就给大家介绍下ps怎么使用HSL面板,还不知道使用方法的下面一起来看看。 &#8195;...2017-07-06
  • Plesk控制面板新手使用手册总结

    许多的朋友对于Plesk控制面板应用不是非常的了解特别是英文版的Plesk控制面板,在这里小编整理了一些关于Plesk控制面板常用的使用方案整理,具体如下。 本文基于Linu...2016-10-10
  • 使用insertAfter()方法在现有元素后添加一个新元素

    复制代码 代码如下: //在现有元素后添加一个新元素 function insertAfter(newElement, targetElement){ var parent = targetElement.parentNode; if (parent.lastChild == targetElement){ parent.appendChild(newEl...2014-05-31
  • 使用GruntJS构建Web程序之构建篇

    大概有如下步骤 新建项目Bejs 新建文件package.json 新建文件Gruntfile.js 命令行执行grunt任务 一、新建项目Bejs源码放在src下,该目录有两个js文件,selector.js和ajax.js。编译后代码放在dest,这个grunt会...2014-06-07
  • 使用percona-toolkit操作MySQL的实用命令小结

    1.pt-archiver 功能介绍: 将mysql数据库中表的记录归档到另外一个表或者文件 用法介绍: pt-archiver [OPTION...] --source DSN --where WHERE 这个工具只是归档旧的数据,不会对线上数据的OLTP查询造成太大影响,你可以将...2015-11-24
  • 如何使用php脚本给html中引用的js和css路径打上版本号

    在搜索引擎中搜索关键字.htaccess 缓存,你可以搜索到很多关于设置网站文件缓存的教程,通过设置可以将css、js等不太经常更新的文件缓存在浏览器端,这样访客每次访问你的网站的时候,浏览器就可以从浏览器的缓存中获取css、...2015-11-24
  • jQuery 1.9使用$.support替代$.browser的使用方法

    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 。 在更新的 2.0 版本中,将不再支持 IE 6/7/8。 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9。 如果要全面支持 IE,并混合...2014-05-31
  • 标准版Eclipse搭建PHP环境的详细步骤

    一、下载Eclipse的PHP插件  百度搜索phpeclipse,看到某条结果是带有SourceForge.net字样的,点进去,找到Download按钮,点击之后,等待5秒就会开始下载了。二、安装Eclipse的PHP插件  插件下载完成之后,解压,然后把site.xml...2015-11-24
  • MySQL日志分析软件mysqlsla的安装和使用教程

    一、下载 mysqlsla [root@localhost tmp]# wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz--19:45:45-- http://hackmysql.com/scripts/mysqlsla-2.03.tar.gzResolving hackmysql.com... 64.13.232.157Conn...2015-11-24
  • 安装和使用percona-toolkit来辅助操作MySQL的基本教程

    一、percona-toolkit简介 percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: 检查master和slave数据的一致性 有效地对记录进行归档 查找重复的索...2015-11-24
  • C#注释的一些使用方法浅谈

    C#注释的一些使用方法浅谈,需要的朋友可以参考一下...2020-06-25
  • php语言中使用json的技巧及json的实现代码详解

    目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。我写过一篇《数据类型和JSON格式》,探讨它的设计思想。今天,我想总结一下PHP语言对它的支持,这是开发互联网应用程序(特别是编写API)必须了解的知识...2015-10-30
  • wamp集成软件搭建php环境

    用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高...2013-09-27
  • PHP实现无限级分类(不使用递归)

    无限级分类在开发中经常使用,例如:部门结构、文章分类。无限级分类的难点在于“输出”和“查询”,例如 将文章分类输出为<ul>列表形式; 查找分类A下面所有分类包含的文章。1.实现原理 几种常见的实现方法,各有利弊。其中...2015-10-23
  • php类的使用实例教程

    php类的使用实例教程 <?php /** * Class program for yinghua05-2 * designer :songsong */ class Template { var $tpl_vars; var $tpl_path; var $_deb...2016-11-25
  • 双冒号 ::在PHP中的使用情况

    前几天在百度知道里面看到有人问PHP中双冒号::的用法,当时给他的回答比较简洁因为手机打字不大方便!今天突然想起来,所以在这里总结一下我遇到的双冒号::在PHP中使用的情况!双冒号操作符即作用域限定操作符Scope Resoluti...2015-11-08
  • 浅析Promise的介绍及基本用法

    Promise是异步编程的一种解决方案,在ES6中Promise被列为了正式规范,统一了用法,原生提供了Promise对象。接下来通过本文给大家介绍Promise的介绍及基本用法,感兴趣的朋友一起看看吧...2021-10-21
  • 使用jquery修改表单的提交地址基本思路

    基本思路: 通过使用jquery选择器得到对应表单的jquery对象,然后使用attr方法修改对应的action 示例程序一: 默认情况下,该表单会提交到page_one.html 点击button之后,表单的提交地址就会修改为page_two.html 复制...2014-06-07
  • PHP mysql与mysqli事务使用说明 分享

    mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。应用比较多的地方是 mysqli的事务。...2013-10-02