如何在 Ubuntu 中设置虚拟主机?

如何在 Ubuntu 中设置虚拟主机?

我有一个可以访问的应用程序via 1.2.3.4/myapp。该应用程序安装在 中/var/www/myapp。我设置了一个指向 的子域 ( apps.mydomain.com) 。如果我输入,1.2.3.4我希望服务器指向,我该怎么做?我有在本地创建虚拟主机(很多)的经验,但我迷茫了,因为它现在在生产中,而且有点不同。这是我的虚拟主机配置:var/www/myappapps.mydomain.com/myapp

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName apps.mydomain.com/myapp

        DocumentRoot /var/www/myapp/public
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride All
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

知道为什么我仍然看到文件而不是指向文档根目录吗?

以防有人问,该应用程序基于 Laravel 4 框架。现在情况真的很糟糕,因为任何人都可以通过浏览器访问文件。

答案1

尝试一下这个。

ServerAdmin webmaster@localhost ServerName apps.mydomain.com

    DocumentRoot /var/www
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>
    Alias /myapp "/var/www/myapp/public/"
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride All
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

如果您不想让其他人访问 apps.mydomain.com,请在 /var/www 中添加 index.php,并重定向至 apps.mydomain.com/myapp。

<?php
    header("Location: /myapp");
?>

我认为它会满足你的需要。

答案2

我认为将其添加到 apps.mydomain.com 的虚拟主机应该可行:

Alias /myapp "/var/www/myapp/public/"

这应该将 apps.mydomain.com/myapp 指向该文件夹

如果有效,您可以删除现有的虚拟主机apps.mydomain.com/myapp

但我不是服务器管理员,我可能会错。等着吧 :)

相关内容