TOC

Windows下搭建PHP开发环境

PHP集成开发环境有很多,如XAMPPAppServ…只要一键安装就把PHP环境给搭建好了。

下载三剑客

本次实践的版本:

  • php 7.3.4
  • mysql 8.0.15
  • apache 2.4.39

安装软件

修改软件配置文件的时候建议使用notepad++或者vs-code

Apache2安装

  • SRVROOT字段修改为Apache2的安装目录
    Apache2安装是解压即安装,选择合适的解压目录,在Apache24/conf文件夹下找修改httpd.conf文件,注意:下面的配置是在三剑客使用scoop安装的基础上,可根据自己三剑客安装路径不同做更改,SRVROOT不是之后用户访问的目录
Define SRVROOT "D:\Program_Files\Scoop\apps\php\current"
# 如果需要定义用户访问目录,可以自定义常量
Define WORKSPACE "F:/Workspace/PHP"
# 还可以定义php安装路径常量,例如
Define PHPROOT "D:\Program_Files\Scoop\apps\php\current"
  • 将安装路径添加到环境变量中,之后是使用httpd命令启动服务器。在浏览器中输入localhost会显示it works。则表示安装成功。如果命令在运行过程中提出Set ServerName...类似的警告。修改上述配置文件。搜索ServerName的那一行,将之设置为ServerName localhost:80

PHP安装

PHP安装和Apache2的安装类似,都是解压即安装。

MySQL安装

MySQL是msi安装包,可以双击安装,如果不懂安装内容可以选择全部特性。也可以按照自己的需要自定义Custom安装。

整合三剑客

修改Apache配置文件httpd.conf

  • 让Apache可以解析php文件。搜索LoadModule php,在下面新加一行写上PHP安装文件夹中php[x]apache2[y].dll的路径。例:
#由于前面已经定义过php安装路径的常量PHPROOT
LoadModule php7_module "${PHPROOT}/php7apache2_4.dll"

注意大小写,之后接php[x]apache2[y].dll名称 -> php7apache2_4.dll

  • 增加Apache2服务器支持主页文件类型。搜索DirectoryIndex,将其改为
 DirectoryIndex index.php index.html
  • 修改Apache2的站点目录。这里为了多个站点开发方便,使用apache的单IP多站点配置
    修改之前注意先在配置文件中搜索相关的信息,然后修改内容
  • 修改httpd.conf加载httpd-vhosts.conf文件
    #设置一个servername,使得运行httpd服务时不发出警告,前面提到过
    
    ServerName localhost:80
    
    #启用vhost配置文件
    
    
    #Virtual hosts
    
    Include conf/extra/httpd-vhosts.conf
  • 修改httpd-vhosts.conf`文件
    <VirtualHost *:80>
    ServerAdmin huangwein@foxmail.com
    DocumentRoot "${WORKSPACE}"
    ServerName phpinfo.com
    ErrorLog "logs/phpinfo.log"
    CustomLog "logs/phpinfo.log" common
    </VirtualHost>
  • ${WORKSPACE}目录下新建一个index.php文件,内容为
    <? php
    phpinfo();
    ?>
  • 修改系统‪C:\Windows\System32\drivers\etc\hosts文件
    127.0.0.1    phpinfo.com
  • 校验vhost配置是否正确
    httpd -t -D DUMP_VHOSTS
    
    #会出现下面信息
    
    VirtualHost configuration:
    *:80                   is a NameVirtualHost
    port 80 namevhost phpinfo.com (D:/Program_Files/Scoop/apps/apache/current/conf/extra/httpd-vhosts.conf:51)
  • 启动httpd服务
    httpd # Ctrl+C 关闭服务
  • 启动服务的另外一种方式
    #可以将apache安装成服务,这样就可以不用每次占用一个单独的命令窗口维持服务
    
    sudo httpd -k install
    
    #卸载服务
    
    sudo httpd -k uninstall
    
    #启动服务
    
    sudo net start apache2.4
    
    #停止服务
    
    sudo net stop apache2.4
  • 访问phpinfo查看配置信息

当然也可以不启用单IP多站点功能,只需要改动httpd.conf文件中的DocumentRootDirctory即可,后面的hosts文件和httpd-vhosts.conf(确认没有在httpd.conf文件中包含)都可以不用修改。

修改php配置文件php.ini

php.ini-development文件复制一份,名称为php.ini(文件中分号是注释符号)
在浏览器中phpinfo查看php加载是哪个目录的配置文件

将php.ini文件放到该目录才能使配置生效。

  • 让PHP知道扩展库目录ext的位置。搜索
; On windows:
; extension_dir = "ext"

修改为

; On windows:
extension_dir = ".\ext" #由于可能不清楚php加载的是哪个路径下的配置文件,使用相对位置存在位置风险,所以最好使用绝对路径
extension_dir = "D:\Program_Files\Scoop\apps\php\current\ext"
  • 开启相应的库功能。搜索curl,将行的注释取消。
;extension=curl
extension=curl

同样的操作适用于gd2,mbstring,mysql,xmlrpc,openssl当前实践中的php版本在使用curl模块的curl_init()时会报错,需要将php安装目录下的libssh2.dll放入apache/bin目录下。

  • 设置时区。搜索timezone,修改
date.timezone = Asia/Shanghai

验证安装

  • 启动Apache服务
  • 浏览器访问phpinfo,观察是否出现PHP信息的网页。
  • 在网页中搜索已安装模块的名称,会显示模块是否enabled和该模块的配置简要介绍。

安装三剑客的另外方法scoop

安装mysql

scoop install mysql
sudo mysqld --install #不用sudo没有权限
sudo net start mysql
mysql -u root    #不用输密码

安装apache

scoop install apache

安装php

scoop install php

安装PHP-Redis扩展

安装Redis

scoop install redis
cd D:\Program_Files\Scoop\apps\redis\current\
#安装redis服务
redis-server --service-install redis.windows.conf --loglevel verbose
#启动redis服务
sudo net start redis
#停止redis服务
sudo net stop redis
#卸载redis服务
redis-server --service-uninstall 

安装方式除了scoop之外可以直接到PHP-Windows官网下载安装包或者已经编译好的命令文件,如果使用msi安装包安装,默认会将服务安装号,不需要手动安装服务。

下载PHP-Redis扩展文件

  • 进入phpinfo.com查看当前机器架构,是否支持多线程安全,VC编译器版本
    编译器版本、系统架构、TS(thread safety)
  • 进入Redis Package下载对应版本的扩展包

    由于本次实践安装的PHP版本是7.3,所以选择

    将解压之后的文件夹中php_redis.dllphp_redis.pdb放入PHP扩展库文件目录,D:\Program_Files\Scoop\apps\php\current\ext

修改PHP配置文件

修改php.ini文件,在众多扩展库后面加上一行

extension=php_redis

启动服务

sudo net start redis
sudo net stop apache2.4
sudo net start apache2.4

总结

将程序以Windows服务的方式运行,使用的时候确比较方便,但是在环境搭建时,启动和关闭服务耗时较长,可以通过命令的方式替代服务,等环境正式稳定了,再使用Windows服务的方式。

Leave a Reply

Your email address will not be published. Required fields are marked *