V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
edwardhodges
V2EX  ›  程序员

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

  •  
  •   edwardhodges · 2023-09-06 09:28:43 +08:00 · 4751 次点击
    这是一个创建于 477 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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