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即可~ 注意这里要用 “/”,而不是“\”。