在 directadmin 上安装 laravel 的 Apache 配置

Fri*_*end 5 php apache .htaccess httpd.conf laravel

我正在尝试使用直接管理在 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>
Run Code Online (Sandbox Code Playgroud)

根据 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 解析错误:语法错误,/home/mydir/domains/domain.com/public_html/vendor/laravel/framework/src/Illuminate/Support/helpers.php 第 411 行出现意外的“[”

You*_*end 1

首先,如果你有 root 访问权限..你可以检查你的 php 版本......

php -v 
Run Code Online (Sandbox Code Playgroud)

将其升级到 php 5.4 。

我已经通过在 public 文件夹中使用下面的 .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]
Run Code Online (Sandbox Code Playgroud)

在直接管理中,您可以更改文档根目录中特定域的 apache 配置

etc/httpd/conf.d/domians/yourdomian.conf 
Run Code Online (Sandbox Code Playgroud)

将其更改为...

DocumentRoot "/var/www/html/domians/yourdomain/public"
Run Code Online (Sandbox Code Playgroud)

就是这样;)它应该可以正常工作;)