如何使用brew安装的php?

kra*_*r65 46 php apache macos homebrew

在我的Mac上我已经安装了php并且工作正常.我最近想安装mcrypt,所以我这样做是使用brew.虽然它似乎安装得很好,但它没有出现在我的phpinfo()中.所以我认为brew安装mcrypt的php不是apache使用的php.

有人知道我怎么做:

  1. 检查brew安装的php和Apache使用的php之间是否有区别?
  2. make apache使用brew安装的php吗?

欢迎所有提示!

Man*_*era 46

您必须让您的Apache使用您刚刚下载的PHP.

  • 打开你的httpd.conf(我的是/etc/apache2/httpd.conf)并寻找加载PHP模块的行,如:

    LoadModule php5_module path/to/php

  • 然后,使用mcrypt支持指向为您安装的brew.我正走在这条道路上.您的安装可能会有所不同,具体取决于您安装的PHP版本.

    /usr/local/Cellar/php54/5.4.21/libexec/apache2/libphp5.so

  • 最后,您需要重新启动Apache服务器以加载新配置:

    sudo apachectl restart


Ant*_*nyT 29

由于我缺乏经验但无法评论stackoverflow但是添加到上面的答案是正确的.只需另外注释即可找到正确的路径:

跑:

brew info php54
Run Code Online (Sandbox Code Playgroud)

或者你安装过哪个版本,它会显示路径:

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
Run Code Online (Sandbox Code Playgroud)


Kay*_*y V 12

这是安装php7.2的bash命令。替换您需要的php版本。

这些命令符合Homebrew php公式的提供者给出的说明。

$ brew update php // get the latest homebrew php packages
$ brew install php@7.2
$ brew link php@7.2 // create an alias to this keg-only version; see comments output during installation
$ echo 'export PATH="/usr/local/opt/php@7.2/bin:$PATH"' >> ~/.bash_profile // add the alias to your path; see comments output during installation
$ source ~/.bash_profile // reload .bash_profile to use the new settings immediately
Run Code Online (Sandbox Code Playgroud)

该公式的提供者还提供了以下有关在Apache中启用PHP的说明:

要在Apache中启用PHP,请将以下内容添加到httpd.conf并重新启动Apache:
LoadModule php7_module $(brew --prefix)/opt/php/lib/httpd/modules/libphp7.so

<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

最后,检查DirectoryIndex是否包含index.php
DirectoryIndex index.php index.html

php.ini和php-fpm.ini文件位于:
$(brew --prefix)/etc/php/7.2/

这些在Apache中启用PHP的说明会在stdout您安装php时出现。或者在终端使用中,brew info php或访问Homebrew PHP公式页面


小智 12

截至 2021 年,您所需要的只是

brew install php
Run Code Online (Sandbox Code Playgroud)

然后

brew link php
Run Code Online (Sandbox Code Playgroud)

这将为您提供php 8.0并设置您的符号链接。

  • 在“brew升级”之后,我的PHP消失了,但它仍然是“安装”的,所以我不得不执行“brew重新安装php”,它再次开始工作。 (3认同)

Xeo*_*oss 9

我会为它创建一个别名,这样你就不会打扰系统PHP安装.

brew info php71
Run Code Online (Sandbox Code Playgroud)

Brew安装进入,/usr/local/Cellar因此您可以将以下内容添加到您的~/.bash_alias~/.profile.

alias php7='/usr/local/Cellar/php71/7.1.10_21/bin/php'
Run Code Online (Sandbox Code Playgroud)


Mik*_*ike 9

brew install php 目前安装 php 7.3,以下版本仅用于桶

您可以通过将其添加到以下版本来为以下版本创建别名:

~/.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'
Run Code Online (Sandbox Code Playgroud)

~/.bashrc

source ~/.profile
Run Code Online (Sandbox Code Playgroud)

~/.zshrc

[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'
Run Code Online (Sandbox Code Playgroud)

然后你可以:

php@5.6 -v
php@7.0 -v
php@7.1 -v
php@7.2 -v
Run Code Online (Sandbox Code Playgroud)

如果你使用 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)'
Run Code Online (Sandbox Code Playgroud)

如果您经常使用 artisan(artisan 映射到 php,即 7.3),那么这会很方便:

~/.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'
Run Code Online (Sandbox Code Playgroud)


小智 8

尝试:brew link php71 --force使用 brew 特定的 php 版本。它对我有用。