XAMPP安装(Apache+MySQL+PHP+PERL)

时间:2021-01-20 20:27:15

一直想学PHP, 但每次都因为其复杂的环境搭建望而止步, 最近在两位大神的帮助下终于搞定了, 分享安装过程及踩到的各种坑

下载安装XAMPP


官网: http://sourceforge.net/projects/xampp/files/
XAMPP安装(Apache+MySQL+PHP+PERL)
我下的是XAMPP5.6.14-4版本

下载完后解压按步骤安装即可, 这里我就遇到奇葩的坑了, 每次解压完安装时第一遍都会失去响应, 必须force quit

安装完后直接启动你会看到这个界面
XAMPP安装(Apache+MySQL+PHP+PERL)
XAMPP安装(Apache+MySQL+PHP+PERL)

安装目录一般都在:/Applications/XAMPP

一般情况下第一次安装, 上图的那三个开关都start的, 但是也不排除出错的可能:比如我按照网上的教程稀里糊涂的修改了/private/etc/apache2下的httpd.conf文件, 结果Apache Web Server一直stopped, 各种无奈, 重装了几次XAMPP都不行, 猜想肯定改了系统的东西, copy的别人的httpd.conf文件才搞定.

安装成功的标志就是在浏览器中输入localhost自动跳转到http://localhost/dashboard/并打开网页,
或者点击Go to Application的按钮, 效果一样

如果你都OK了, 恭喜你可以进入下一步了

配置虚拟主机


打开文件(不懂的千万不要动里面的其他代码)
XAMPP安装(Apache+MySQL+PHP+PERL)
把图中所示的两行代码

# Various default settings
# Include etc/extra/httpd-vhosts.conf

中的第二行前面的#去掉, 图中我已去掉了
主要作用就是引入虚拟主机的配置文件
可以根据所述路径找到并打开XAMPP安装(Apache+MySQL+PHP+PERL)

重启Apache Web Server, 这个时候浏览器中你输入localhost就会出错了, 为什么呢? 那肯定和引入的这个配置有关吧,
是的, 当你引入httpd-vhosts.conf配置时, 原来的httpd.conf配置就失效了^~^. 所以我们要在httpd-vhosts.conf中配置一下

<VirtualHost *:80>
  ServerName localhost
  DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs"
</VirtualHost>

这里重新配置回了localhost原来的指向路径DocumentRoot;

OK, 重启Apache Web Server你再试试, 哈哈, 熟悉的页面又回来了吧

说明一下: 设置它的DocumentRoot其实是让localhost访问DocumentRoot路径下的index.php文件, 它才真正是应用的入口, 就像OC的man.m文件

好了重点来了,
那么我想加载其他的项目文件怎么办呢, 继续配置这个文件
这里我下载的是Yii2 框架http://www.yiichina.com/download

<VirtualHost *:80>  //监听端口
  ServerName zhzblog.com //服务器名字
  ServerAlias www.zhzblog.com //服务器别名
  DocumentRoot /Applications/XAMPP/xamppfiles/htdocs/Yii2Blog-master/web    //项目的入口文件index.php所在的文件夹
# DirectoryIndex index.php 指定加载文件, 不设置就加载index.php
/* 设置 DocumentRoot文件夹的权限, 如果你打开网页出现access forbidden问题, 就配置一下, 没出现不配置也行
  <Directory /Applications/XAMPP/xamppfiles/htdocs/Yii2Blog-master/web>
  #设置当一个请求中没有给定请求的文件名又没有默认网页(首页)的时候, 显示文件列表
        Options Indexes FollowSymLinks Includes ExecCGI
        #设置权限控制的先后顺序, 只有两种: Deny,Allow(先拒绝后允许), Allow,Deny(先允许后拒绝)
        Order Deny,Allow
        #设置拒绝访问名单
        Deny from 拒绝名单 比如: deny from 192.168.1.1 172.180.4
        Allow from 允许名单 比如: Allow from All
        Require all granted
        #设置该文件夹下的"默认网页"(首页), 可以设置多个, 用于请求中不带文件名的时候自动使用该文件作为"返回"页面
        DirectoryIndex index.php main.php abc.html
  </Directory>
*/  
</VirtualHost>

