我正在尝试使用Direct admin在vps上安装Laravel。下面是我的Apache配置文件
<VirtualHost MYIP:80 >
ServerName www.domain.com
ServerAlias www.domain.com domain.com
ServerAdmin webmaster@chat.am
DocumentRoot /home/mydir/domains/domain.com/public_html
ScriptAlias /cgi-bin/ /home/mydir/domains/domain.com/public_html/cgi-bin/
UseCanonicalName OFF
<IfModule !mod_ruid2.c>
SuexecUserGroup mydir mydir
</IfModule>
CustomLog /var/log/httpd/domains/domain.com.bytes bytes
CustomLog /var/log/httpd/domains/domain.com.log combined
ErrorLog /var/log/httpd/domains/domain.com.error.log
<Directory /home/mydir/domains/domain.com/public_html>
php_admin_flag safe_mode OFF
php_admin_flag engine ON
php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f chat$
php_admin_value mail.log /home/mydir/.php/php-mail.log
php_admin_value open_basedir /home/mydir/:/tmp:/var/tmp:/usr/loc$
</Directory>
</VirtualHost>
根据Laravel手册,我必须指向public
目录。我将doc root
设置为/home/mydir/domains/domain.com/public_html/public
后,当我尝试访问domain.com
时出现此错误
500内部服务器错误
更新:/var/log/httpd/domains/domain.com.error.log
包含此Laravel错误
PHP Parse错误:语法错误,意外&#39; [&#39;在第411行的/home/mydir/domains/domain.com/public_html/vendor/laravel/framework/src/Illuminate/Support/helpers.php
答案 0 :(得分:4)
这里的问题似乎是你的PHP版本。 helpers.php
中的第411行是this:
$results = [];
这是从PHP 5.4开始创建新数组的简短语法。见php.net
正如documentation所述,Laravel 4.2要求PHP&gt; = 5.4
但是服务器上的版本可能较低,导致此错误。
显然,最好的解决方案是升级至少为PHP 5.4 如果您无法升级,请使用Laravel 4.1(需要PHP&gt; = 5.3.7)
答案 1 :(得分:1)
首先,如果你有root权限..你可以检查你的php版本......
php -v
将其升级到php 5.4。
我使用公共文件夹中的.htaccess配置文件成功在Directadmin中安装了Laravel ...
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
在直接管理员中,您可以更改
中特定域的文档根目录的apache配置etc/httpd/conf.d/domians/yourdomian.conf
将其更改为...
DocumentRoot "/var/www/html/domians/yourdomain/public"
多数民众赞成;)它应该可以正常工作;)