用于在directadmin上安装laravel的Apache配置

时间:2014-08-18 15:10:01

标签: php apache .htaccess laravel httpd.conf

我正在尝试使用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

2 个答案:

答案 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"

多数民众赞成;)它应该可以正常工作;)