注意注意注意了, 我就在这里卡了好久好久:设置DocumentRoot时, 路径一定要是英文引号, 最好不要引号, 否则打开zhzblog.com网址时会出现Object no found的问题, 打开下图错误日志你会看到这个问题, 莫名的多了~\xe2\x80\x9c~
AH00112: Warning: DocumentRoot [\xe2\x80\x9c/Applications/XAMPP/xamppfiles/htdocs/Yii2Blog-master/web\xe2\x80\x9d] does not exist
想了好久才知道是引号的问题
~~~~~~~~~~

然后就是设置域名的问题了
打开/etc/hosts做如下配置


127.0.0.1   www.zhzblog.com
127.0.0.1   zhzblog.com

OK, 到这里差不多都配置好了, 重启Apache Web Server, 浏览器中输入www.zhzblog.com或者zhzblog.com, 如果你发现网页上出现An internal server error occurred.
XAMPP安装(Apache+MySQL+PHP+PERL)

不要伤心
Congratulations on your!!
你已经配置成功了
至于为什么会出现这个问题, 你打开error log就会发现了
XAMPP安装(Apache+MySQL+PHP+PERL)

因为Yii2 帮你搭建好的框架但是其中需要存放数据的table需要自己创建

配置MySQL


其实XAMPP已经帮我们创建了几个数据库了, 不需要在下载, 如果你想下载最新的也行,替换/Applications/XAMPP/xamppfiles路径下的phpmyadmin文件夹就行
下载最新phpMyAdmin版本:http://www.phpmyadmin.net/

phpMyAdmin is a free software tool written in PHP, intended to handle the administration of MySQL over the Web.

浏览器输入http://localhost/phpmyadmin/你会打开phpMyAdmin, 这时候你发现创建表可能会出现错误, 如果出现类似#1146 - Table ‘phpmyadmin.pma_table_uiprefs' doesn't exist的错误

如果你能成功创建数据库, ok, 你可以跳过这个步骤了, 去配置Yii2需要的表
如果你出现了类似的错误, 跟着我配置也许能解决你的问题
首先XAMPP安装(Apache+MySQL+PHP+PERL)

然后打开config.inc.php进行配置

$cfg['blowfish_secret'] = 'xampp'; /* YOU SHOULD CHANGE THIS FOR A MORE SECURE COOKIE AUTH! */

/**
 * Servers configuration
 */
$i = 0;

/**
 * First server
 */
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
/* Server parameters */
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
//ture允许无密码操作, false不允许
$cfg['Servers'][$i]['AllowNoPassword'] = true;

/**
 * phpMyAdmin configuration storage settings.
 */

/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = '';

/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';
$cfg['Servers'][$i]['recent'] = 'pma_recent';
$cfg['Servers'][$i]['users'] = 'pma_users';
$cfg['Servers'][$i]['usergroups'] = 'pma_usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma_navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma_savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma_central_columns';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['designer_settings'] = 'pma_designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma_export_templates';
$cfg['Servers'][$i]['favorite'] = 'pma_favorite';
/* Contrib / Swekey authentication */
// $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf';

/**
 * End of servers configuration
 */

/**
 * Directories for saving/loading files from server
 */
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';

注意: pma_bookmark的前缀pma_
如果出现上面#1146 - Table ‘phpmyadmin.pma_table_uiprefs' doesn't exist错误么你可以
方法一: 导入文件(如果你是从官网下载的是没有sql文件夹的, 可以去 example夹找找)
XAMPP安装(Apache+MySQL+PHP+PERL)

方法二: 替换config.inc.php中的前缀pma_pma__, 或者pma__替换为pma_ 保存, 重启MySql, 或者重启电脑

创建Yii2所需要的数据库及5个table
XAMPP安装(Apache+MySQL+PHP+PERL)

终于OK了, 打开浏览器输入blog.com
XAMPP安装(Apache+MySQL+PHP+PERL)

就到这里吧, 这是我安装的过程中出现的问题, 每个的情况可能不一样, http://*.com/是个好地方

遇到的各种坑


1.坑一
2.坑二
3.坑三
4.坑四