正则表达式

正则表达式英文称Regex,即Regular Expression。正则表达式可以有助于完成一些复杂的模式匹配,在各种程序中都有应用,PHP支持两种风格的正则表达式的语法:POSIX和Perl。正则表达式通过一些特殊字符作为通配符可以代替除换行符(\n)外的字符来进行匹配,如.at就可匹配cat, sat, mat等字符(”.”在正则表达式中用于匹配任意单个字符),可以通过限定范围来进行匹配,如果要匹配小写字母的话,也可以使用[a-z]at,若要添加大小字母,则可使用[a-zA-Z]at。

也可以限定更小的字母集合,如[aeiou],如果要排除某一字符集合,则可使用类似[^a-z]的正则表达式。

POSIX风格的正则表达式预置了一些字符类

[:digit:]      数字0到9
[:alnum:]      数字及字母0到9或A到Z或a到z
[:alpha:]      字母A到Z或a到z
[:blank:]      制表符或空格
[:xdigit:]     十六进制数字
[:punct:]      标点符号 . , " ' ? ! ; :
[:print:]      所有可打印的字符
[:space:]      空白字符
[:graph:]      除空格外所有可打印的字符
[:upper:]      字符A到Z
[:lower:]      字符a到z
[:cntrl:]      控制符

有关重复

使用”*”表示字符可出现0次或更多次,而”+”表示字符可出现1次或更多次(至少出现一次)(还有一个问号字符?,表示出现0次或1次)。如(very )*large可以匹配large, very large, very very large等等。您也可以指定字符出现的次数及范围,如(very){1, 3},表示 very可重复1到3次,而(very){4}则表示very重复4次。

定位到字符串的开始或结尾

分别使用两个符号:^和$,前则表示出现在开始,后者表示结尾,如a+$表示结尾出现一个或多个a, ^.{2}表示以任意两个字符开始。

分支

可使用”|”字符进行多选择匹配,如com|edu|net则表示匹配3者中的一个。

特殊字符的匹配

正则表达式中要匹配一些特殊字符时需要在特殊字符前加一个反斜杠(\),比如要匹配\\,则需使用\\\\,而匹配$则需要使用\$。主要的特殊字符有\^$.|()*+{}?这几个。

 

PHP与MySQL学习笔记

PHP学习笔记

http默认端口80,ftp默认端口21,telnet默认端口23,https默认端口443

几种常见的操作系统、Web服务器、数据库、后台语言组合:
Linux+Apache+MySQL+PHP=LAMP
Unix+Tomcat+Oracle+JSP=J2EE
Windows+IIS+SQL Server+ASP=ASP.net

重复代码调用

PHP从最初的Personal Home Page Tools演化成今日对Hypertext Preprocessor的缩写,主要应用于web领域。

使用require()和include()这两个函数可以调用已完成并会重复调用的代码,这两个函数的区别在于在函数失败后require()给出一个致命的错误(fatal error),而include()仅给出一个警告(warnig)。如果是页眉和页脚,可以分别使用auto_prepend_file和auto_append_file。

函数

虽然PHP对于变量名是区分大小的,如$VAR不同于$var,而函数名实际上是不区分大小的,如调用Function_Name()和调用function_name()将返回同样的结果。

PHP中内置了很多函数,如phpinfo(),fopen(),随着版本的升级内置函数也还发生变化。用户也可以像声明变量一样创建自己的函数。声明一个函数,使用的基本格式是:
function function_name(){
}

当然函数名(function_name)的使用也要遵循一些要求:不能重复使用已有函数名称,只能使用数字、字母和下划线且不能以数字开头。

使用return可终止函数的执行,通常用于进行一些条件的判断如isset(),检测不到变量则直接终止函数。也可以使用return语句来与调用它的代码进行交互,如return false, return $a。

面向对象

创建类的格式很简单,通过下面的格式进行声明即可:

class class_name{

}

类中使用的变量、函数等可通过修饰符public,private和protected进指定作用域,其中private在类外部不可见,且不能被继承,而protected在类外部不可见,但是可以被继承。类之间可以继承,如B继承了A的话,则可以使用class B extends A(PHP不支持多重继承,即一个类不可以继承两个类)。

构造函数和析构函数的格式分别为__construct()和__destruct(),类的实例化可以通过$a= new class_name()来实现。使用父类的函数时可使用parent::function_name()来进行调用,若要禁止调用和重载,可使用final修饰符。

