在directadmin上安装laravel的Apache配置


Apache Configuration for laravel installation on directadmin

我试图在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 Internal Server Error

UPDATE: /var/log/httpd/domains/domain.com.error.log包含Laravel错误

PHP解析错误:语法错误,意想不到的'['在/home/mydir/domains/domain.com/public_html/vendor/laravel/framework/src/Illuminate/Support/helpers.php行411

这里的问题似乎是你的PHP版本。helpers.php中的第411行是这样的:

$results = [];

是PHP 5.4中用于创建新数组的简短语法。见php.net

如文档所述,Laravel 4.2需要PHP>= 5.4

但您的服务器上的版本可能较低,导致此错误。

显然最好的解决方案是将升级到至少PHP 5.4。如果无法升级,请使用Laravel 4.1(需要PHP>= 5.3.7)

首先,如果您有root权限…你可以检查你的PHP版本…

php -v 

升级到PHP 5.4

我已经安装了Laravel在Directadmin成功使用下面的。htaccess配置文件在公共文件夹…

<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]

在direct admin中,您可以在

中更改文档根的apache配置。
etc/httpd/conf.d/domians/yourdomian.conf 

改成…

DocumentRoot "/var/www/html/domians/yourdomain/public"

就是这样;)应该没问题;)