在 OS X 中更改 PHP 系统文件后出现“php:未找到命令”

在 OS X 中更改 PHP 系统文件后出现“php:未找到命令”

我想在 Mac OS X Lion 上安装 Symfony。显然,由于我的电脑上已经安装了 MAMP,php.ini 文件中的“时区”字段存在问题。我不记得具体是什么错误,但基本上,Symfony 安装需要一个时区,如“Europe/Paris”,但 MAMP 显然更改了该部分。

嗯,这很模糊,但我在网上看到其他人也遇到了同样的问题。所以我尝试了我找到的一个解决方案(没有成功),但是:

  1. 它不起作用。
  2. 我无法php再使用该命令(“-bash:php:未找到命令”)。我不记得我执行了哪些命令来返回。

以下是我在历史记录中发现的一些可能相关的命令,它们与我的问题的开始相对应,按以下顺序排列:

sudo mv /usr/bin/php /usr/bin/php-old
sudo ln -s /Applications/MAMP/bin/php5/bin/php /usr/bin/php
rm /usr/bin/php-old
sudo cp php.ini.default /etc/php.ini
rm php.ini but I don't know anymor in which repertory I was. 
sudo mv /usr/bin/php-old /usr/bin/php

答案1

你做了什么?

通过执行

sudo rm /usr/bin/php-old

你可能在重命名后删除了原来的 PHP 安装。如果你只是执行了命令没有 sudo,您可能无法删除它,因为该文件的所有者是root,而不是您的普通用户。

尝试:

sudo mv /usr/bin/php-old /usr/bin/php

并检查输入是否php -v有效。如果是,则一切正常。如果不行,则您的系统php已损坏。尝试从备份中恢复。

如何php从备份恢复:

如果您有 Time Machine,请按以下步骤操作:

首先,记下 Time Machine 卷的名称。然后获取计算机的名称,并找出启动卷的名称。这些卷被标记为123如以下屏幕截图所示,Time Machine 卷被命名为时光机器在我的电脑上(这叫做卡戎)启动卷名为麦金塔高清

现在,在终端中输入:

cd "/Volumes/TimeMachine/Backups.backupdb/charon/Latest/Macintosh HD/usr/bin/"

将粗体名称替换为上面得到的名称。如果成功,则在仍位于同一终端文件夹中时,运行:

sudo cp php /usr/bin/php

这会将phpTime Machine 卷复制回本地硬盘。您已完成。输入后检查php -v一切是否正常。

如果您以某种方式备份或覆盖了最新的备份,您也可以从最旧的备份中恢复。

输入以下内容,像之前一样替换名称:

cd "/Volumes/TimeMachine/Backups.backupdb/charon"

然后:

cd $(ls -r1 | tail -n 1)

这将转到您最早的备份。现在输入(别忘了替换卷的名称):

cd "Macintosh HD/usr/bin"

并复制回来php,类似于上面的命令:

sudo cp php /usr/bin/php

如果你想改变php.ini

通常情况下,MAMP 不会使用/etc/php.ini,而是使用php.ini放置在 MAMP 应用程序文件夹内的自己的文件。因此,如果您想修改 MAMP 行为,则必须更改它。


如果你想使用 MAMPphp

注意:这是可选的。

如果您确实想使用 MAMPphp而不是系统文件,请执行以下操作(除非您有一个名为的文件.profile,否则请使用此文件):

open -e ~/.bash_profile

TextEdit 将打开,您将编辑 bash 配置文件,该配置文件设置重要的环境变量。在这里,添加以下行:

export PATH=/Applications/MAMP/bin/php5/bin/:$PATH

然后,保存文件,退出,并在终端中运行命令:

source ~/.bash_profile

现在,运行which php,它应该指向 MAMP 文件夹。 的输出php -v现在也应该来自 MAMP 的php

相关内容