{"id":19725468,"url":"https://github.com/easychen/fangphp","last_synced_at":"2025-04-29T23:30:45.356Z","repository":{"id":145558362,"uuid":"118454260","full_name":"easychen/fangPHP","owner":"easychen","description":"fangPHP is a docker based development env with php7 mysql redis and livereload","archived":false,"fork":false,"pushed_at":"2020-11-14T03:06:32.000Z","size":327,"stargazers_count":85,"open_issues_count":2,"forks_count":16,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-05T20:11:13.486Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/easychen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-22T12:28:53.000Z","updated_at":"2024-12-26T15:35:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"c4f3c509-5029-490a-ae06-cb25771193a8","html_url":"https://github.com/easychen/fangPHP","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easychen%2FfangPHP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easychen%2FfangPHP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easychen%2FfangPHP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easychen%2FfangPHP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/easychen","download_url":"https://codeload.github.com/easychen/fangPHP/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251599746,"owners_count":21615574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T23:30:00.843Z","updated_at":"2025-04-29T23:30:45.346Z","avatar_url":"https://github.com/easychen.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fangPHP\nfangPHP is a docker based development env with php7 mysql redis and livereload\n\nfangPHP 的目标是一个跨平台（ Mac / Linux / Win ）的 PHP 开发环境，主要用于教学。它解决的是：老师讲了，学生回去做的时候，不能复现例子，最后查出来是环境差异的问题。\n\n\n## 安装和启动\n\n分为三步\n\n1. 安装 Docker（ 这是我们的容器平台 ）以及 Docker-compose（ 这是我们编排容器的工具，Linux上需要单独安装 ）\n1. 启动 fangPHP 环境\n1. 安装 Live-reload 插件\n1. 使用说明\n\n### 安装 Docker\n\n不同的操作系统安装 Docker 的方式不同，以下做分别的讲解。\n\n#### Windows用户\n\n\u003e Windows 因为版本差异、环境不同会遇到各种奇形怪状的问题，推荐大家直接安装 Ubuntu / Windows 双系统，然后在 Ubuntu 下进行开发，能节约很多时间。\n\n首先，请[按此提示查看Windows的版本](https://jingyan.baidu.com/article/642c9d34032de3644a46f7bd.html)。\n\n#### Win10 专业版和服务器版（ Win10 的其他版本看后边 ）\n\n微软在 Win10 专业版、教育版和服务器版中，提供了 Hyper V 虚拟化技术，所以这部分用户可以安装最新的原生 Docker 客户端。\nDocker 提供面向企业的付费版本（EE）和面向社区的免费版本（CE），我们使用CE。\n\n[下载地址](https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe) [官方网站](https://www.docker.com/community-edition#/download)\n\n安装时记得选中 git for windows ，这是我们检出代码时要用到的工具。\n\n#### 其他 Windows 版本，包括 Win10 的家庭版等等\n\n更新：Docker 原生版已经支持在 Win10 2004以后的版本安装，可参考：  https://www.jdon.com/54526\n\n以下方式已经不推荐。\n\n```\n由于没有容器化技术的支持，其他的 Windows 版本只能通过虚拟机的方案来实现。这时候我们需要用到 Docker ToolBox。\n\n1. 下载页面 https://docs.docker.com/toolbox/toolbox_install_windows/\n1. 安装（安装时如果没有安装 git windows 版，记得同时选上 ）\n1. 完成后，启动「 Docker Quickstart Terminal 」，进入命令行\n1. 等待一段时间，按提示给予权限。最后会显示一个内网地址，一般是 192.168.99.100 。\n\n原生 Docker 客户端的服务是启动在 127.0.0.1 上边的 ， 为了保证环境的统一，我们将 192.168.99.100 的端口 映射到 127.0.0.1 上：\n\n1. git clone https://github.com/easychen/fangPHP ( clone fangPHP 代码到本地 )\n1. 以管理员身份运行 fangPHP 目录下的 port-remapping-for-toolkit-win.bat 启动以后挂着就行，不用的时候再点任意键关掉\n1. 如果你的IP不是 192.168.99.100 ， 请用编辑器打开 port-remapping-for-toolkit-win.bat ， 将 192.168.99.100 替换为对应的 IP。\n1. 因为 Windows 的一个 Bug（ https://support.microsoft.com/en-us/help/555744 ），如果这个脚本不生效，请检查是否电脑是否安装了 IPV6MON.DLL \n```\n### Linux \n\n按官方的安装提示进行安装，以下链接以 Ubuntu 为例，左侧菜单处可切换其他发行版。( 18.04 请参考[这篇文章](https://medium.com/devgorilla/how-to-install-docker-on-ubuntu-18-04-495216a16092) 需科学访问 )\nhttps://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce\n\n注意 apt-get 里边的 docker-compose 版本过低，不要通过 apt-get install docker-compose 安装，可按以下命令安装\n\n```\nsudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose \u0026\u0026 sudo chmod +x /usr/local/bin/docker-compose\n```\n\n### Mac \n\nMac 系统可以使用原生的 Docker 客户端，[下载地址](https://download.docker.com/mac/stable/Docker.dmg) [官方网站](https://www.docker.com/community-edition#/download)\n\n\n## 启动 fangPHP\n\n进入命令行，选择一个用来存放代码的目录（ 路径中不要包含中文，不然某些版本的 Docker 会出错 ）\n\n检出代码：\n\n1. 运行 git 命令检出代码 `git clone https://github.com/easychen/fangPHP`\n1. 进入代码目录 `cd fangPHP`   \n\n启动：\n\n使用 Mac 和 Linux 的同学运行 `docker-compose up`\n使用 Windows 的同学运行 `docker-compose.exe -f docker-compose.win.yaml up`\n\n注意这里 Windows 使用了独立的配置，否则 MySQL 服务会无法启动。\n\n```\n报错备用方案：\n\nMac \u0026 Linux : 将 docker-composer.yaml 第4行  build: ./buildLNP 换成     image: hub.c.163.com/easychen/apncore:latest \n\nWin：将 docker-composer.win.yaml 第4行  build: ./buildLNP 换成     image: hub.c.163.com/easychen/apncore:latest \n```\n\n添加测试 PHP 文件：\n\n在 fangPHP 目录下，进入 `data/web` ， 新建 `index.php` 文件，内容为:\n\n`\u003c?php\necho \"Hello world\";\n`\n\n打开浏览器，访问 o.ftqq.com ，应该就能看到输出的结果了。\n\n如果在 Windows 上创建了 index.php ，访问还是403，那么请打开 kitematic ( 桌面快捷方式的另一个 )，然后启动（可跳过登录），进入容器的可视化管理界面。\n\n![](https://ws1.sinaimg.cn/large/40dfde6fly1frea4rta0tj21900scn47.jpg)\n\n\n在左侧菜单中选择名称中包含 php7.ftqq.com 的镜像，然后，在右边的共享目录设置处点击齿轮图标。\n\n把 local folder 改到 `你安装fangPHP的目录`+ `data/web`（如果选中后提示权限不够，将安装目录放到你的用户目录下边） ，应该就能找到 index.php 啦。\n![](https://ws1.sinaimg.cn/large/40dfde6fly1frea9ulglwj21900scwge.jpg)\n\n\n## 安装 Live-reload 插件\n\n1. 打开 Chrome 浏览器，进入插件页面，将 fangPHP 目录下的 LiveReload_v2.1.0.crx 拖拽到浏览器中的插件 Tab，放开即可安装\n1. 打开 o.ftqq.com , 点击浏览器右上方的插件图标 ，会提示连接成功\n1. 当你修改 data/web 下的 PHP、HTML、CSS 和 JS 文件时 ，页面会自动更新\n\n\n#### 管理数据库\n\n1. 访问 o.ftqq.com/mysql.php 即可\n1. 可以在左上角切换语言\n1. 默认账号信息如下，可在 docker-compose.yaml 中修改：\n```\n    MYSQL_HOST: mysql.ftqq.com\n    MYSQL_ROOT_PASSWORD: itworks1343\n    MYSQL_DATABASE: fangtangdb\n    MYSQL_USER: php\n    MYSQL_PASSWORD: fangtang\n```\n\n#### 在 PHP 中访问 MySQL 和 Redis \n\n1. 使用 mysql.ftqq.com 作为 mysql 的 host\n1. 使用 redis.ftqq.com 作为 redis 的 host\n\n注意以上域名只在 PHP 环境内有效。\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feasychen%2Ffangphp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feasychen%2Ffangphp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feasychen%2Ffangphp/lists"}