php 学习系列之 xampp 使用与配置

一、前言:

首先,学习一门后台语言肯定是从搭建其环境说起,所以,在学习 php 之前首先必须学习如何搭建 php 环境。之前也了解过一些集成的开发环境,如:phpStudy、LAMP和 xampp等。由于之前工作中与 php 后台对接时使用过 xampp,所以这里我就选择用 xampp 搭建环境。

二、安装:

不多说,直接上官网,在官网选择适合自己系统的安装包下载即可。这里我选择的是 window 系统版本。

xampp mysql教程_php

接着下载完,点击安装,除了选择需要安装的目录(这里我的目录是 F:/xampp/install)外,其他都是下一步,最后安装完成。

xampp mysql教程_配置_02

三、使用

在打开界面中,点击 “start” 开启 “apache” 服务,当 apache 模块变成绿色后(如图 开启apache服务.png),浏览器打开http://localhost/, 如果能看到 “welcome to xampp”(如图 welcome to xampp.png) 即代表安装成功。

xampp mysql教程_apache_03

xampp mysql教程_apache_04

四、导航内容

在这里,可以通过点击导航的 “FAQs” 来查看安装或者使用中遇到的一些问题,和 “HOW-TO Guides” 来对 xampp 进行一些配置。详细的可以自行查看,这里不一一解释。

五、xampp中开发php

那么安装完,该如何去进行 php 开发呢?

这里,我们可以在 xampp 的安装目录下查找到 “htdocs” 目录,这是 xampp 默认的目录地址,我们开发的所有 php 页面都必须放在这里才能在网站中查看。这里我新建了一个 test.php 页面。

xampp mysql教程_配置_05

在 test.php 中,我们编写了一个最简单的 php 程序,输出一个 “hello world”:

<?php
    echo "hello world";
?>

接着我们打开浏览器,输入网址 http://localhost/test.php 即可看到浏览器输出 “hello world”。

六、配置虚拟主机

所谓的配置虚拟主机,就是每个虚拟主机可以映射到服务器的不同子目录,从而实现在同一物理服务器上运行多个网站或web应用程序。英文版可以查看文档:

xampp mysql教程_配置_06

下面是详细步骤说明:

(1)配置文件 httpd-vhosts.conf

在安装目录下(这里我的目录是 F:\xampp\install\apache\conf\extra)找到文件 httpd-vhosts.conf, 在文件的末尾添加如下内容:

<VirtualHost *:80>
##    ServerAdmin mdtms@localhost.com
    DocumentRoot "F:\xampp\install\htdocs"
    ServerName localhost
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "F:\php\test\thinkphp"
    ServerName www.cimi.com
</VirtualHost>

xampp mysql教程_php_07

解释:

  • 第一个 <VirtualHost> 是默认的或者备用的虚拟主机,DocumentRoot 配置的是默认的目录地址 F:\xampp\install\htdocs, ServerName 配置的是 localhost, ErrorLog 和 CustomLog 两个打印的分别是 错误日志 和 操作日志。这个目录用于所有未被后续块匹配的请求。
  • 第二个 <VirtualHost> 是自定义配置的虚拟主机,DocumentRoot 配置的是创建自定义的目录(这里我创建的 F:\php\test\thinkphp),ServerName 配置的是 一个虚拟主机指定的一个自定义虚拟域名(这里我自定义的是 www.cimi.com)。

现在你的虚拟主机已经配置好了。但是实际上你在浏览器打开 www.cimi.com 并不能看到效果,因为该域实际上并不存在。要解决这个问题,就需要将定制域名映射到本地 IP 地址。

(2)配置文件 hosts

在你的电脑上找到目录 C:\windows\system32\drivers\etc 下的 hosts 文件(也可以 win + r 输入 drivers 回车进入到 drivers目录下找到 etc\hosts),并添加以下一行内容:

127.0.0.1           www.cimi.com

如图所示:

xampp mysql教程_xampp mysql教程_08

这里需要注意的是,hosts 需要管理员权限才能修改。(如果不能直接修改保存,可以把该文件拖到桌面,修改保存后再放回目录中。)

(3)测试:

按照文档中说的,至此,我们的配置已经完成了。要测试我们的配置是否成功,只需要在你配置的目录下(F:\php\test\thinkphp)新建一个 index.php 文件,同样我们写入最简单的 hello world 语句,打开 www.cimi.com,但是,这时我们的页面报错了。XAMPP 配置出现 403 错误 “Access forbidden!”

