当前位置: 澳门新濠3559 > 编程 > 正文

如果apache上配置了多个虚拟主机,并且注册了两

时间:2019-12-27 17:08来源:编程
ubuntu18,apache2域名:,ports.conf已添加Listen88和Listen888,nextcloudssl.conf已修改好,链接可以正常使用,但链接重定向到,如何修改nextcloud.conf才能重定向到。----------------------------------------------

ubuntu18,apache2域名:,ports.conf已添加Listen88和Listen888,nextcloudssl.conf已修改好,链接可以正常使用,但链接重定向到,如何修改nextcloud.conf才能重定向到。------------------------------------------------------------nextcloud.conf代码如下:VirtualHost*:88ServerAdminxxx@163.comDocumentRoot/var/+FollowSymlinksAllowOverrideAllRequireallgranted/DirectoryErrorLog${APACHE_LOG_DIR}/error.logCustomLog${APACHE_LOG_DIR}/access.logcombinedRewriteEngineonRewriteCond%{SERVER_NAME}=xxx.com[OR]RewriteCond%{SERVER_NAME}=%{SERVER_PORT}!^888$RewriteRule^%{SERVER_NAME}:888%{REQUEST_URI}[END,NE,R=permanent]/VirtualHost------------------------------------------nextcloudssl.conf代码如下:IfModulemod_ssl.cVirtualHost*:888ServerAdminxxx@163.comServerName+FollowSymlinksAllowOverrideAllIfModulemod_dav.cDavoff/IfModuleSetEnvHOME/var/_HOME/var/_headers.cHeaderalwayssetStrict-Transport-Security"max-age=15768000;preload"/IfModuleSSLEngineonSSLCertificateFile/etc/apache2/cert/xxx.public.crtSSLCertificateKeyFile/etc/apache2/cert/xxx.keySSLCertificateChainFile/etc/apache2/cert/xxx.chain.crt/VirtualHost/IfModule