MySQL学习笔记

MySQL语句不区分大小写,但数据库和表名是区分大小写的。

MySQL登录的命令

登录MySQL可在命令行输入

mysql -h hostname -u username -p其中-h后对应的是主机名,通常本地连接时可直接忽略该项,-u后对应的为用户名,如root,-p对应的自然是密码,执行该语句后会要求输入对应用户的密码。

数据库的四个基本功能CRUD

即Create,Read,Update,Delete

创建(Create)的基本语法
INSERT INTO table(column1, column2, column3)
VALUES(val1,val2,val3);
读取(Read)的基本语法
SELECT * FROM table
WHERE column1=’some-text’
ORDER BY column1, column2 ASC;
更新(Update)的基本语法
UPDATE table
SET column1=’some_text’
WHERE id =1;
删除(Delete)的基本语法
DELETE FROM table
WHERE id=1;

而创建数据库则应使用如下命令:

create database db_name;

使用命令创建数据库及表格

CREATE DATABASE database_name;
USE database_name;

下面的命令创建带有四列指定名称(id, menu_name, position, visible)和数据类型的数据库表格
CREATE TABLE table_name(
column1 int(11) NOT NULL auto_increment,
column2 varchar(30) NOT NULL,
column3 int(3) NOT NULL,
column4 tinyint(1) NOT NULL,
PRIMARY KEY(column1)
);

cd命令的用法

在执行命令时经常需要转换目录,这时候就需要用到cd命令(change directory),通常的几种用法有:

cd \ 返加到根目录

cd ..返回上一级目录,对应的返回上上一级目录就是cd ..\..,向上返回3级目录就是cd ..\..\..依此类推

cd 加上相对路径,进入对应目录

如要去其它盘,如在本地windows系统下切换到f盘,则无需使用cd,直接输入f:回车即可

Web Analytics 2.0读书笔记

Chapter 1 The Bold New World of Web Analytics 2.0

Avinash Kaushik此人的生平我不甚了解,但他确实是位业界非常知名且活跃的博主同时在Youtube上也上传了很多优质的有关网络分析视频。在这样一个充满着付费和免费统计工具(Omniture Site Catalyst, Webtrends, Clicktracks, Xiti, Google Analytics, Crazy Egg, Piwik, Open Web Analytics, MochiBot, 4Q)的电子商务环境里,获取数据似乎早已不是问题,而如何使用这些数据实现目标则成为了一个棘手的问题。开篇就讲到了一个网站无非要实现以下3个结果:

•Increase revenue.
• Reduce cost.
• Improve customer satisfaction/loyalty

并提到了很多时候实现目标的路上会受到所谓HiPPO(Highest Paid Person’s Opinion的缩略词)的阻碍。应通过调研来调整策略,所提到的调查的工具有:Google Website Optimizer, Omniture’s Test&Target, Autonomy’s Optimost以及SiteSpect。尽量听取客户的声音以及对比竞争的数据(这里是作者尤其强调的一部分并提到了一个网站www.compete.com,)也将有助于达成目标。下图为所谓的Five Pillars(Clickstream, Multiple Outcomes Analysis, Experimentation and Testing, Voice of Customer, and Competitive Intelligence),通过这5个重要数据分析步骤最终来获取目标值。Five Pillars

Chapter 2 The Optimal Strategy for Choosing Your Web Analytics Soul Mate

进行网络分析,选择正确合适的工具很重要,但作者在2006提出了一个10/90原则,即要想通过网络分析获得最大化的价值,用于购买专业的分析工具和服务应占$10,而剩作的$90则投入到智能分析即人力资源上。再好的工具没有人的分析,你只是得到了数据而没有转化为有用的信息。选择正确的工具前需要问自己几个问题:

•I你需要的究竟是分析还是报告?

有的时候你选择的工具可能无法满足需求,则应考虑升级,而有的时候昂贵的分析工具也许并不能为你使用,这时选择免费工具如Google Analytics可能更好。

•有没有相应的IT实力、营销实力或者两者兼有

IT实力确保你在安装时少走弯路并可进行后续开发,而营销实力自不待言,是分析的中坚力量。

你在追求点击还是web分析2.0

