在过去的几个小时里,我一直在尝试在我的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版本,但我已经用运行了上面的命令
- /usr/local/bin/php-5.4
- /usr/local/bin/php-5.3
- /usr/local/php53/bin.php
- /usr/local/php54/bin.php
同样的结果。有什么想法吗?提前感谢!
Sheikh Heera的回答中提到,composer.phar必须使用PHP 5.3或更高版本运行。
还没有提到的是composer.json
包含了几个对PHP二进制文件的引用。在PHP默认版本低于5.3的环境中安装Laravel时(例如WebFaction服务器),文件composer.json
中对"PHP"的所有引用都必须更改为指向更新版本的PHP。
例如:
"post-install-cmd": [
"php artisan optimize"
],
必须更改为(类似于):
"post-install-cmd": [
"php54 artisan optimize"
],
在artisan
的46
线上有
$artisan = Illuminate'Console'Application::start($app);
根据arror消息Warning: Unexpected character in input: '''
,PHP
解析器无法识别自PHP 5.3.0
以来用于namespace
的'
,因此很明显,您的PHP
版本不正确。尝试升级。使用检查您的版本
/usr/local/php5/bin/php -v
我猜这是PHP版本的问题,是对的。谢谢其他人的回答!
如果你从1和1/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>
请注意/已添加到重写规则^。。。行以及php6部分
应该都很好,在这里查看他们的帮助链接
https://help.1and1.com/hosting-c37630/scripts-and-programming-languages-c85099/php-c37728/manually-set-the-version-of-php-using-an-htaccess-file-a614325.html