器→工具, 工具软件

PHP集成运行环境XAMPP

钱魏Way · · 633 次浏览

PHP已经没有像当年个人网站蓬勃发展是那么火热,但期间留下来的很多开源的程序还是有非常高的学习和使用价值,比如这个博客正在使用的WordPress。在研究PHP代码的过程中需要部署PHP的运行环境,比较简单的方法是使用集成运行环境。

PHP集成运行环境

PHP集成运行环境顾名思义就是集成了运行PHP所需的软件,比如PHP程序解释器、服务器(Apache/Nginx)、数据库(MySQL/MariaDB)、数据库管理软件(PhpMyAdmin)等,并且提供了方便的启动、配置等界面。

推荐软件:

  • XAMPP:Apache + MariaDB + PHP + Perl + PhpMyAdmin,支持Windows、Linux、Mac OS
  • Wnmp:Nginx + MariaDB + PHP + phpMyAdmin,仅支持Windows

由于Apache的性能没有Nginx的好,线上的服务器基本上都是使用Nginx,当前比较推荐Wnmp。由于自己先前一直使用的是XAMPP,已经比较熟悉,所以暂时没有调整。

XAMPP常用配置

设置MySQL密码

安装完XAMPP后,MySQL的默认账号为root,密码为空,非常的不安全,解决办法是给MySQL设置密码。具体操作不走如下:

  • 使用里游览器打开 http://localhost/phpmyadmin,进入后点击“用户”
  • 点击用户为root,主机为localhost的编辑权限。
  • 在弹出层中设置密码,然后点执行即可,如下图~

当以上操作都结束之后,MySQL的密码已经修改过来了。但是当再次点击 phpMyAdmin时却发现无法再登录了。

返回的提示为:无法连接:无效的设置。phpMyAdmin 尝试连接到 MySQL 服务器,但服务器拒绝连接。您应该检查配置文件中的主机、用户名和密码,并确认这些信息与 MySQL 服务器管理员所给出的信息一致。

问题原因为phpMyAdmin的配置文件中需要配置MySQL的密码,当MySQL密码被修改后需要手动的去修改phpMyAdmin的配置文件。

即修改xampp/phpMyAdmin/config.inc.php文件,找到$cfg[‘Servers’][$i][‘password’] =”,并将对应的密码设置为你新设置的密码即可。

多域名/多站点部署

XAMPP默认安装完毕后,站点文件默认放在/xampp/htdocs/ 文件下,并且可以通过http://localhost 进行访问。先前在测试各种程序的时候均是在/xampp/htdocs/ 文件下新建目录,比如/xampp/htdocs/wordpress ,然后通过http://localhost/wordpress/ 进行访问。

如果目前有测试三个程序的需求(wordpress,discuz,phpwind),期望给每个程序都单独的分配一个域名。比如

  • wordpress -> www.wordpress-test.com
  • discuz -> www.discuz-test.com
  • phpwind -> www.phpwind-test.com

以下为具体解决方法:

修改hosts文件

不管你是否拥有上述域名,如果想通过域名访问自己建立的站点,这需要先对host文件进行修改。打开C:\Windows\System32\Drivers\etc目录下的 hosts 文件,加入如下三行:

127.0.0.1  www.wordpress-test.com
127.0.0.1  www.discuz-test.com
127.0.0.1  www.phpwind-test.com

添加完毕后,保存即可若遇到hosts文件无法修改的解决办法是,先把hosts文件复制到桌面,在桌面改好后再复制到 etc 文件夹下进行替换旧的hosts文件。

修改Apache虚拟主机的配置

在虚拟主机设置文件xampp\apache\conf\extra\httpd-vhosts.conf里设置:

删除 NameVirtualHost *:80 前面的 ##,即删除注释来启用httpd-vhosts.conf里的配置。

在文件最后追加以下内容:

<VirtualHost *:80>
    DocumentRoot /xampp/htdocs/wordpress
    ServerName www.wordpress-test.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /xampp/htdocs/discuz
    ServerName www.discuz-test.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /xampp/htdocs/phpwind
    ServerName www.phpwind-test.com
</VirtualHost>

设置完毕后,保存并重启apache就可以通过www.wordpress-test.com直接访问/xampp/htdocs/wordpress下的内容了。

让localhost再次生效

做完了上述操作后,发现使用localhost直接定位到了/xampp/htdocs/wordpress下的内容了,而我期望的是还是定位到/xampp/htdocs/的内容。也就是默认的httpd的设置失效了。解决防范就是把localhost的配置在httpd-vhosts.conf里配置回来。

再在文件的最后添加上如下内容,并重启Apache。

<VirtualHost *:80>
    DocumentRoot /xampp/htdocs/
    ServerName localhost
</VirtualHost>

至此,XAMPP 的虚拟主机设置完毕,现在 访问 localhost 还是原来的 XAMPP 的内容,访问 www.wordpress-test.com 将指向到绑定的 wordpress 目录,访问 www.discuz-test.com 将指向到绑定的discuz 目录…

更换程序默认目录

如果我不想把测试的程序放到/xampp/htdocs/目录下,比如说我想放在D:\website\目录下,该如何解决呢?要实现此功能共有2种方法:

1、修改httpd-vhosts.conf文件中配置

原配置如下:

<VirtualHost *:80>
    DocumentRoot /xampp/htdocs/wordpress
    ServerName www.wordpress-test.com
</VirtualHost>

需要修改为:

<VirtualHost *:80>
    DocumentRoot D:\website\wordpress
    ServerName www.wordpress-test.com
    <Directory D:\website\wordpress>
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

即新增一个Directory节点来允许目录可访问。注意:D:\wordpress\wordpress 文件夹的最后不需要再加”\”。

2、修改httpd.conf文件中的配置

打开E:\xampp\apache\conf目录下的httpd.conf文件。找到DocumentRoot所在行。将DocumentRoot “D:/xampp/htdocs”,修改为D:/website,找到<Directory “D:/xampp/htdocs”> 修改为 <Directory “D:/website”> ,保存后重启Apache即可~ 注意这里要用 “/”,而不是“\”。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注