我在安装Laravel 4时遇到问题……我正在遵循此处发布的说明:
http://badubizzle.blogspot.com/2013/01/setting-up-laravel-4-on-webfaction.html
我的主机允许多个版本的PHP同时运行,因此运行命令php
将在接下来指定的任何对象上运行PHP 5.2.17。我知道你需要比php 5.3更大的版本来运行Laravel 4,所以我使用php 5.4来实现这一点。我可以专门键入php54
来运行php 5.4下的命令,也可以在.bash_profile中创建一个别名来在键入php时执行这一操作,这就是我所做的。
现在,当我运行命令php -v
时,我得到以下内容:
PHP 5.4.16 (cli) (built: Jul 24 2013 07:46:20)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
with the ionCube PHP Loader v4.2.1, Copyright (c) 2002-2012, by ionCube Ltd.
我这么做的原因是,当使用composer时,它运行的很多命令似乎都是在下载的laravel文件中找到的,它们都以php
开头,而不是以php54
开头,所以我想通过创建别名,我应该没问题,对吧?错误的
当我运行这条线路时:
php ~/composer.phar install
系统得到了一堆文件(就像它应该得到的那样),然后它得到了这个错误:
Warning: Unexpected character in input: '' (ASCII=92) state=1 in /home/apps/laravel-master/artisan on line 46
Parse error: syntax error, unexpected T_STRING in /home/apps/laravel-master/artisan on line 46
Script php artisan optimize handling the post-install-cmd event returned with an error
当我研究这个错误时,我看到的一切都表明这是一个没有运行足够高的PHP版本的错误,你需要运行php54
或其他什么。我正在这么做,但我仍然会犯这个错误!有什么想法吗?这真的让我不知所措,我变得非常沮丧。我真的很感激任何人能提供的帮助!!
编辑
我试着遵循Laravel的文档,在运行composer create-project laravel/laravel your-project-name --prefer-dist
命令时遇到了同样的问题——它运行了一段时间,然后出现了解析错误。我真的不知道这里出了什么问题!
我不能直接评论思考者的答案(似乎没有足够的代表性),但我可以说,他链接到的答案不仅仅是关于别名,它对我有效。
打开composer.json,您会看到它试图在安装后运行php命令,而它只是使用常规php,类似于:
php artisan optimize
你需要把它改成类似于:
/opt/php54/bin/php artisan optimize
或者不管路径是什么。Composer在读取json文件时,似乎并不真正关心你的别名是什么。至少它没有出现在我安装Laravel的共享服务器上。
当路径设置不正确时,这似乎是共享主机上的一个常见问题。我已经在这里发布了一个解决方案,也许它也适用于你。