V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
MrMike
V2EX  ›  C

需要在 windows 上运行一个小程序,用来检查是否已经配置 PHP 的运行环境,请问用哪个语言开发简单些呢? c++, Python 或其它?

  •  
  •   MrMike · Dec 20, 2017 · 4381 views
    This topic created in 3053 days ago, the information mentioned may be changed or developed.

    如题,如果本地电脑已经配置了 php 的运行环境,就直接运行 php 程序,否则就自动下载相关的程序进行安装配置,请问用哪个语言要简单些呢?

    Supplement 1  ·  Dec 20, 2017
    需要有一个界面来引导终端客户一直 NEXT 进行操作的,不能让用户自己输入命令去查询。
    54 replies    2017-12-22 09:55:40 +08:00
    ljsh0102
        1
    ljsh0102  
       Dec 20, 2017
    F#
    wkan
        2
    wkan  
       Dec 20, 2017 via iPhone
    建议直接打包和程序一起打包 php 运行环境
    wkan
        3
    wkan  
       Dec 20, 2017 via iPhone
    修正:建议直接和程序一起打包 php 运行环境
    MrMike
        4
    MrMike  
    OP
       Dec 20, 2017
    @wkan 不想跟程序一起打包,程序在配置好本地运行环境后,自动下载到本地电脑上。所以需要在下载程序之前就要检查下运行环境。
    MrMike
        5
    MrMike  
    OP
       Dec 20, 2017
    @ljsh0102 谢谢
    clino
        6
    clino  
       Dec 20, 2017
    建议用 go 试试,虽然我不会 go,但是编译出的工具没依赖,比 python 部署方便,开发效率又比 c++之类的高
    mt7620
        7
    mt7620  
       Dec 20, 2017
    C#之类的应该在合适不过了
    ysc3839
        8
    ysc3839  
       Dec 20, 2017
    Windows 的话,我觉得 Powershell 会比较方便。Python 也可以的,用 PyInstaller 打包成 exe 也可以直接运行。
    Ellison
        9
    Ellison  
       Dec 20, 2017   ❤️ 1
    批处理就行吧,一般 Windows 下配 PHP 环境,都会加上环境变量吧,直接批处理跑下 php -v,如果命令不存在 errorlevel 就是 9009
    Arnie97
        10
    Arnie97  
       Dec 20, 2017 via Android
    @mt7620 然后配置 PHP 的运行环境前,先要配置 C#的运行环境(逃
    MrMike
        11
    MrMike  
    OP
       Dec 20, 2017
    @ysc3839 @mt7620 如何检查是否安装了指定的软件呢?检查注册表还是有其他方法呢?
    anyx
        12
    anyx  
       Dec 20, 2017
    这么简单的需求,还是 windows,必然是批处理或 powershell 或 vbs 或 js
    neoblackcap
        13
    neoblackcap  
       Dec 20, 2017
    windows 小程序请使用 C#
    Hellert
        14
    Hellert  
       Dec 20, 2017
    使用直接编译成本地代码的,Go, Delphi, VC++都可以。
    omph
        15
    omph  
       Dec 20, 2017
    powershell
    MrMike
        16
    MrMike  
    OP
       Dec 20, 2017
    @omph
    @anyx 不能让用户自己去输入命令查询,需要有一个界面来展示给用户,用户只需要选择下一步就可以了,所有的检查工作,在程序内部处理。
    araraloren
        17
    araraloren  
       Dec 20, 2017
    @MrMike
    Use PowerShell or bat or other script check PHP environment.
    Use C# make a GUI wrapper of that script.
    MrMike
        18
    MrMike  
    OP
       Dec 20, 2017
    @araraloren thanks for your reply.
    acros
        19
    acros  
       Dec 20, 2017
    批处理脚本 UI 和下载检测不好办。
    还是选.net 派系,要我就直接开 C#了,反正.net framework 版本选的低一点也没关系,这会 php 开发机也不会是 xp 系统的说。
    MrMike
        20
    MrMike  
    OP
       Dec 20, 2017
    @acros 很有可能还是 xp 系统。
    BBrother
        21
    BBrother  
       Dec 20, 2017
    只有我是装一个文件夹的 exe 然后顺着点吗?
    ysc3839
        22
    ysc3839  
       Dec 20, 2017
    @MrMike 环境变量?注册表应该检测不到的,PHP 属于绿色软件,随便扔哪都能用的。
    acros
        23
    acros  
       Dec 20, 2017 via iPhone
    @MrMike 这下还不得不用批处理脚本先查环境,然后自带个.net framework 安装包备用。

    以前盗版游戏光盘就是这么弄的....😂
    MrMike
        24
    MrMike  
    OP
       Dec 20, 2017
    @acros 哈哈,是这样的哦。
    MrMike
        25
    MrMike  
    OP
       Dec 20, 2017
    @ysc3839 所以,如何检查是否配置了 apache 这样的软件呢。用 linux find 这样的命令全盘搜索,可能消耗太大了,或者 ping 本地 localhost 然后再根据返回的数据进行是否支持 php,不晓得这样是否可行,效率如何了。
    ysc3839
        26
    ysc3839  
       Dec 20, 2017
    @MrMike 这种情况就不要搜索了,检查一下环境变量,没有的话让用户选择位置。
    MrMike
        27
    MrMike  
    OP
       Dec 20, 2017
    @ysc3839 我试试。
    acgnsstech
        28
    acgnsstech  
       Dec 20, 2017
    我觉得楼主可以看看 http://mdoc.vip 思路有点像 也是需要安装个 php 环境 XAMPP
    jason19659
        29
    jason19659  
       Dec 20, 2017
    批处理
    Hellert
        30
    Hellert  
       Dec 20, 2017
    也可以考虑 InnoSetup 或 NSIS 这类安装程序制作工具,环境检查网络下载都可以做,上手比较快。
    MrMike
        31
    MrMike  
    OP
       Dec 20, 2017
    @acgnsstech 最终的程序是 php 的,但是跟 mdoc 不一样,就是不想让终端用户去配置环境,也不需要用户晓得是 php 需要什么样的运行环境。
    yaowenz
        32
    yaowenz  
       Dec 20, 2017
    C#
    MrMike
        33
    MrMike  
    OP
       Dec 20, 2017
    @Hellert 看了下介绍,貌似可以满足,晚上试试。之前用 installshield 没搞成。
    acgnsstech
        34
    acgnsstech  
       Dec 20, 2017
    @MrMike

    http://gtk.php.net/ 直接用 php 开发桌面软件~~
    hiboshi
        35
    hiboshi  
       Dec 20, 2017
    有想过怎么检查 是否安装 php?
    环境变量,如果没在环境变量中注册,但是 有 php 源码,是否算有 php ?
    ioven
        36
    ioven  
       Dec 20, 2017
    autoit,以前很多安装程序使用
    wwwwzf
        37
    wwwwzf  
       Dec 21, 2017
    C#
    msg7086
        38
    msg7086  
       Dec 21, 2017   ❤️ 1
    但是 PHP 环境你是绕不过的。而且一不小心就会搞出事情来。

    以前见到过个傻逼桌面安卓模拟器,用的 VirtualBox,然后我装上了它,它把我 VirtualBox 里的虚拟机清空了,塞上了自家的虚拟机镜像。
    看着我就不高兴了,就把它卸载了。然后它很自觉地帮我把 VirtualBox 整个卸载了。

    回到主题,如果用户已经安装并定制了一份 PHP,你是打算复制一份出来吗?还是直接原样跑用户的环境呢?
    如果用户装的 PHP 版本和你想要的不一样怎么办呢?
    如果用户不用 Apache 而用 IIS 你怎么办呢?
    如果你自己要用到的扩展和用户自己用的扩展冲突了要怎么办呢?
    loading
        39
    loading  
       Dec 21, 2017 via Android
    批处理就能完成
    cchange
        40
    cchange  
       Dec 21, 2017 via iPhone
    @msg7086 说道虚拟机 qemu 虚拟机是不是满足需求呢? 但 qemu 是不是得装虚拟网卡?
    ipwx
        41
    ipwx  
       Dec 21, 2017
    别用系统的 php,还是都用自己的更好。至少自己的 php 可以自己管理目录,自己管理环境。
    UnknownR
        42
    UnknownR  
       Dec 21, 2017
    用 powershell,看看$env 变量里有没有 php,没有就调 http-request 下载,执行外部程序安装,要界面的话就用 c#写
    janxin
        43
    janxin  
       Dec 21, 2017
    php 啊...
    oott123
        44
    oott123  
       Dec 21, 2017
    我觉得终端用户机器上装了 php 的肯定少,而且又要符合版本,搞不好还要部分扩展什么的,到时候用户不小心改了自己的环境你的软件跑不起来了又很麻烦……这又不是 vcredist 或者 .net fx 有完善的管理机制。

    所以我建议:不如不管用户装没装自己都下一个。

    至于用啥,我觉得 InnoSetup 之类的工具就行啊……
    MrMike
        45
    MrMike  
    OP
       Dec 21, 2017
    @UnknownR 这个好像不得行,我本地电脑装了 phpStudy ( PHP 环境集成包),在环境变量里面,没有设置 PHP,也是可以运行 PHP 的。
    MrMike
        46
    MrMike  
    OP
       Dec 21, 2017
    @oott123 如果都单独装,apache 和 mysql 需要使用端口,如果之前已经配置了,不判断就进行重新安装的话,就运行不了。所以,还是想在安装之前,对本地电脑进行检查下,看是配置了 apache 还是 iis,及其 php,mysql 版本等等,如果已经配置,但是不适合项目运行的话,就提示用户进行处理或者修改端口。
    @msg7086
    MrMike
        47
    MrMike  
    OP
       Dec 21, 2017
    @UnknownR 谢谢,需要有界面。刚才看了下 WPF 的使用,还没摸到门路。
    xsliang
        48
    xsliang  
       Dec 21, 2017
    照顾老机器又要有界面 选 framework2.0,用 winform 快速完成
    msg7086
        49
    msg7086  
       Dec 21, 2017
    #46 @MrMike 你这需求有些不明确啊。

    需求:端口冲突判断
    提问:如何检查 PHP 环境

    ermmm

    @cchange 联网的话要装网卡吧。
    我主要是吐槽这暴力的安装程序……
    hoythan
        50
    hoythan  
       Dec 21, 2017   ❤️ 1
    Electron 用 js 写一个程序,支持 win mac linux 等设备
    ZXCDFGTYU
        51
    ZXCDFGTYU  
       Dec 21, 2017
    ```bash
    CHECKPHP=$(curl http://127.0.0.1/info.php)

    if($CHECKPHP!=="hello"){
    ./installer.sh
    }
    ```


    ```php
    echo "hello";
    ```
    why1
        52
    why1  
       Dec 21, 2017 via Android
    那么懒,没客服吗
    txlty
        53
    txlty  
       Dec 21, 2017
    php 本身就可以写,找个可用的 php to exe,打包封装一下。https://www.v2ex.com/t/187672 官网没了找其他地方下
    如果你会用 VS 编译 php 源码的话,也可以自己编译封装一个单文件 exe,包含了 php 解释引擎和需要运行的代码。C 语言方面,只要理解 zend_eval_string()这一个函数的作用就够了。
    flyico
        54
    flyico  
       Dec 22, 2017
    Windows 下 还要 GUI 除了 C#没有更好的了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2513 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 92ms · UTC 06:09 · PVG 14:09 · LAX 23:09 · JFK 02:09
    ♥ Do have faith in what you're doing.