七、配置中遇到的问题及思路

403错误

‘access forbidden’ 禁止访问。从这里可以看出是权限不够的原因。既然是权限不够,那就配置一下。搜索了一下 apache 的 403 报错,原来还需要配置一下httpd-conf 文件。在安装目录中找到 httpd.conf(F:\xampp\install\apache\conf\httpd.conf)文件,搜索 <Directory />, 将默认的修改为下面所示:

# 默认的
# <Directory />
#     AllowOverride none
#     Require all denied
# </Directory>

# 修改
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

如图所示:

xampp mysql教程_php_09

保存文件并重启 apache,再次打开 www.cimi.com,然而还是报错 403

这时是有点懵逼的,不是已经配置了 httpd-conf 文件了吗,怎么还是报错 403 呢?难道还是配置有问题?这时想起后台同事曾经说过,可以查看一下 log 日志。在软件的后面可以查看到一个 Logs 按钮,我就点击了打开了 Apache(error.log),拉到最底下看到了如图所示:

xampp mysql教程_xampp_10

报错信息显示:client denied by server configuration,百度后才发现原来 apache2.4apache2.2 的虚拟主机配置写法不同导致。我们一开始的写法是 apache2.2 的,所以在版本 apache2.4 下就会报这个错误。修改一下:

在 apache2.2 中 httpd.conf 的写法是:

# v2.2
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

# v2.4
<Directory />
  Require all granted
</Directory>

xampp mysql教程_php_11

再次重启一下,打开浏览器,完美。这时我们的网址就能打开 www.cimi.com,看到 hello world

(1)-n报错

① 安装 xampp 时提示找不到文件 “-n”;
② 提示没有安装 Microsoft Visual C++ 2008 Redistributable Package (x86)。

【解决方法】
遇到这两个错误后不管它,继续安装。完成后下载 Microsoft Visual C++ 2008 Redistributable Package (x86),可以到这里下载:,安装完这个之后双击 xampp 安装目录下的 setup_xampp.bat 文件,最后运行安装目录下的 xampp-control.exe 文件,此时启动 Apache 就可以成功了。

(2)pid4报错

① Port 80 in use by “Unable to open process” with PID 4!

【解决方法】
PID 4 是系统的服务占用了80端口,所以要么结束系统服务,要么修改apache端口。PID4 的服务是 World Wide Web Publishing Service。这里选择结束这个系统服务,win + r 运行 services.msc,找到 World Wide Web Publishing Service 然后停止该服务即可。防止下次开机再出现这种情况,在属性里可设置成手动启动。

(3)Error: Apache shutdown unexpectedly
Error: Apache shutdown unexpectedly.
 [Apache] This may be due to a blocked port, missing dependencies,
 [Apache] improper privileges, a crash, or a shutdown by another method.
 [Apache] Press the Logs button to view error logs and check
 [Apache] the Windows Event Viewer for more clues
 [Apache] If you need more help, copy and post this
 [Apache] entire log window on the forums

xampp mysql教程_apache_12

【解决方法】
配置虚拟机时 DocumentRoot 后的地址最后不能加 “\”,加了就会报上面所示的错误。

# 错误写法:
<VirtualHost *:80>
    DocumentRoot "F:\php\test\thinkphp\public\"
    ServerName www.cimi.com
</VirtualHost>

# 正确写法:
<VirtualHost *:80>
    DocumentRoot "F:\php\test\thinkphp\public"
    ServerName www.cimi.com
</VirtualHost>

八、修改数据库的默认密码

  1. 修改默认密码:打开 xampp 的 shell 界面,输入命令行 :mysqladmin -u root -p password xxxx (“xxxx” 为你设置的密码),运行后会提示输入旧密码(没有就不填),如果正确,则会立即修改新输入的密码;
  2. 在你的 F:\xampp\install\phpmyadmin\ 下搜索 config.inc.php 并修改为下面所示:(默认 password 是空的,这里填写上和你第一步中一样的新密码即可)
$cfg['Servers'][$i]['password'] = 'xxxx';
  1. 在浏览器中输入 http://localhost/phpmyadmin(如果设置了虚拟主机就可以输入 http://www.cimi.com/phpmyadmin/), 即可查看到数据库情况。