{"id":13398185,"url":"https://github.com/phpbrew/phpbrew","last_synced_at":"2025-05-13T21:10:26.338Z","repository":{"id":38898554,"uuid":"2468290","full_name":"phpbrew/phpbrew","owner":"phpbrew","description":"Brew \u0026 manage PHP versions in pure PHP at HOME","archived":false,"fork":false,"pushed_at":"2024-10-08T11:05:59.000Z","size":23898,"stargazers_count":5468,"open_issues_count":94,"forks_count":370,"subscribers_count":126,"default_branch":"master","last_synced_at":"2025-04-30T07:45:05.631Z","etag":null,"topics":["php-versions","phpbrew"],"latest_commit_sha":null,"homepage":"https://phpbrew.github.io/phpbrew","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phpbrew.png","metadata":{"files":{"readme":"README.cn.md","changelog":"CHANGES.md","contributing":"CONTRIBUTING.md","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,"zenodo":null}},"created_at":"2011-09-27T14:54:51.000Z","updated_at":"2025-04-29T17:47:47.000Z","dependencies_parsed_at":"2023-02-18T15:16:01.628Z","dependency_job_id":"31f87697-c693-4b68-9e61-256b8c8040da","html_url":"https://github.com/phpbrew/phpbrew","commit_stats":{"total_commits":2757,"total_committers":108,"mean_commits":25.52777777777778,"dds":0.6575988393180994,"last_synced_commit":"7cd4011cecd4d25f2bdff7f2e1c91361173e6742"},"previous_names":[],"tags_count":114,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phpbrew%2Fphpbrew","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phpbrew%2Fphpbrew/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phpbrew%2Fphpbrew/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phpbrew%2Fphpbrew/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phpbrew","download_url":"https://codeload.github.com/phpbrew/phpbrew/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254029002,"owners_count":22002283,"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":["php-versions","phpbrew"],"created_at":"2024-07-30T19:00:19.442Z","updated_at":"2025-05-13T21:10:21.325Z","avatar_url":"https://github.com/phpbrew.png","language":"Makefile","readme":"PHPBrew\n=======\n\n*本文档其它语言：[English](README.md), [Português - BR](README.pt-br.md), [日本語](README.ja.md), [中文](README.cn.md).*\n\n[![Build Status](https://travis-ci.org/phpbrew/phpbrew.svg?branch=master)](https://travis-ci.org/phpbrew/phpbrew)\n[![Coverage Status](https://img.shields.io/coveralls/phpbrew/phpbrew.svg)](https://coveralls.io/r/phpbrew/phpbrew)\n[![Gitter](https://badges.gitter.im/phpbrew/phpbrew.svg)](https://gitter.im/phpbrew/phpbrew?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge)\n\nphpbrew 是一个构建、安装多版本 PHP 到用户根目录的工具。\n\nphpbrew 能做什么？\n\n- 配置选项简化为「Variants」，无需担心路径问题。\n- 支持使用 PDO，mysql，sqlite，debug 等不同「Variants」编译 PHP。\n- 针对不同版本，分别编译 apache php 模块，互不冲突。\n- 无需 root 权限将 PHP 安装到用户根目录。\n- 集成至 bash / zsh shell 等，易于切换版本。\n- 支持自动特性检测。\n- 易于安装、启用 PHP 扩展。\n- 支持在系统环境下安装多个 PHP。\n- 路径检测针对 HomeBrew 以及 MacPorts 进行了优化。\n\n\u003cimg width=\"500\" src=\"https://raw.github.com/phpbrew/phpbrew/master/screenshots/01.png\"/\u003e\n\u003cimg width=\"500\" src=\"https://raw.github.com/phpbrew/phpbrew/master/screenshots/03.png\"/\u003e\n\n## 安装需求\n\n在开始之前，请先查看：[Requirement](https://github.com/phpbrew/phpbrew/wiki/Requirement)（英文）。\n确保已安装依赖包的开发版本用于编译 PHP。\n\n## 安装\n\n```bash\ncurl -L -O https://github.com/phpbrew/phpbrew/releases/latest/download/phpbrew.phar\nchmod +x phpbrew.phar\n\n# Move the file to some directory within your $PATH\nsudo mv phpbrew.phar /usr/local/bin/phpbrew\n```\n\n## 快速入门\n\n急不可待？请直接查看：[Quick Start](https://github.com/phpbrew/phpbrew/wiki/Quick-Start)（英文）。\n\n## 开始使用\n\n接下来，我们假定你有充足的时间来学习，这将会是一个循序渐进的教程——教你如何配置 phpbrew。\n\n### 初始设置\n\n首先，初始化 Bash Shell 脚本：\n\n```bash\nphpbrew init\n```\n\n接着在 `.bashrc` 或 `.zshrc` 文件增加如下行：\n\n```bash\n[[ -e ~/.phpbrew/bashrc ]] \u0026\u0026 source ~/.phpbrew/bashrc\n```\n\n对于 Fish shell 用户，在 `~/.config/fish/config.fish` 文件增加如下行：\n\n```fish\nsource ~/.phpbrew/phpbrew.fish\n```\n\n若需要在系统全局（非用户目录）使用 phpbrew，请设置共享的 phpbrew 根目录，例如：\n\n```bash\nmkdir -p /opt/phpbrew\nphpbrew init --root=/opt/phpbrew\n```\n\n### 库路径设置\n\n其次，请设置用于查找库文件的默认前缀，可选值有 `macports`，`homebrew`，`debian`，`ubuntu` 或是自定义路径。\n\n对于 Homebrew 用户：\n\n```bash\nphpbrew lookup-prefix homebrew\n```\n\n对于 Macports 用户：\n\n```bash\nphpbrew lookup-prefix macports\n```\n\n## 基础用法\n\n列出已知 PHP 版本：\n\n```bash\nphpbrew known\n\n7.0: 7.0.3, 7.0.2, 7.0.1, 7.0.0 ...\n5.6: 5.6.18, 5.6.17, 5.6.16, 5.6.15, 5.6.14, 5.6.13, 5.6.12, 5.6.11 ...\n5.5: 5.5.32, 5.5.31, 5.5.30, 5.5.29, 5.5.28, 5.5.27, 5.5.26, 5.5.25 ...\n5.4: 5.4.45, 5.4.44, 5.4.43, 5.4.42, 5.4.41, 5.4.40, 5.4.39, 5.4.38 ...\n5.3: 5.3.29, 5.3.28 ...\n```\n\n列出更多次要版本：\n\n```bash\n$ phpbrew known --more\n```\n\n刷新 PHP 发布信息：\n\n```bash\n$ phpbrew update\n```\n\n刷新旧版本（低于5.4）：\n\n\u003e 请注意：我们不保证能够正确编译 PHP 官方停止维护的版本，请不要提交关于编译旧版本的 Issus，此类 Issue 将不会修复。\n\n```bash\n$ phpbrew update --old\n```\n\n列出已知的旧版本（低于5.4）：\n\n```bash\n$ phpbrew known --old\n```\n\n## 编译属于你的 PHP\n\n使用默认参数编译安装 PHP 非常简单：\n\n```bash\n$ phpbrew install 5.4.0 +default\n```\n\n这里我们推荐使用已包含绝大多数公共参数的 `default`（默认）参数集合。如果你需要「最小安装」，删掉`default`执行即可。\n\n你可以使用`-j`或`--jobs`选项启用并行编译，例如：\n\n```bash\n$ phpbrew install -j $(nproc) 5.4.0 +default\n```\n\n编译完成后执行测试用例：\n\n```bash\n$ phpbrew install --test 5.4.0\n```\n\n测试环境，且包含调试信息：\n\n```bash\n$ phpbrew -d install --test 5.4.0\n```\n\n安装旧版本（低于5.3）：\n\n```bash\n$ phpbrew install --old 5.2.13\n```\n\n安装给定主要版本的最新次要版本：\n\n```bash\n$ phpbrew install 5.6\n```\n\n安装预览版本：\n\n```bash\n$ phpbrew install 7.2.0alpha1\n$ phpbrew install 7.2.0beta2\n$ phpbrew install 7.2.0RC3\n```\n\n通过指定的 GitHub tag 或 branch 安装：\n\n```bash\n$ phpbrew install github:php/php-src@PHP-7.2 as php-7.2.0-dev\n```\n\n安装下一个（非稳定）版本：\n\n```bash\n$ phpbrew install next as php-7.3.0-dev\n```\n\n## 清除编译目录\n\n```bash\n$ phpbrew clean php-5.4.0\n```\n\n## Variants\n\nPHPBrew 已经将配置选项整理、合并为「Variants」，你只需简单地指定某个 Variant 即可，phpbrew 会自动在配置过程中检测引用目录、编译选项等。\n\nPHPBrew 提供默认的 Variant ，以及一些虚拟 Variants。\n「Default Variant」包含绝大多数公共 Variants；\n「Virtual Variants」可包含多个 Variants，使用一个虚拟 Variant 即可一次性启用多个 Variants。\n\n只需执行`variants`子命令，即可列出它们。\n\n在 Variant 前添加`+`前缀，代表启用此 Variant，例如：\n\n    +mysql\n\n在 Variant 前添加`-`前缀，代表禁用此 Variant，例如：\n\n    -mysql\n\n举个例子，假设你使用默认 Variant，并且需要启用数据库支持（mysql，sqlite，postgresql）编译 PHP，只需执行：\n\n```bash\n$ phpbrew install 5.4.5 +default+dbs\n```\n\n也可以：\n\n```bash\n$ phpbrew install 5.3.10 +mysql+sqlite+cgi\n\n$ phpbrew install 5.3.10 +mysql+debug+pgsql +apxs2\n\n$ phpbrew install 5.3.10 +pdo +mysql +pgsql +apxs2=/usr/bin/apxs2\n```\n\n将 pgsql (PostgreSQL) 扩展编译进 PHP：\n\n```bash\n$ phpbrew install 5.4.1 +pgsql+pdo\n```\n\n若你的 Mac 上已经安装 postgresql，也可以指定特定目录编译 pgsql 扩展：\n\n```bash\n$ phpbrew install 5.4.1 +pdo+pgsql=/opt/local/lib/postgresql91/bin\n```\n\npgsql 的路径即为`pg_config`所在目录，你可以在`/opt/local/lib/postgresql91/bin`找到它。\n\n另外，你可以使用名为`neutral`的 Variant 来纯净编译 PHP：\n\n```bash\n$ phpbrew install 5.4.1 +neutral\n```\n\n`neutral`意味着 phpbrew 不会增加包括`--disable-all`在内的任何额外编译参数，但部分用于安装`pear`的参数（例如`--enable-libxml`）依旧会被添加。\n\n更多细节，请移步：[PHPBrew Cookbook](https://github.com/phpbrew/phpbrew/wiki)（英文）。\n\n## 拓展配置选项\n\n如果想要传递更多拓展配置变量，你可以这么做：\n\n```bash\n$ phpbrew install 5.3.10 +mysql +sqlite -- \\\n    --enable-ftp --apxs2=/opt/local/apache2/bin/apxs\n```\n\n## 切换 PHP 版本\n\n临时切换 PHP 版本：\n\n```bash\n$ phpbrew use 5.4.22\n```\n\n切换默认 PHP 版本：\n\n```bash\n$ phpbrew switch 5.4.18\n```\n\n关闭 phpbrew：\n\n```bash\n$ phpbrew off\n```\n\n若需要启用 Apache PHP 模块，请注释或移除以下设置项：\n\n```bash\n$ sudo vim /etc/httpd/conf/httpd.conf\n# LoadModule php5_module        /usr/lib/httpd/modules/libphp5.3.21.so\n# LoadModule php5_module        /usr/lib/httpd/modules/libphp5.3.20.so\n```\n\n## 扩展安装器\n\n请查看：[Extension Installer](https://github.com/phpbrew/phpbrew/wiki/Extension-Installer)（英文）。\n\n## 配置 php.ini\n\n配置当前 PHP 版本的 php.ini 文件，只需执行如下命令即可：\n\n```bash\n$ phpbrew config\n```\n\n如需切换编辑器，可执行如下命令指定 EDITOR 环境变量：\n\n```bash\nexport EDITOR=vim\nphpbrew config\n```\n\n## 升级 phpbrew\n\n执行 `self-update` 即可从 GitHub 的 `master` 分支安装 phpbrew 最新版本。\n\n```bash\n$ phpbrew self-update\n```\n\n## 已安装的 PHP\n\n列出已安装的 PHP：\n\n```bash\n$ phpbrew list\n```\n\n你可以在 `~/.phpbrew/php` 目录找到已安装的 PHP。例如，5.4.20 版本位于：\n\n    ~/.phpbrew/php/5.4.20/bin/php\n\n你可以手动修改其 php.ini：\n\n    ~/.phpbrew/php/5.4.20/etc/php.ini\n\n而 PHP 扩展的配置文件位于：\n\n    ~/.phpbrew/php/5.4.20/var/db\n    ~/.phpbrew/php/5.4.20/var/db/xdebug.ini\n    ~/.phpbrew/php/5.4.20/var/db/apc.ini\n    ~/.phpbrew/php/5.4.20/var/db/memcache.ini\n    等等...\n\n## 一键切换目录\n\n切换至 PHP 编译目录：\n\n```bash\n$ phpbrew build-dir\n```\n\n切换至 PHP dist 目录：\n\n```bash\n$ phpbrew dist-dir\n```\n\n切换至 PHP etc 目录：\n\n```bash\n$ phpbrew etc-dir\n```\n\n切换至 PHP var 目录：\n\n```bash\n$ phpbrew var-dir\n```\n\n## PHP FPM\n\nphpbrew 内置一些有用的命令用于管理 php-fpm。使用它们之前，请确认在 PHP 编译时启用了 `+fpm`。\n\n启动 php-fpm：\n\n```bash\n$ phpbrew fpm start\n```\n\n停止 php-fpm：\n\n```bash\n$ phpbrew fpm stop\n```\n\n列出 php-fpm 模块：\n\n```bash\nphpbrew fpm module\n```\n\n测试 php-fpm 配置：\n\n```bash\nphpbrew fpm test\n```\n\n编辑 php-fpm 配置：\n\n```bash\nphpbrew fpm config\n```\n\n\u003e 已安装的 `php-fpm` 位于 `~/.phpbrew/php/php-*/sbin` 目录。\n\u003e\n\u003e 对应的 `php-fpm.conf` 文件位于 `~/.phpbrew/php/php-*/etc/php-fpm.conf.default` 目录。\n\u003e\n\u003e 你可以把默认配置复制到自定义路径再使用，例如：\n\u003e\n\u003e     cp -v ~/.phpbrew/php/php-*/etc/php-fpm.conf.default\n\u003e         ~/.phpbrew/php/php-*/etc/php-fpm.conf\n\u003e\n\u003e     php-fpm --php-ini {php config file} --fpm-config {fpm config file}\n\n## 安装拓展应用\n\nphpbrew 内置了用来获取部分 PHP 应用的 app 命令。\n\n### 安装 Composer\n\n```bash\n$ phpbrew app get composer\n```\n\n### 安装 PHPUnit\n\n```bash\nphpbrew app get phpunit\n```\n\n## 启用版本信息 Prompt\n\n使用`\"PHPBREW_SET_PROMPT=1\"`变量可将 PHP 版本信息加入 Shell Prompt。\n\n此变量默认值为`\"PHPBREW_SET_PROMPT=0\"`（即禁用），将如下行加入`~/.bashrc`文件，确保其在`source ~/.phpbrew/bashrc`之前，即可启用此功能：\n\n```bash\nexport PHPBREW_SET_PROMPT=1\n```\n\n使用`.phpbrew/bashrc`内定义的`phpbrew_current_php_version`函数，可将版本信息嵌入到 Shell Prompt。你可以将版本信息设置到 `PS1` 变量内，例如：\n\n```bash\nPS1=\" \\$(phpbrew_current_php_version) \\$ \"\n```\n\n\n已知问题\n------------\n\n- 对于 PHP-5.3+ 版本，\"Building intl 64-bit fails on OS X\" \u003chttps://bugs.php.net/bug.php?id=48795\u003e\n\n- 将 GD 扩展编译进 PHP，你需要指定 libpng 目录、libjpeg 目录，例如：\n\n    $ phpbrew install php-5.4.10 +default +mysql +intl +gettext +apxs2=/usr/bin/apxs2 \\\n        -- --with-libdir=lib/x86_64-linux-gnu \\\n           --with-gd=shared \\\n           --enable-gd-natf \\\n           --with-jpeg-dir=/usr \\\n           --with-png-dir=/usr\n\n\n故障排查\n-------------------\n\n请移步：[TroubleShooting](https://github.com/phpbrew/phpbrew/wiki/TroubleShooting)（英文）。\n\n\n常见问答\n-------------------------\n\nQ: 如何使用不同的参数编译相同 PHP 版本？\n\nA: 截至目前，你可以安装 php-5.x.x 并重命名其目录 /Users/phpbrew/.phpbrew/php/php-5.x.x（例如：php-5.x.x-super），并安装另一个 php5.x.x。\n\n\n参与贡献\n------------------\n请移步：[Contribution](https://github.com/phpbrew/phpbrew/wiki/Contribution)（英文）。\n\n\n文档\n-------------\n请移步：[Wiki](https://github.com/phpbrew/phpbrew/wiki)（英文）。\n\n\n作者\n------\n\n- Yo-An Lin (c9s)  \u003cyoanlin93 _at_ gmail.com\u003e\n- Márcio Almad \u003cmarcio3w _at_ gmail.com\u003e\n\n\n授权\n--------\n\n请查看：[LICENSE](LICENSE) 文件。\n\n翻译\n--------\n- [@wi1dcard](https://github.com/wi1dcard)\n- [@蝦米](https://github.com/jhdxr)\n- Waiting for you...\n\n希望大家共同参与到翻译工作中；如有不当，烦请指正！\n\n\n[t-link]: https://travis-ci.org/phpbrew/phpbrew \"Travis Build\"\n[s-link]: https://scrutinizer-ci.com/g/phpbrew/phpbrew/?branch=master \"Code Quality\"\n[p-link]: https://packagist.org/packages/marc/phpbrew \"Packagist\"\n[sl-link]: https://insight.sensiolabs.com/projects/02d1fd01-8a70-4fe4-a550-381a3c0e33f3 \"Sensiolabs Insight\"\n[c-badge]: https://coveralls.io/repos/phpbrew/phpbrew/badge.png?branch=master\n","funding_links":[],"categories":["Makefile","Uncategorized","PHP安装 PHP Installation","配置 Configuration","Configuration","PHP","Version Managers","PHP 安装(PHP Installation)","类库","\u003ca id=\"tools\"\u003eИнструменты\u003c/a\u003e"],"sub_categories":["Uncategorized","PHP安装 PHP Installation","PHP Installation","PHP","未归类","Hiawatha"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphpbrew%2Fphpbrew","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphpbrew%2Fphpbrew","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphpbrew%2Fphpbrew/lists"}