在上篇文章(Piwik安装过程:http://www.linuxidc.com/Linux/2012-02/54387.htm )中已经讲述了piwik的安装过程。
本文将讲述piwik在apache多站点中的部署。
实验环境:windows xp,virtualbox上Ubuntu11.10虚拟机

查看原文请访问:

 

ubuntu下设置apache目录地址

一、apache多站点配置
安装apache:sudo apt-get install apache2
启动apache并测试:

怎样在一个Ubuntu的机器上(虚拟机)配置Apache支持多个网站呢?

比如你有一台独立的Ubuntu虚拟机,配有一个外网的IP(45.46.47.48),并且注册了两个域名AAA.com和BBB.com,将这两个域名DNS解析到你虚机的IP地址。假设你已经安装好了Apache,一切都是默认的设置。
我们需要在这一个server上面,同时host AAA.com,BBB.com

 

1、使用多域名
自定义两个域名:www.linuxidc.com和www.88181.com
①修改虚拟机hosts
添加:
127.0.0.1    www.linuxidc.com
127.0.0.1    www.88181.com
②apache安装目录(/etc/apache2)下,配置sites-available/default文件
安全起见,先备份default文件。
修改default文件:
删除原有内容,添加下列内容:
<VirtualHost *:80>
        ServerAdmin webmaster@localhost   
        DocumentRoot /var/www/linuxidc/
        ServerName www.linuxidc.com
        ErrorLog ${APACHE_LOG_如果apache上配置了多个虚拟主机,并且注册了两个域名AAA.com和BBB.com。DIR}/linuxidc/error.log
        CustomLog ${APACHE_LOG_DIR}/linuxidc/access.log combined
</VirtualHost>
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/88181/
        ServerName www.88181.com
        ErrorLog ${APACHE_LOG_DIR}/88181/error.log
        CustomLog ${APACHE_LOG_DIR}/88181/access.log combined
</VirtualHost>
③在原网站根目录(/var/www)下创建网站
创建linuxidc和88181目录,并分别放入index.html。
在apache日志目录(/var/log/apache2/)下创建linuxidc/access.log、linuxidc/error.log、88181/access.log、88181/error.log。
④重启apache服务
sudo apachectl restart
注:若出现提示:apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName,可在httpd.conf文件中加入ServerName localhost,以后重启便正常。
⑤测试两个站点
站点linuxidc根目录为/var/www/linuxidc/,日志在${APACHE_LOG_DIR}/linuxidc/下。
站点linuxidc根目录为/var/www/88181/,日志在${APACHE_LOG_DIR}/88181/下。
虚拟机中访问
但由于两个站点端口均为默认端口80,故在windows访问
故需另开端口。

第一步:修改hosts文件

在Ubuntu系统中,hosts文件目录为/etc/hosts,可以用vi编辑
sudo vi /etc/hosts
添加一下两行内容:
127.0.0.1 AAA.com
127.0.0.1 BBB.com

区别于Windows 下apache,配置文件通常只有一个,就是httpd.conf。

2、使用多端口
①apache安装目录(/etc/apache2)下,配置ports.conf文件
使用新端口1000
在文件末尾添加:
NameVirtualHost *:1000
Listen 1000
②重新配置sites-available/default文件
80端口改为1000端口:
<VirtualHost *:1000>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/88181/
        ServerName www.88181.com
        ErrorLog ${APACHE_LOG_DIR}/88181/error.log
        CustomLog ${APACHE_LOG_DIR}/88181/access.log combined
</VirtualHost>
③重启apache服务
④测试两个站点
现在linuxidc使用80端口,88181使用1000端口。
虚拟机中访问linuxidc(
在windows访问

第二步:创建站点目录

默认一个站点,我们的站点目录为/var/www/html,这里我们分别为两个站点创建两个目录:
创建目录/var/www/html/AAA/, 并创建一个index.html文件,添加内容”Hello, site AAA”
然后,
创建目录/var/www/html/BBB/, 并创建一个index.html文件,添加内容”Hello, site BBB”

 

图片 1

第三步:修改apache config文件

进入目录 /etc/apache2/sites-available/
可以看到有一个默认文件000-default.conf,我们可以直接将其作为A站点的config文件,它的内容如下:

 

[html] view plain copy

 

  1. <VirtualHost*:80>  
  2.         ServerName AAA.com  
  3.         ServerAlias www.AAA.com  
  4.         <Directory/var/www/html/AAA/>  
  5.             AllowOverride All  
  6.         </Directory>  
  7.         ServerAdmin webmaster@localhost  
  8.         DocumentRoot /var/www/html/AAA  
  9.         ErrorLog ${APACHE_LOG_DIR}/error.log  
  10.         CustomLog ${APACHE_LOG_DIR}/access.log combined  
  11. </VirtualHost>  

 

 

运行命令为BBB.com创建配置文件:
sudo cp 000-default.conf 001-default.conf
修改其内容如下:

 

[html] view plain copy

 

  1. <VirtualHost*:80>  
  2.         ServerName BBB.com  
  3.         ServerAlias www.BBB.com  
  4.         <Directory/var/www/html/BBB/>  
  5.             AllowOverride All  
  6.         </Directory>  
  7.         ServerAdmin webmaster@localhost  
  8.         DocumentRoot /var/www/html/BBB  
  9.         ErrorLog ${APACHE_LOG_DIR}/error.log  
  10.         CustomLog ${APACHE_LOG_DIR}/access.log combined  
  11. </VirtualHost>  

 

 

Linux下 Apache的配置文件是 /etc/apache2/apache2.conf,Apache在启动时会自动读取这个文件的配置信息。而其他的一些配置文件,如 httpd.conf等,则是通过Include指令包含进来。

第四步:启动站点

运行命令:
sudo a2ensite 000-default.conf
sudo a2ensite 000-default.conf
如果提示需要运行apache load,你可以按照提示运行命令。

 

第五步:重启Apache service

运行命令:
sudo service apache2 restart

在apache2.conf里有sites-enabled目录,而在 /etc/apache2下还有一个sites-available目录,其实,这里面才是真正的配置文件,而sites- enabled目录存放的只是一些指向这里的文件的符号链接,你可以用ls /etc/apache2/sites-enabled/来证实一下。

第六步:验证

你可以在浏览器中分别输入AAA.com和BBB.com查看是否和index里面的内容一致。如果和预期一致,那么就完成了Apache多站点的配置了。

是不是很简单?有问题欢迎直接留言。

 

所以,如果apache上配置了多个虚拟主机,每个虚拟主机的配置文件都放在 sites-available下,那么对于虚拟主机的停用、启用就非常方便了:当在sites-enabled下建立一个指向某个虚拟主机配置文件的链 接时,就启用了它;如果要关闭某个虚拟主机的话,只需删除相应的链接即可,根本不用去改配置文件。

 

1、拷贝一份配置文件

 

Php代码  

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/default.bak  

 2、修改配置文件

Java代码  

sudo gedit /etc/apache2/sites-available/default default   

 修改DocumentRoot 后面的为你自定义的设置

Java代码  

<VirtualHost *:80>  

    ServerAdmin [email protected]  

  

    DocumentRoot /home/guhao/www  

    <Directory />  

        Options FollowSymLinks  

        AllowOverride None  

    </Directory>  

    <Directory /var/www/>  

        Options Indexes FollowSymLinks MultiViews  

        AllowOverride None  

        Order allow,deny  

        allow from all  

    </Directory>  

  

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/  

    <Directory "/usr/lib/cgi-bin">  

        AllowOverride None  

        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  

  

    Alias /doc/ "/usr/share/doc/"  

    <Directory "/usr/share/doc/">  

        Options Indexes MultiViews FollowSymLinks  

        AllowOverride None  

        Order deny,allow  

        Deny from all  

        Allow from 127.0.0.0/255.0.0.0 ::1/128  

    </Directory>  

  

</VirtualHost>  

3、建立链接文件

Java代码  

sudo ln -s /etc/apache2/sites-available/default  /etc/apache2/sites-enabled/default  

 4、重启apache服务器

Java代码  

sudo /etc/init.d/apache2 restart  

 

区别于Windows 下apache,配置文件通常只有一个,就是httpd.conf。 Linux下 Apache的配置文件是 /etc/apache2/apache2.conf,Ap...

编辑:编程 本文来源:如果apache上配置了多个虚拟主机,并且注册了两

关键词: