我试图在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"
就是这样;)应该没问题;)