V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
edwardhodges
V2EX  ›  程序员

想做个小 PHP 网站,好久不写了。大家现在开发 PHP 环境都是怎么做的?

  •  
  •   edwardhodges · 234 天前 · 4307 次点击
    这是一个创建于 234 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本地 lemp 环境,然后做好了再推送代码到服务器上。还是直接在远处开发服务器上面搞,修改一些自动推送到远程服务器,可以看到线上效果?

    49 条回复    2023-09-08 00:51:21 +08:00
    babyoung
        1
    babyoung  
       234 天前
    Linux 的话宝塔或者 oneinstack 吧,简单易用
    BG7ZAG
        2
    BG7ZAG  
       234 天前
    线上用楼上说的,本地用小皮,或者 docker
    ieliwb
        3
    ieliwb  
       234 天前
    edwardhodges
        4
    edwardhodges  
    OP
       234 天前
    服务器直接用了宝塔,当作开发服务器。本地代码保存后直接更新到远程服务器的插件用 ftp 插件?
    Light3
        5
    Light3  
       234 天前
    如果本地环境不凑手 而且线上也没人看的话
    直接 ftp 往上传 把服务器当测试服务器就行..
    最后写完了 找个 git 推一下 完事..
    BeforeTooLate
        6
    BeforeTooLate  
       234 天前
    lnmp.org + beyondcompare
    putyy
        7
    putyy  
       234 天前
    @edwardhodges phpstorm 边改边传
    edwardhodges
        8
    edwardhodges  
    OP
       234 天前
    用 vscode 写 php 不知道怎么样
    @putyy
    dzdh
        9
    dzdh  
       234 天前
    ssh git hook pull

    www.xxx, dev.xxx(nginx authbasic)
    brader
        10
    brader  
       234 天前   ❤️ 2
    老 PHP 告诉你,你肯定要有本地环境啊,不要把线上当成你 debug 的场子。
    如果你是 win 电脑,那你用 phpstudy2018 就行了,上面人说的环境我几乎都折腾过,最后还是回到这个舒服简单。
    然后关于更新线上代码,小项目你没必要搞那么复杂,比如你用的是码云的话,你配置一个 WebHooks 就可以达到 push 代码后自动更新部署了
    jiannei
        11
    jiannei  
       234 天前
    可以了解下 [deployer]( https://github.com/deployphp/deployer)
    token10086
        12
    token10086  
       234 天前
    javalaw2010
        13
    javalaw2010  
       234 天前
    wsl2+docker+phpstorm ,laradock 直接开搞。
    nevergotit
        14
    nevergotit  
       234 天前
    我现在 PHP 开发环境在我的轻量服务器上(非生产环境),用的宝塔搭的环境。
    使用 vscode remote 开发,感觉和本地没什么差别
    hansomeneil
        15
    hansomeneil  
       234 天前
    代码在 github 托管,通过 github actions 实现每次本地推送到远端后,自动打包部署到指定服务器
    putyy
        16
    putyy  
       234 天前
    @edwardhodges vscode 没用过两次 phpstorm 用了五六年了 已经改不掉了,环境的话都可以 自己项目怎么方便怎么来
    hansomeneil
        17
    hansomeneil  
       234 天前
    @hansomeneil 我是觉得远程搞不太方便,不如本地开发调试,而且我习惯把个人项目放 github ,不想开源的就设为 private ,刚好 github actions 可以做一些自动化的工作,用起来感觉很方便
    edwardhodges
        18
    edwardhodges  
    OP
       234 天前
    @nevergotit vscode remote 怎么搞?
    edwardhodges
        19
    edwardhodges  
    OP
       234 天前
    用 vscode remote 连接成功了,确实香,跟本地没有差别。再把 git 设置好就完美了。
    liuhy0927
        20
    liuhy0927  
       234 天前
    自己一个人的话,vscode sftp 很方便
    nevergotit
        21
    nevergotit  
       234 天前
    @edwardhodges 搞的还蛮快的
    远程的优点在于开发调试会非常的方便,推荐搭配上一个备过案的域名,以及做好 https
    edwardhodges
        22
    edwardhodges  
    OP
       234 天前
    @nevergotit 现在有个麻烦的问题,权限配置问题,上传和修改不了文件。站点是在 www 用户下面的,但是 www 用户又不能登录 ssh ,你那边怎么搞的
    nevergotit
        23
    nevergotit  
       234 天前
    @edwardhodges 服务器给个权限呗,我 remote 使用的是 www
    simerpc
        24
    simerpc  
       234 天前
    vscode remote 有个缺点。代码量大,类似语法、美化、扫描插件装太多的话,服务器负载会很高导致卡死。
    -- 来自之前被一个花括号美化插件整崩服务器的过来人经验。
    cyndihuifei
        25
    cyndihuifei  
       234 天前
    安装好 docker 之后,Laravel 项目创建好像就是一个命令的事情
    ksc010
        26
    ksc010  
       234 天前
    vscode 有插件 sftp 可以通过 ssh 上传代码
    之前我写过一个 python 脚本 ,可以一键同步修改过的文件到服务器(通过 ftp 或者 sftp )
    wonderfulcxm
        27
    wonderfulcxm  
       234 天前
    @simerpc 是啊,这玩意的负载惊人的高。
    edwardhodges
        28
    edwardhodges  
    OP
       234 天前
    @nevergotit 可以上传文件了,最后一步,你那边怎么用 git 进行提交的,vscode remote 的时候是否可以直接在 vscode 上面进行呀,还是需要用命令行进行提交?
    mingl0280
        29
    mingl0280  
       234 天前 via Android
    @edwardhodges PHPStorm+ssh 远程同步
    zengzizhao
        30
    zengzizhao  
       234 天前
    “ 本地 lemp 环境”
    lemp 中的 e 是什么?
    dream4ever
        31
    dream4ever  
       234 天前
    @BeforeTooLate 好歹上个 git 吧大兄弟😂
    xuAN111
        32
    xuAN111  
       234 天前
    压缩 zip ,手动上传解压。
    veni2023
        33
    veni2023  
       234 天前
    docker 更方便点,线上线下一个环境,搭建也简单
    z1829909
        34
    z1829909  
       234 天前
    @edwardhodges 在服务器上 git init --bare 创建一个仓库作为 remote, 然后项目目录使用这个 remote, 本地也用这个 remote, 更新代码的方式就是本地 push, 远程 pull
    Track3
        35
    Track3  
       234 天前 via Android
    @zengzizhao 应该是指 nginx 吧,因为 nginx 读音是 engine X
    zengzizhao
        36
    zengzizhao  
       234 天前
    @Track3 #35 通常不是 lnmp 这样吗
    zzzkkk
        37
    zzzkkk  
       234 天前 via Android
    有没有人喜欢用 cpanel 类似的在测试服务器写代码 只有一个开发的情况
    edwardhodges
        38
    edwardhodges  
    OP
       234 天前
    环境最终搞定,感谢大家。我用了宝塔放在线上,然后 vscode remote 远程连接,服务器上面安装 git ,配置远程 git 到 GitHub 。vscode 很强大,配置完同步后可以使用 vscode 上面的 git 图形化管理工具。稍微麻烦点的地方就是需要授予 www 用户的登录权限,不然 vscode 远程登录后无法提交,无法更新代码。
    c466934322
        39
    c466934322  
       234 天前
    @edwardhodges 最终你搞了一个最蛋疼的做法,看似舒服,实则是真舒服。哈哈哈。

    好了回复点正经的,看你的聊天,确实是不怎么用 php 的,推荐本地小皮,上线上的可以手动 ssh 拉代码,或者 ftp 。

    不要远程线上,不然你的任何骚操作都将导致你的线上挂壁,并且任何追踪操作都将非常蛋疼,尤其是网络不好的时候
    fox0001
        40
    fox0001  
       233 天前 via Android
    docker 省事
    edwardhodges
        41
    edwardhodges  
    OP
       233 天前
    @c466934322 哈哈,确实。上次写 php 项目还是十几年前。不过今时不同往日了,感觉跟以前完全不一样了。你说的我可以后面再折腾折腾。现在我的远程服务器也是一个开发服务器,不是生产服务器,我的想法是只要保证代码正常提交到仓库,数据库备份,其他随便折腾了。还有个好处就是大家能随时看到线上效果,有些需求邮件验证之类的,本地环境也没法搞,就先这么弄了。本来折腾了几个 docker ,结果项目代码太老,php5.3 的我的 m1 处理器的电脑一时找不到对应的版本,麻烦的就不折腾了。
    BeforeTooLate
        42
    BeforeTooLate  
       233 天前
    @dream4ever 上来干啥,一个人做小 php 网站,哈哈,怎么方便怎么来。
    不过最好 OP 选宝塔了,我就不多说什么了。
    dream4ever
        43
    dream4ever  
       233 天前
    @BeforeTooLate #42 没有代码版本管理工具,最后不方便的只会是自己,不过这种事情也说服不了别人,如人饮水,冷暖自知。
    BeforeTooLate
        44
    BeforeTooLate  
       233 天前
    @dream4ever 你是对的,我是基于 OP 一个玩玩性质,没考虑这个网站频繁更新代码。不过你是对的,一开始就正规总不会吃亏。
    2324
        45
    2324  
       233 天前
    lemp 的 e 是什么?我只知道 lamp
    zhuangjia
        46
    zhuangjia  
       233 天前
    #45 @2324 搜了一下,就是 lnmp 。E 表示的是 Nginx ,这个 E 取的是 Nginx 的读音( Engine X )。
    dream4ever
        47
    dream4ever  
       233 天前
    @BeforeTooLate #44 我也写了若干年代码了,现在发现没有 git ,再小的项目久了都会乱七八糟,都是踩坑的经验🤣
    edwardhodges
        48
    edwardhodges  
    OP
       233 天前
    看你们讨论,所有的项目必须有代码版本控制呀,不然开发完全没有安全感。不管是本地环境还是直接在服务器搞,代码管理是必须的,数据库经常备份,最好异地备份。万一挂了哪怕服务器销毁了,都可以简单重新搭建起来。
    jiuhuicinv
        49
    jiuhuicinv  
       233 天前
    WSL
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1012 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:14 · PVG 03:14 · LAX 12:14 · JFK 15:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.