virtualhost和别名Laravel 5.4的问题

时间:2017-05-01 04:23:01

标签: php laravel ubuntu apache2 virtualhost

我正在尝试使用带别名的虚拟主机来部署Laravel应用程序。 在ubuntu 16.04中使用apache2。

我的000.conf文件是:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    <Directory /var/www/html/>
        Options -Indexes
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <IfModule mod_dir.c>
        DirectoryIndex index.php index.pl index.cgi index.html index.xhtml index.htm
    </IfModule>

</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/public

    Alias /expediente "/var/www/public/"

    <Directory /var/www/public/>
        Options -Indexes
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <IfModule mod_dir.c>
        DirectoryIndex index.php index.pl index.cgi index.html index.xhtml index.htm
    </IfModule>

</VirtualHost>

第一个工作正常但第二个工作没有。

我做错了什么?

==============

修改

好的,所以我在可用网站上制作了两个配置文件,并将它们符号链接到已启用网站。

advanced.conf

<VirtualHost *:80>
    ServerAdmin admin@localhost
    ServerName ip-address:80/advanced
    ServerAlias /advanced
    DocumentRoot /var/www/html/advanced
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

expediente.conf

<VirtualHost *:80>
    ServerAdmin admin@localhost
    ServerName ip-address:80/expediente
    ServerAlias /expediente
    DocumentRoot /var/www/html/public
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

重新加载并重新启动apache2。

如果我尝试导航到ip-address /我得到第一页,高级, 如果我尝试导航到找不到ip-address / advanced 404 如果我尝试导航到未找到的ip-address / expediente 404

我做错了什么?

3 个答案:

答案 0 :(得分:0)

你需要在虚拟主机配置中使用ServerName,它可能总是默认为第一个没有它。例如

ServerName mydomain.net

答案 1 :(得分:0)

Si tus proyecto esta de la forma http://localhost/AppName,entonces debes colocar en el httpd.conf

    <VirtualHost site1.local:80>
         ServerAdmin webmaster@example.com
         DocumentRoot /path/to/htdocs/site1
         ServerName www.site1.local
         ServerAlias site1.com 
     </VirtualHost>

y el segundo。

<VirtualHost site2.local:80>
     ServerAdmin webmaster@example.com
     DocumentRoot /path/to/htdocs/site2
     ServerName www.site2.local
     ServerAlias site2.com
</VirtualHost>

答案 2 :(得分:0)

其良好做法为您的别名创建不同的主机文件。您可以使用此命令使用此命令复制第二个别名的默认配置

  

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf

并在您喜欢的任何编辑器中打开并放置此内容

<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/public
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

保存并关闭文件,然后运行此命令 sudo a2ensite example.com.conf 并重启你的apache