如何使用brew安装的php?
Posted
技术标签:
【中文标题】如何使用brew安装的php?【英文标题】:How to use the php that brew installed? 【发布时间】:2013-12-29 15:57:21 【问题描述】:在我的 Mac 上,我已经安装了 php,并且工作正常。我最近想安装 mcrypt,所以我使用了 brew。虽然它似乎安装得很好,但它并没有出现在我的 phpinfo() 中。所以我认为brew安装mcrypt的php不是apache使用的php。
有人知道我该怎么做吗:
-
检查brew安装的php和Apache使用的php是否有区别?
让apache使用brew安装的php?
欢迎所有提示!
【问题讨论】:
见:Setup Apache, mysql and PHP using Homebrew on macOS Sierra 【参考方案1】:根据 Homebrew php 公式的贡献者...
Homebrew php 公式的贡献者给出了以下说明。此处复制的确切说明安装 php7.4。替换你需要的php版本。
(避免实现目标的“特殊”方法;它们通常会出现问题。“官方”方法更有可能为您提供可预测、可维护的设置。)
$ brew search php // since php can be installed by homebrew but be missing from your PATH, review the list of php versions available through homebrew; a checkmark next to a version indicates one is installed
$ brew install php@7.4
$ echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.zshrc // add the alias to your path (issues you are using zsh, the default now for macOS); see comments output during installation
$ source ~/.zshrc // reload . zshrc to use the new settings immediately
公式的贡献者还提供了在 Apache 中启用 PHP 的以下说明:
要在 Apache 中启用 PHP,请将以下内容添加到 httpd.conf 并重新启动 Apache:
LoadModule php_module /usr/local/opt/php/lib/httpd/modules/libphp.so <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>`
最后,检查 DirectoryIndex 是否包含 index.php
DirectoryIndex index.php index.html
php.ini 和 php-fpm.ini 文件位于:
/usr/local/etc/php/7.4/
这些在 Apache 中启用 PHP 的说明会在您安装 php 时出现在 stdout
中。或者在终端使用brew info php
或访问Homebrew PHP formula page
【讨论】:
确认也可以与其他版本一起使用,只需将php@7.2
替换为您要安装的任何版本
现在看起来 brew update
不采用包名(如 php
)。此外,在文件中直接使用$(brew --prefix)
对我不起作用。我必须手动替换实际路径,所以对我来说,该行是LoadModule php7_module /usr/local/opt/php@7.3/lib/httpd/modules/libphp7.so
如果您想以通用方式链接 Homebrew 的 PHP,以便它适用于未来的 PHP 版本,请使用:echo 'export PATH="/usr/local/opt/php/bin:$PATH"' >> ~/.bash_profile Homebrew syslinks 当你运行$ brew link php
请注意最后一行应为$ source ~/.zshrc
(已删除空格)
啊!很好的捕捉@JorgeLuisBorges。错字已修复。【参考方案2】:
你必须让你的 Apache 使用你刚刚下载的 PHP。
打开您的httpd.conf
(我的是/etc/apache2/httpd.conf
)并查找加载PHP模块的行,例如:
LoadModule php5_module path/to/php
然后,让它指向 brew 为您安装并支持 mcrypt 的 PHP。我的在这条路上。您安装的 PHP 版本可能会有所不同。
/usr/local/Cellar/php54/5.4.21/libexec/apache2/libphp5.so
最后,您需要重新启动 Apache 服务器以加载新配置:
sudo apachectl restart
【讨论】:
太棒了!你救了我的一天!谢谢一百万! 太棒了!谢谢你。我正在将 php7.1 更新为 php7.2 显然链接需要指向特定版本而不是一般的/usr/local/opt/php/lib/httpd/modules
【参考方案3】:
由于我缺乏经验,无法对 *** 发表评论,但添加到上述答案是正确的。只需附加注释即可找到正确的路径:
运行:
brew info php54
或者你安装过哪个版本,它会告诉你路径:
To enable PHP in Apache add the following to httpd.conf and restart Apache:
LoadModule php5_module /usr/local/opt/php54/libexec/apache2/libphp5.so
【讨论】:
对于 PHP 5.5,/usr/local/opt/php55/libexec/apache2/libphp5.so
更好,因为它不会随着更新 PHP 5.5 版本而改变。
我真的希望能够以这种方式找到我的 .so 文件,但是当我这样做 brew info php71
时,它不会给我返回与您在这里相同的行。我得到了一堆其他信息,但没有这个文件在哪里。我想知道我是否有不同版本的 brew。
好像和github.com/Homebrew/homebrew-php/issues/3601有关
感谢 AnthonyT - 现场
应该被接受的答案,因为 /usr/local/opt/phpxx/ 是当前版本的 simlink,因此更新安全 - 不像其他版本指向当前版本直接【参考方案4】:
我会为其创建一个别名,这样您就不会干扰系统 PHP 安装。
brew info php71
Brew 安装到 /usr/local/Cellar
,因此您可以将以下内容添加到您的 ~/.bash_alias
或 ~/.profile
。
alias php7='/usr/local/Cellar/php71/7.1.10_21/bin/php'
【讨论】:
可以使用符号链接,例如ln -s /usr/local/Cellar/php71/7.1.11_22/bin/php /usr/bin/php
【参考方案5】:
brew install php
目前安装的是 php 7.3,下面的版本是 keg-only
您可以通过将其添加到以下版本来为以下版本创建别名:
~/.profile
alias php@5.6='$(brew --prefix php@5.6)/bin/php'
alias php@7.0='$(brew --prefix php@7.0)/bin/php'
alias php@7.1='$(brew --prefix php@7.1)/bin/php'
alias php@7.2='$(brew --prefix php@7.2)/bin/php'
~/.bashrc
source ~/.profile
~/.zshrc
[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'
那么你可以:
php@5.6 -v
php@7.0 -v
php@7.1 -v
php@7.2 -v
如果你使用composer并且你的项目中没有设置平台php,那么这会很方便:
~/.profile
alias composer@5.6='php@5.6 $(which composer)'
alias composer@7.0='php@7.0 $(which composer)'
alias composer@7.1='php@7.1 $(which composer)'
alias composer@7.2='php@7.2 $(which composer)'
如果你经常使用 artisan(artisan 映射到 7.3 的 php),那么这会很方便:
~/.profile
alias artisan@5.6='php@5.6 artisan'
alias artisan@7.0='php@7.0 artisan'
alias artisan@7.1='php@7.1 artisan'
alias artisan@7.2='php@7.2 artisan'
【讨论】:
【参考方案6】:尝试:brew link php71 --force
使用 brew 特定的 php 版本。
它对我有用。
【讨论】:
【参考方案7】:截至 2021 年,您所需要的只是
brew install php
然后
brew link php
这将为您提供php 8.0
并设置您的符号链接。
【讨论】:
brew upgrade
我的 PHP 消失后,它仍然“安装”,所以我不得不做brew reinstall php
,它又开始工作了。以上是关于如何使用brew安装的php?的主要内容,如果未能解决你的问题,请参考以下文章