显然后者是本书讨论的重点,web分析2.0要求工具有更健壮的定性和定量分析方法来弄清客户的体验会怎样影响在您网站上的行为。选工具时一方面要立足现在的需求,如是否易于进行您需要的A/B或MVT(Multivariate testing)测试,另一方面也要着眼未来,网络风云变幻,以免刚用过两年就发现工具已经落伍了。

问完了自己,作者建议问工具提供者以下十个问题:

与Google和Yahoo的免费工具相比你们的工具/分析方法有什么不同?

你是纯粹的ASP(Application Service Provider)吗?是否计划开发新的软件版本?

你们使用什么样的数据抓取机制?

使用你们的工具总的消费将是多少(Total cost of ownership)?

你们提供哪些售后服务?哪些分别是免费和付费的?是否全天候免费(24/7)?

数据分离工具(Segmentation)有哪些功能?

如果要将数据导出到我们公司的系统中,有哪些方法?

有哪些可以导入其它渠道数据的工具和方法?

可否告知贵公司在今后3年为保持竞争优势将会有的新功能/工具/并购?

贵公司最近取消合同的两个客户的原因分别是什么?他们现在使用什么工具?我们是否可以与他们取得联系?

Chapter 3 The Awesome World of Clickstream Analysis: Metrics

八个重要的Web度量参数

访问数和访问者数量(Visits& Visitors)

不同工具中对于visits和visitors的定义有细微的差别,就技术上而言,一个visit对应一个session;而visitors或者unique visitors则是通过一个特殊的cookie字段来统计。大多数统计工具中的daily unique visitors, weekly unique visitors都会重复计算隔天/周访问网站的同一个人,只有少数如Google Analytics, XiTi或Nedstat会进行排除重复的处理。

页面访问时间和站内访问时间(Time on Page & Time on Site)

如何使用火车采集器采集数据

很多朋友在做SEO建站群或者独自创建、运营一个或多个网站时都会存在工作量比较大的问题,这时您可能会需要快速批量获取一些网络资源以充实自己的站点。火车采集器是一个比较专业的工具,当前版本为V7.6,可进入其官网下载Locoy火车采集器,普通用户下载免费版即可满足使用需求。在下载到的压缩包中双击LocoyPlatform.exe将会弹出下面的开始页面,创建新任务点击”分组”>”新建任务”
Locoy火车采集器v7.6开始页面
进入创建任务的流程,第一步是为任务命名,然后在采集网址规则标签下点击“添加”添加所采集网址规则。您可选择采集单条网址,批量/多页采集等,图中Alan以overstock.com 为例创建了采集该站中10页的规则。创建完规则后会在预览中看到将要采集的网址,先点击“添加”再点击“完成”即完成创建。

Locoy火车采集器采集网址规则

第二步创建采集内容的规则,主要需要分析目标网页代码的规则,点击左侧的添加或修改设置代码中的起始标签或代码即可采集相应的内容,如要采集标题,则分别在开始字符串和结束字符串中输入<title>和</title>。创建完规则后可在界面右侧典型页面处输入一个网址点击“测试”测试规则是否有效,至此点击“保存”即完成了采集的准备工作。至于第三步,实际上是有关内容发布的内容。
locoy采集内容规则及测试
如下图为采集meta中的描述的规则
采集规则举例说明

此时回到欢迎页面,勾选对应任务名(此处为ABC)右侧“采网址”和“采内容”下的复选框,点击上面的开始按钮或右击选择“开始任务运行”开始采集。右侧会显示实时的采集动态,采集完成会提示“任务运行完成”。然后右击对应任务点击“打开Data下任务文件夹”,会有一个名称类似SpiderResult.mdb的access数据库,双击打开在”Content”下即可发现您所采集到的内容。Access支持导出成Excel,只需在菜单栏中点击“外部数据”然后选择“导出到Excel电子表格”即可。

火车采集器采集成功

php和mysql web开发(原书第4版)

电子商务的知识面太广,Alan最近都开始学习PHP和MySQL了。从上海图书馆借了一本书名为php和mysql web开发(原书第4版),又是一部“圣经”。照葫芦画瓢也写了两个文件,才发现写程序还真不是件容易的事。PHP貌似已经是程序中非常简单的了,概念还是爆多:运算符、逻辑操作符、变量、全局变量、数组、类云云,各种逻辑算法光弄明白就够绕得了,还要注意优先级。

万事开头难,还是得本着“蜗牛精神”慢慢往前挪。全书共包含四篇34章以及附录,本周Alan仅仅简单的学习了第一章,整体感觉这本书还是不错的,因为它以实例来讲概念,这样就不会太过枯燥。要了解php常用的函数等内容,可以访问php.net。Alan按步就班的学习完了第一章,收获还是颇丰的。从最基础的php标签<?php ?>、输出函数echo开始,然后接触到注释(comment),主要有单行注释符//和多行注释符/* */。

然后接触到函数date()以及连接操作符.

还有变量的组成,通常是以$开始,如$tireqty,还有所谓中等风格如$_POST[‘tireqty’],这在处理表单对变量赋值时会用到,当然赋值符号是=,还有+-*/%, +=等操作符,由于=为赋值操作符,在比较时相应的就需要用==来表示等于。操作符还拥有各自优先级,此外,又讲到了变量类型,如整型(integer)、浮点型(float)、字符串型(string)、布尔型(boolean)等。PHP属于弱类型语言,您可以在使用中进行类型转换,如(float)$a; 也可以使用gettype()函数获知变量类型,settype()设定变量的类型,is_integer()等函数也可用来检测。

变量以外还有常量,通常是以大写字母来表示,可通过define函数来赋值。

然后就是if, elseif, switch语, while, foreach, do…while循环

总的来学,只能算是囫囵吞枣,苦劳还是有的。这不,要抄了不少代码呢:

网上恰巧找到了这本书的电子版,就拿出来与大家分享一下

pdf下载地址:php和mysql web开发(原书第4版)
php和mysql web开发(原书第4版)

iOS6.1完美越狱iPod Touch4 尝鲜

Alan并非果粉,为了领略一下苹果公司的iOS系统究竟如何,就买了一个iPod Touch 4代。平心而论,iOS系统确实有其优点,但自从升级到6.0以后,iBooks中英文词典丢失的问题就一直没有找到解决方案,让我颇有些失望。当然出于版权保护,iOS系统还拥有一直为人诟病的系统不够开放的问题,所以自从得知evasi0n.com声称即将发布6.1系统的破解版开始,Alan就按捺不住跃跃欲试了。

国内首先发布越狱助手的可能是25PP.com,总体测试发现还是比较简单的。首先需要下载一个PP越狱助手,运行PPGhost.exe,程序会自动识别设备,点击开始越狱即可。

PP越狱助手开始越狱
然后点击jailbreak等待工具运行,首先会导入数据,然后设备会重启(此时不要动机器),然后会提示“继续下一步需解除屏幕锁定,并点击桌面上的Jailbreak图标”,这时只需按下高备上方的电源键解锁,然后点击屏幕上的Jailbreak图标,等待evasiOn工具提示完成。

evasi0n破解iOS
下图为evasi0n工具提示越狱完成的页面
evasi0n越狱完成页面越狱完成后就可以看到传说中的Cydia图标了(下图为Jailbreak图标及Cydia图标显示情况),是不是还挺容易的?Alan个人认为整个流程还是蛮“傻瓜”的。
Jailbreak及Cydia图标
然后就是安装IPA补丁了,这样就可以安装IPA格式的破解软件了。第一次启动Cydia会注销一次,重新进入选择您的身份,普通用户选择”user”(用户)
启动Cydia页面
点击Changes/变更如有更新内容请进行更新,然后点击Manage/管理,并选择Sources/软件源
Cydia更新及管理软件源

然后点击右上角的Edit/编辑,在弹出窗口中输入apt地址,Alan这里使用的是25pp的地址:http://apt.25pp.com,然后点击Add Source/添加源。然后软件源下的25PP手机助手源或点击Cydia中的搜索/Search找到相应的固件版本,这里用到的是AppSync fo IOS5.0+6.0+,安装等待完成即可。

 apt地址输入,固件选择

下面就是安装pp助手了,这样您就可以下载到一些破解的软件了。Alan对此并不是很熟悉,想来应该是可以选择其它工具的,比如91手机助手之类。

Windows下字体安装

虽然Windows操作系统集成了很多字体,但追求新潮的网友们总是有自己特别的需求,网上提供有多种多样的字体供您下载,可是如何安装这些字体呢?这些字体格式的后缀名通常为.ttf,安装也很简单,只需解压缩从网上下载的字体文件到C:\Windows\Fonts目录下(Windows7需要管理员权限)。如果此时您开启Photoshop, Illustrator等程序的话建议重启一下程序以应用新安装的字体。

Windows字体安装

下图为Alan在Adobe Photoshop中应用Harry Potter字体后的截图,怎么样?是不是很简单?

Harry Potter字体

Zencart本地安装及模板添加

Zencart是另一个比较流行的网店系统,安装也十分的简单,基本可以参考前面Magento本地安装进行配置。同样是需要在phpmyadmin中创建一个对应的数据库,然后按流程一步步安装,只是出于安全考虑,初次登录可能需要您修改admin文件夹的名称以及重置密码。

Zencart设置

如何添加Zencart模板?

为Zencart添加模板首先需要将您下载的模板解压缩复制到includes\templates文件夹下,然后登录Zencart后台点击菜单栏Tools>Template Selection,在右边点击Edit在下拉列表中选择相应的模板名称,然后点击Update更新即可。

Zencart模板选择

谷歌高级搜索:Operators

无论您再怎么博学,总有解决不了的问题,无论您有再好的记忆力,也有会忘记的事情。在这个信息爆炸的时代,人们总是需要在网络上寻找某些信息或找到一些问题的答案,最为主流的自然还是搜索引擎,中国的百度,俄罗斯的Yandex,当然少不了最为流行的Google。搜索引擎每天都会索引新的网页,面对如此多的信息如何进甄选便成为了另一个问题,首先当然少了多方面比对(triangulating),此外谷歌也有单独的Google Scholar,其中甚至融入了法律文件,当然Google Books也方便人们查阅诸多经典以核对信息。这些不是今天Alan想说的重点,因为谷歌自90年代末成立后就一直在改进算法以为用户提供良好的服务。

在搜索引擎上找到您想要的东西有时还需要一些技巧,自然有诸多方案,其中就有operators来为您更进一步的过滤信息。

如查找指定站点的操作符site:,当然您也可以限定顶级域名如site:.gov,则仅搜索.gov网站里的内容;

filetype:用于限定文件格式,如pdf,doc,csv等;

减号用于去除一些信息,如president -obama;

define:用于查看某个词的定义,如define:sagittarius;

Google Operator Define:

双引号” “基本上类似于ppc的词组匹配,在您搜索:”Alan Hou”,就不会出现Alan H Hou这样的结果;

OR,如搜索bike OR bicycle就会出现包含两者任一词或同时包含两个词的结,OR也可以用|代替,上面举的例子用bike | bicycle可以达到同样的效果;

~(tilde)符号是近义词运算符,如~inexpensive,不仅搜索包含”inexpensive”的结果,也同时搜索包含其近义词如“cheap,” “affordable,”  “low cost”等的结果;

..两个点的运算符用于限定数字范围,如mountain bike $100..$500就是搜索100到500美元之间的山地自行车;

*星号运算符,又称为wildcard,类似一个占位符,比如说一个外国人在搜索”Xi Jinping”,他不确定第二字是什么,就可以通过xi *ping得到相应的结果;

in运算符,主要用于度量单位和货币的查询,比如您不确定1镑等于多少公斤,就可以搜索1 pound in kilo,或者您想要知道100美元兑多少日元,就可以搜索$100 in yen(搜索结果仅供参考,具体地需参照当日汇率);

intext:,intitle:,inurl:这些字面就可以看出分别是搜索在文本,title,url中包含相应关键词的结果,与之相对应还有allintext:,allintitle:,allinurl:,其中allintext:Barach Obama等于intext:Barack intext:Obama,其它的以此类推;related:,link:,cache:分别指与所输入url内容相近,指向该url以及Google相应的缓存页面,weather用搜某地的天气…事实上您在搜索框右侧点击齿轮图标中的Advanced search(高级搜索)也可以获得很多类似功能(注意:要看到该项内容至少要进行一次搜索,Google主页是看不到相关选项的)。

在Google Guide中有更为详细的解释,详情请访问http://www.googleguide.com/advanced_operators.html

XAMPP,Magento环境安装及XAMPP删除

