在 directadmin 上安装 laravel 的 Apache 配置
Posted
技术标签:
【中文标题】在 directadmin 上安装 laravel 的 Apache 配置【英文标题】:Apache Configuration for laravel installation on directadmin 【发布时间】:2014-10-11 13:23:18 【问题描述】:我正在尝试使用 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 解析错误:语法错误,第 411 行 /home/mydir/domains/domain.com/public_html/vendor/laravel/framework/src/Illuminate/Support/helpers.php 中出现意外的“[”
【问题讨论】:
打开 /var/log/httpd/domains/domain.com.error.log,如果您尝试访问此目录,请查看 apache 在此错误日志中写入的内容。 如果上面提到的错误日志为空,请检查/var/log/apache2/error.log
。
@Charlotte Dunois 刚刚更新了我的问题。我正在检查 apache 错误...
您的错误:PHP Parse error: syntax error, unexpected '[' in /home/mydir/domains/domain.com/public_html/vendor/laravel/framework/src/Illuminate/Support/helpers.php on line 411
。修复这个 PHP 错误(这个错误信息说明了你需要知道的一切),它应该可以工作。
@Charlotte Dunois 错误是由于重定向引起的,因为我在不同的服务器上运行相同的代码,它工作正常......
【参考方案1】:
这里的问题似乎是您的 PHP 版本。 helpers.php
中的第 411 行是 this:
$results = [];
这是从 PHP 5.4 开始创建新数组的简短语法。见php.net
正如documentation 所述,Laravel 4.2 需要 PHP >= 5.4
但是你服务器上的版本可能较低,导致这个错误。
显然,最好的解决方案是升级到至少 PHP 5.4。 如果无法升级,请使用 Laravel 4.1(需要 PHP >= 5.3.7)
【讨论】:
【参考方案2】:首先如果你有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"
就是这样;)它应该可以正常工作;)
【讨论】:
感谢您的详细解释;)让我检查一下并回复您;) 如果更改directadmin apache config,是否会影响directadmin 脚本。因为我已经要求支持,他们建议我最好不要更改它以上是关于在 directadmin 上安装 laravel 的 Apache 配置的主要内容,如果未能解决你的问题,请参考以下文章
在 DirectAdmin 上安装 OpenLiteSpeed
在centos 7服务器上使用directadmin和letsencrypt安装HTTP版本2