在Apache虚拟主机上为Laravel项目设置文档根目录

bcr*_*ins 0 php apache laravel

我继承了一个在我无法访问的Apache服务器上运行的php / Laravel应用程序。我的任务是让它在另一台Apache服务器上运行。我对php相当满意,但对Laravel而言相对较新,对Apache配置而言则相对较新。

我已经弄清楚了如何使Laravel应用程序在运行于Ubuntu VM(VirtualBox)的Apache上运行。我可以通过http:// localhost在Ubuntu VM的浏览器中访问Laravel应用程序。我还可以通过http://appname.com/public从Internet在浏览器中访问Laravel应用。但是,如果我只是使用http://appname.com,那么我只会得到/ var / www / appname的文件夹列表。

我已经尝试对/etc/apache2/av​​ailable-sites/appname.conf文件进行了一些修改,但显然还没有完全正确。我还阅读了许多有关修改其他各种配置文件(包括php配置文件和Apache配置文件)的文章。似乎这些其他mod(虽然它们可能是可行的)不是必需的。

这是我当前的/etc/apache2/av​​ailable-sites/appname.conf

    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName appname.com
        ServiceAlias www.appname.com
        DocumentRoot /var/www/appname/public

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
Run Code Online (Sandbox Code Playgroud)

任何建议表示赞赏。

  • 鲍勃

Ell*_*sar 5

您需要在Apache服务器中允许mod_rewrite和allowSymLinks。 资源

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName appname.com
    ServiceAlias www.appname.com
    DocumentRoot /var/www/appname/public

    <Directory "/var/www/appname/public">
            Options FollowSymLinks
            ReWriteEngine On
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

在DocumentRoot目录中,我还将允许MultiViews

<Directory "/var/www/appname/public">
        Options FollowSymLinks MultiViews
        ReWriteEngine On
</Directory>
Run Code Online (Sandbox Code Playgroud)

您可能还需要做

sudo a2enmod重写

启用模块重写。

编辑1:

在我的.conf文件中,我给它们加上了引号,并且它们正在工作。您是否启用了模式重写?

除了一些选项,我还有下一个配置的“ /”文件夹。

<Directory "/">
    Options FollowSymLinks
    AllowOverride All
    ReWriteEngine On
</Directory>
Run Code Online (Sandbox Code Playgroud)

在这里,我将写我的公共目录的完整代码

<Directory "/var/www/appname/public">
        Options FollowSymLinks MultiViews
        Order Allow,Deny
        Allow from all
        ReWriteEngine On
</Directory>
Run Code Online (Sandbox Code Playgroud)

在删除您不喜欢使用的选项之后,尝试一下并查看它是否有效。