在azure ubuntu中配置虚拟主机以运行多个laravel应用程序

时间:2016-05-29 11:39:43

标签: php azure ubuntu virtualhost

我在 / home / azureuser 目录中创建了2个laravel应用程序。

我想在单个ubuntu VM上运行多个laravel应用程序。我尝试配置虚拟主机但无法使其正常工作。

以下是 /etc/apache2/sites-enabled/000-default.conf

的内容
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName apitesting.cloudapp.net/demo
        DocumentRoot /home/azureuser/demoapp/public
        <Directory /home/azureuser/demoapp/public>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Require all granted
        </Directory>
        SetEnv APPLICATION_ENV dev
        LogLevel warn
</VirtualHost>

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName apitesting.cloudapp.net/quiz
        DocumentRoot /home/azureuser/quizapp/public
        <Directory /home/azureuser/quizapp/public>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Require all granted
        </Directory>
        SetEnv APPLICATION_ENV dev
        LogLevel warn
</VirtualHost>

不确定上述内容是否正确。

1 个答案:

答案 0 :(得分:0)

似乎我们无法使用子路径参数在URL中设置ServerName。根据您的要求,您可以利用重写模式。

首先,通过命令sudo a2enmod rewrite安装apache rewrite mod,然后通过sudo service apache2 restart重新启动apache。

之后,修改配置文件/etc/apache2/sites-enabled/000-default.conf,将目录配置到应用程序的父文件夹:

... 
DocumentRoot /home/azureuser
ServerName apitesting.cloudapp.net
<Directory /home/azureuser>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Require all granted
</Directory>
...

然后在应用程序的根目录中创建一个名为.htaccess的文件,将传入的请求重定向到public文件夹,内容为:

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^(.*)$ public/$1 [L]
</IfModule>