Apache 2 Sites-Available Configuration

爷,独闯天下 提交于 2019-11-30 15:11:51
Zeograd

You need a ServerName directive inside the <VirtualHost>. It will tell the server which virtual host is currently in use depending on the browser request (if your client access http://site1.example.com or http://site2.example.com, they will connect to the same IP, hence server, but the request contains the original request url). You'll have to duplicate your <VirtualHost> block to have one per hosted site. Each block will differ by their ServerName and DocumentRoot mainly. You can use "apache2ctl -S" to see how apache understood your virtual host settings.

You can use a single file with this kind of content :

<VirtualHost *:80>
  ServerName site1.myserver.com
  DocumentRoot /var/www/site1
  ...
</VirtualHost>

<VirtualHost *:80>
  ServerName site2.myserver.com
  DocumentRoot /var/www/site2
  ...
</VirtualHost>

<VirtualHost *:80>
  ServerName site3.myserver.com
  DocumentRoot /var/www/site3
  ...
</VirtualHost>

<VirtualHost *:80>
  ServerName site4.myserver.com
  DocumentRoot /var/www/site4
  ...
</VirtualHost>

<VirtualHost *:80>
  ServerName site5.myserver.com
  DocumentRoot /var/www/site5
  ...
</VirtualHost>

Of course, maybe sure that the dns for all of those name ends up on your IP. It needs not to be subdomains as long as they land on your server ip and you have a correspond ServerName for it. If you need extra names for a single site, you can add them with "ServerAlias secondname.myserver.com thirdname.myserver.com" below ServerName

@Zeograd's answer is probably the correct answer for most solutions, however I had a similar issue and all I needed to do was enable the rewrite module with the a2enmod command.

This is what I ran via command line in Ubuntu:

sudo a2enmod rewrite
sudo service apache2 restart

If sudo service apache2 restart doesn't work, you can try:

sudo /etc/init.d/apache2 restart
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!