在MAMP上安装Laravel

4
我从Github下载了Laravel的最新版本,解压后将其放置在MAMP的htdocs文件夹中。MAMP正在运行PHP版本5.4.10,因此满足Laravel对PHP >= 5.3.7的要求。我尝试使用终端输入以下内容安装composer:
curl -sS https://getcomposer.org/installer | php

系统提示错误信息:

 #!/usr/bin/env php
 Some settings on your machine make Composer unable to work properly.
 Make sure that you fix the issues listed below and run this script again:

 The detect_unicode setting must be disabled.
 Add the following to the end of your `php.ini`:
 detect_unicode = Off

 A php.ini file does not exist. You will have to create one.
 If you can not modify the ini file, you can also run `php -d option=value` to modify ini     values on the fly. You can use -d multiple times.

当我尝试加载时,出现以下错误信息:
http://localhost:8888/laravel/public/

在我的浏览器中,PHP错误日志显示:

05-Sep-2013 16:57:03 Europe/Berlin] PHP Fatal error:  require(): Failed opening required '/Applications/MAMP/htdocs/laravel/bootstrap/../vendor/autoload.php' (include_path='.:/Applications/MAMP/bin/php/php5.4.10/lib/php') in /Applications/MAMP/htdocs/laravel/bootstrap/autoload.php on line 17

我感觉这个错误有一个相当简单的解决方案,但由于我对Laravel非常陌生,所以需要指导如何解决。谢谢。

你尝试过吗:在你的“php.ini”文件末尾添加以下内容:“detect_unicode = Off”? - halfer
为了您自己的健康,请考虑使用Vagrant或其他虚拟机提供商,这样您就不必处理Mac的非标准安装apache/php等问题。只是一个建议,使用适合您的工具即可。 - fideloper
5个回答

18

在安装 Laravel 4 之前,您需要使 Composer 运行起来。这一步在这里失败了。

请尝试运行以下命令:

$ curl -sS getcomposer.org/installer | php -d detect_unicode=Off

它将规避这个问题,让您可以继续安装Laravel 4。

编辑:

对于全局安装Composer,请在此之后执行以下操作:

$ sudo mv composer.phar /usr/local/bin/composer.phar
$ alias composer='/usr/local/bin/composer.phar'

然后,在您想要将 Laravel 4 放入的目录中,

$ php composer create-project laravel/laravel --prefer-dist

我需要在终端的特定目录中安装这个吗? - Lance
不,Composer 可以放在你喜欢的任何位置。在我的 Linux 系统上,我选择将其放在 /usr/local/bin 目录中。 - ciruvan
这个工作得很好。但是,我似乎找不到composer.phar文件。 - Lance
当我在应用程序目录中下载composer时,你的答案起作用了。但是,在usr/local/bin目录下出现问题。 - Lance
#!/usr/bin/env php 所有设置正确,可以使用Composer 正在下载... 无法创建文件/usr/local/bin/composer.phar: fopen(/usr/local/bin/composer.phar)失败:无法打开流:权限被拒绝 下载失败:fopen(/usr/local/bin/composer.phar)失败:无法打开流:权限被拒绝 fwrite()期望参数1为资源,但给定的是布尔值 - Lance
显示剩余4条评论

4
我遇到了同样的问题,你的系统没有使用 MAMPPHP,而是使用了自带的 php
我记录了一下当已经安装了 MAMP 后如何安装 laravel。希望对你和其他人有所帮助。 a..bash_profile 中将 MAMPPHP 添加到 PATH VARIABLE 中。
export PATH=/Applications/MAMP/bin/php/php5.5.10/bin:$PATH

b. 安装 Composer - 访问 http://www.getcomposer.org/ ->getting started 页面 - 在终端中全局复制并执行以下命令...

cd ~
curl -sS https:/?getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

c. 使用composerMAMP/htdocs文件夹中安装Laravel, 请在终端执行以下命令…

cd /Applications/MAMP/htdocs
composer create-project laravel/laravel neji --prefer-dist

**其中neji是你的网站/项目的名称

d. 编辑 /private/etc/hosts

sudo nano /private/etc/hosts

在文件底部添加127.0.0.1 neji,保存并退出。

e. 使用任何文本编辑器编辑/Applications/MAMP/conf/apache/httpd.conf,通过删除虚拟主机下面的#来取消注释,具体见下方…

 # Virtual Hosts
 #Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

变成...

 # Virtual Hosts
 Include  /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

f. 使用任何文本编辑器编辑 /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf,在底部添加以下文本。

# I am not sure about this since DocumentRoot does not points to the public folder
# but I still added it and it's working, maybe someone will clarify this part
 <VirtualHost *:80>
    ServerAdmin localhost
    DocumentRoot "/Applications/MAMP/htdocs"
    ServerName localhost
    ServerAlias www.localhost
#     ErrorLog "logs/dummy-host.example.com-error_log"
#     CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>

# this one, I think is the code that makes it work bec the DocumentRoot points to public folder
<VirtualHost *:80>
    ServerAdmin neji.dev
    DocumentRoot "/Applications/MAMP/htdocs/neji/public/"
    ServerName neji.dev
    ServerAlias www.neji
#     ErrorLog "logs/dummy-host.example.com-error_log"
#     CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>

** 需要注意的两点

第一,将ServerName设置为您的项目名称(neji.dev)

第二,将DocumentRoot设置为public文件夹

g. 使用您喜欢的浏览器打开您的项目

neji.dev/

**不要忘记在结尾处加上/

你应该看到Laravel欢迎页面。

然后几天后切换到VM :)


0

看起来你缺少依赖项。

文档中的安装说明非常清晰:

一旦安装了Composer,请下载最新版本的Laravel框架并将其内容提取到服务器上的目录中。接下来,在Laravel应用程序的根目录中,运行php composer.phar install(或composer install)命令以安装所有框架的依赖项。此过程需要在服务器上安装Git才能成功完成安装。

你已经将Laravel文件下载并解压缩到htdocs文件夹中,现在只需运行:

php composer.phar install 

在终端中安装依赖项。
这应该可以解决问题。
当您想要更新Laravel时,只需运行:
php composer.phar update

希望这能帮到你!


0
问题在于,当你“安装”MAMP时,终端中的php命令不使用MAMP的PHP,而是默认的mac os。
只需在终端中键入:
which php 它会返回:
/usr/bin/php 为了在不使用额外参数的情况下安装Laravel,只需更新您的.bash_profile文件以使用MAMP的PHP即可。
我在这里写了一个文档(用法语):

https://docs.google.com/document/d/1eXaL8mAv7bGQ_xq_f6sO5jf23X7APuRwCDAexHN52mY/edit

祝好


0
除了确定您正在使用哪个版本的php:
which php
并编辑.bash_profile中的路径(正如其他人已经非常好地解释了),请确保检查php是否仍存在于/usr/bin中
ls /usr/bin/php
如果是这样,请将其重命名为php.bak以禁用它
cd /usr/bin
sudo mv php php.bak
在我的情况下,我已经在.bash_profile中重置了路径变量,并检查了权限,还跟进了一堆关于配置路径变量等其他方式的争论,但在所有这些之后,通过完全禁用/usr/bin中的旧php来解决了我的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接