现在建立一个网站已经相当容易,像alanhou.org的博客使用的Wordpress,现在也非常流行,让像我这样不太懂程序的人也可以轻松运营一个博客。有的时候您可能想要在购买空间和域名之前先熟悉一下或者先不在线上进行编辑,这时您可以安装本地的服务器环境,如WAMP,MAMP,XAMPP等集成环境(AMP分别指Apache,MySQL,PHP),这些在网上都非常容易下载。而有时您需要的可能不仅仅是博客,而是想要赶一下电子商务的浪潮,现在同样有很多流行的网站系统,这里以Magento为例进行简单的说明。

首先安装xampp本地服务器环境,按照安装流程进行即可,安装完成后您将能看到一个xampp的控制窗口,运行本地服务器环境通常您仅需开启Apache和MySQL这两项服务。

Xampp control

Xampp与Skype冲突

在实际操作中您可能会遇到在上图的控制面板中无法成功开启Apache服务的情况,这时请检查是否同时开启了Skype,而Skype会占用Apache默认使用80端口。您可以选择关闭Skype,或者点击Skype菜单栏的工具>选项>高级>连接,将默认勾选的”将80端口与443端口作为接入连接的备用端口”去除;您还以选择修改httpd.conf文件中的”Listen 80″字段,将默认的80端口修改为其它端口。

安装Magento

下载magento解压缩后放到htdocs文件下,如C:\xampp\htdocs(根据安装路径会略有不同,以下所说C:\都是指安装路径),同意协议直接点下一步,在配置页可能会看到PHP extension “curl” must be loaded的警告,此时在C:\xampp\php下找到php.ini文件,使用ctrl+F搜索curl,将extension=php_curl.dll前面的分号;删除保存即可(此时您需要重启Apache以使修改生效)。

如果还不可以的话,您需要在xamp中找到libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll,前3个在php文件夹下,最后1个在该文件夹下的ext文件夹内(本地路径为C:\xampp\php\ext)这些文件,然后把它们都拷贝到C:\Windows\System32目录下,再重启apache即可。

PHP extension "curl" warning

打开http://localhost/phpmyadmin在MySQL版块创建一个数据库命名为Magento(或其它的名称)如果您在安装后修改了数据库的密码等,可打C:\xampp\htdocs\magento\app\etc下的local.xml修改数据库用户名和密码,在CDATA[ ]的框中输入或修改相应的内容即可
<username><![CDATA[root]]></username>

<password><![CDATA[ ]]></password>

安装Magento配置页面
后台登陆地址为http://localhost/magento/index.php/admin,如若无法登录:可能是由于浏览器在解析没有.的域名时候有问题,请将http://localhost换成
http://127.0.0.1试试 ,
当然您有可以通过修改host文件(C:\Windows\System32\drivers\etc)的方法实现
Alan测试使用的是下面的地址是,可以正常运行( 如果这些方法都不行的话,这可能是由于magento的cookie的问题,建议您使用非ie内核的浏览器,如firefox)
127.0.0.1        test.localhost.com

修改MySql密码phpmyadmin无法登录

在您修改了MySql之后可能会出现下面的提示:

Error
MySQL said:

Cannot connect: invalid settings.

phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.

这是因为您没有在phpmyadmin的相应文件中进行更新密码操作的原因。方法很简单,用记事本打开安装目录下的phpMyAdmin文件夹(如C:\xampp\phpMyAdmin)下的config.inc.php文件,然后找到下面的部分,然后更新密码即可。

$cfg[‘Servers’][$i][‘user’] = ‘root’;

$cfg[‘Servers’][$i][‘password’] =’请在些处更新密码’;

xampp及Linux站点配置相关知识

在日常使用中Apache的默认端口为80,有时会与其它服务的端口号相冲突,这时可通过修改httpd.conf中对于端口号的配置来解决冲突问题:
#Listen 0.0.0.0:80
#Listen [::]:80
Listen 80(此处可修改为8080等端口)

ServerName localhost:80(同样此处可修改为8080等端口)

配置站点根目录可在httpd.conf文件中修改以下两处地址,XAMPP中的默认地址为D:/xampp/htdocs:
DocumentRoot “D:/xampp/htdocs”
<Directory “D:/xampp/htdocs”>

