我一直在努力在最后几个小时在我的dreamhost帐户上安装Laravel 4但我一直收到此错误:
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/user/test/artisan on line 46
Parse error: syntax error, unexpected T_STRING in /home/user/test/artisan on line 46
当我跑步时
/usr/local/bin/php-5.4 -d memory_limit=256M composer.phar create-project laravel/laravel test
我读过这可能是因为我使用了错误的php版本,但是我已经运行了上面的命令
结果相同。有任何想法吗?提前谢谢!
答案 0 :(得分:7)
正如Sheikh Heera的回答所提到的,composer.phar必须以PHP 5.3或更高版本运行。
尚未提及的是composer.json
包含对PHP二进制文件的多个引用。在PHP默认为低于5.3的版本(例如WebFaction服务器)的环境中安装Laravel时,必须更改文件composer.json
中对“php”的所有引用以指向较新版本的PHP。
例如:
"post-install-cmd": [
"php artisan optimize"
],
...必须更改为(类似):
"post-install-cmd": [
"php54 artisan optimize"
],
答案 1 :(得分:1)
在artisan
行46
上有
$artisan = Illuminate\Console\Application::start($app);
根据恐怖消息Warning: Unexpected character in input: '\'
,PHP
解析器无法识别自\
以来用于namespace
的{{1}}所以很明显您的PHP 5.3.0
版本不正确。尝试升级它。使用
PHP
答案 2 :(得分:0)
我猜这是一个PHP版本问题,是对的。谢谢你的其他答案!
如果您从1and1 / 1& 1进行托管,则具体答案如下 使用此代码在域的根目录中创建.htaccess文件
AddHandler x-mapp-php6 .php
注意:" php6"映射到PHP版本5.4 还要注意,如果已经有一个.htaccess文件,那么只需在开头创建一行并插入这行代码即可。例如,laravel 5根域的.htaccess文件看起来像 (感谢http://laravel.io/forum/03-21-2014-laravel-production-deployment-on-1and1)的帮助
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
AddHandler x-mapp-php6 .php
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /index.php [L]
</IfModule>
注意/添加到RewriteRule ^ ...行以及php6部分
应该都很好,请查看他们的帮助链接