记一次Chocolatey造成的开发环境失误

记一次Chocolatey造成的开发环境失误

前情

今早上班的时候,照例写完代码开始运行代码,结果一直报错。因为用到了redis,报的还是redis的错,笔者对redis也很陌生,就以为是本地环境又抽了,就去折腾自己的事了。
笔者开始写一个简单的CRUD案例,然后发现数据库一直连接失败。检查了MySQL服务是否开启、检查了账号密码是否正确,注释又添加了一大段代码,终于在输出了错误信息:could not find driver(无法找到驱动)。

解决过程

菜鸡笔者一开始以为这里说的驱动是指盘符文件,因为写的数据库连接类里引入了一个数据库配置文件,又嗬哧嗬哧地去改路径,还是不对。终于反应过来这里的“驱动”应该指的是数据库驱动,也就是PHP的数据库驱动没有开。
运行了echo phpinfo();,Ctrl+F查找一下,果然,这个配置文件不是之前常用的配置。

PHP的版本是最新的7.3.9,这就很容易想到昨晚看到的一篇文章:《Windows统一开发环境的基础-Chocolatey》,大概是昨晚尝试了一下这个Windows下的包管理器,不小心把原先配置的PHP环境给覆盖了。

想明白之后,开始解决。

暴力解决法

一开始笔者以为Chocolatey只是将新装的PHP添加进了环境变量,覆盖了前面的,但在终端工具中查看PHP的版本信息时,发现并没有关系。

嗯,想了想,还是把新装的PHP所在的文件夹整个删了吧
很遗憾,有两个文件php7.dllPHP-CFG.exe正在使用,无法删除。

打开资源管理器,把一系列Nginx服务终止了,使用资源监视器把php.exe进程也终止了,嗯???还是删不掉??

又在“服务”那里看到php,果断右键-停止。再去删除文件夹,发现可以删除了。

删除了新装的PHP,再去运行代码,发现一切正常工作。


思考

这个问题解决之后,有时间去想一下温和一点的解决方案。既然这个PHP环境是Chocolatey添加了,那相应的肯定有卸载方法。这里记录一下关于Chocolatey的一些操作总结:

Chocolatey

  1. 安装:使用管理员身份运行cmd终端工具输入以下代码

    @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
    
  2. 检查是否安装正确:同样是cmd代码

    choco -?
    
  3. 自定义Chocolatey的安装位置(默认为系统的默认安装位置:C:\ProgramData\chocolatey

    • 新建环境变量ChocolateyInstall,其值为自定义的安装位置
    • 如果该位置不存在则必须手动创建
    • 运行安装命令,如果已经安装,可以再次运行安装命令,可重新安装到指定位置
  4. 使用Chocolatey安装软件:同样是以管理员身份运行cmd

    choco install php
    choco install php -y
    cinst php
    
    choco install nginx maria php
    choco install nodejs.install --version 10
    
    choco install choco.config
    
    • 在安装命令后添加-y表示安装过程中的一切选项都默认为确定
    • cinstchoco install的简写
    • install后可跟多个软件包名称,表明一次性安装多个软件包
    • install后跟.config文件,表明按照该配置文件安装软件包,这可以统一开发环境

    其中.config类似于:

    <?xml version="1.0" encoding="utf-8"?>
        <packages>
          <package id="php" />
          <package id="googlechrome" version="71.0.3578.98" />
          <package id="vscode" />
          <package id="7zip" />
        </packages>
    
  5. 升级包版本:还是cmd代码

    choco upgrage php
    
  6. 卸载包:依旧是cmd代码

    choco uninstall php
    
  7. 安装图形化界面:

    choco install chocolateygui
    

还没有真正尝试使用这款工具。有机会用上再说。

资源与参考

  1. Chocolatey官网

  2. Windows统一开发环境的基础-Chocolatey

  3. Windows下的包管理器Chocolatey

posted @ 2019-09-24 16:56  Linnzh  阅读(193)  评论(0编辑  收藏  举报