关于站点的配置信息需要在httpd-vhosts.conf文件中进行配置,要使用这些配置需要在httpd.conf中配置该文件的地址,#表示注释,若Include前有#需将其删除:
# Virtual hosts
Include “conf/extra/httpd-vhosts.conf”
httpd-vhosts.conf中的主要配置信息:
<VirtualHost *:80>
ServerAdmin postmaster@dummy-host2.localhost 用于配置管理邮箱
DocumentRoot “D:/xampp/htdocs/dummy-host2.localhost” 用于配置站点路径
ServerName dummy-host2.localhost 用于配置域名
ServerAlias www.dummy-host2.localhost 用于配置别名
ErrorLog “logs/dummy-host2.localhost-error.log” 用于配置错误日志存放地址
CustomLog “logs/dummy-host2.localhost-access.log” combined 用于配置自定义日志存放地址
</VirtualHost>

上面的信息通常站点路径和域名较为重要,其它可根据实际需要来进行配置。此外如果在本地为站点配置了一个自定域名,需要在Windows系统盘下的host文件中配置相应的域名来实现该域名的访问。

删除xampp部分文件无法删除

此外在卸载xampp您可能会遇到xampp 文件夹无法完全删除的情况,这通常是由于您将mysql创建为了一项服务。解决方案就是在services里找到mysql, disable该服务。

然后以管理员权限在命令窗口(可以通过在开始菜单中或按Win+R快捷键然后输入cmd)输入sc delete mysql,此时您就可以正常删除xmapp目录下的所有文件了。

删除Services中的MySQL

 

顺便说一下在命令窗口修改MySQL数据库root用户密码使用的代码如下:

另外在做迁移时打数据库可以选择phpmyadmin也可以通过命令行,在Windows命令行中cd到MySQL的bin目录,如cd C:\xampp\mysql\bin,然后使用mysqldump命令进行打包
mysqldump -u root -p -–all-databases > allbackupfile.sql

解决Xampp与VMware冲突的问题

在开启了VMware的情况下启动Xampp会出现类似如下这样的443端口已被占用的报错

Port 443 in use by “E:\VMware\vmware-hostd.exe -u “C:\ProgramData\VMware\hostd\config.xml”” with PID 10784!

解决方法是在VMware(管理员权限)的主界面点击Edit>Preferences>Shared VMs,然后点击Disable Sharing修改HTTPS后的端口号(如改为446),再点击Enable Sharing,这样就可以正常启动Xampp服务了。

VMware修改端口

Mac系统中Xampp的安装

安装方法比较简,双击下载下来的后缀名为dmg的安装文件,然后按提示下一步下一步完成安装即可

Mac系统安装Xampp

Mac上Xampp配置进程

安装完成后可以在Lauchpad中找到Xampp并双击其中的程序,在弹出的窗口中点击Manager Servers选项卡,即可以选择开启或关闭Apache、MySQL服务。开启服务后在浏览器中输入http://localhost/xampp和http://localhost/phpmyadmin即可以访问到和Windows界面下同样的Xampp主页面和数据库管理界面。

 

Mac上Xampp的程序界面

另一种打开服务的方法是在终端(Terminal)中执行

/Applications/XAMPP/xamppfiles/xampp start

/Applications/XAMPP/xamppfiles/xampp stop

来同时开启/关闭Apache和MySQL服务,在执行之前请选输入sudo su切换到root权限,否则会出现如下报错:

You need to be root to perform this action.

sh-3.2# /Applications/XAMPP/xamppfiles/xampp start
Starting XAMPP for Mac OS X 1.8.3-3...
XAMPP: Starting Apache...ok.
XAMPP: Starting MySQL...ok.
XAMPP: Starting ProFTPD...ok.
sh-3.2# /Applications/XAMPP/xamppfiles/xampp stop
Stopping XAMPP for Mac OS X 1.8.3-3...
XAMPP: Stopping Apache...ok.
XAMPP: Stopping MySQL...ok.
XAMPP: Stopping ProFTPD...ok.

Magento或其它站点的文件和Windows类似,则需要放到/Applications/XAMPP/htdocs目录下。

如果想要通过命令行输入mysql -uroot -p连接数据库会提示sh: mysql: command not found,这和Windows中的环境变量的道理是一样的,所以可以通过

1.输入/Applications/XAMPP/bin/mysql -uroot -p来实现在命令行连接MySQL

2.ln -s /applications/xampp/bin/mysql /usr/bin来做一个软链接再执行连接