解释LINUX以下的参数:DocumentRoot和DirectoryIndex的作用 1.DocumentRoot DocumentRoot指定apache服务器网页(文档)根目录 DocumentRoot
表示所设定的主机可在所有的地址上运行 <VirtualHost *> ServerName test1.name #默认的第一个主机会接收未列出虚拟主机的请求 DocumentRoot Apache2.2/htdocs/test1" </VirutalHost> <VirtualHost *> ServerName test2.name DocumentRoot htdocs/test1" </VirtualHost> <VirtualHost 10.0.0.2> ServerName test2.name DocumentRoot "C:/Apache2.2/htdocs/test2" </VirutalHost> 建立IP寻址的默认虚拟主机 <VirtualHost _default_> DocumentRoot 会接受443端口号的所有未设定虚拟主机的请求 端口号寻址的虚拟主机 Listen 8080 <VirtualHost 10.0.0.1:8080> DocumentRoot
httpd/conf中 vim /etc/httpd/conf/httpd.conf1 1、用#注释掉以下两行(其实如果不注释,好像没有什么影响) #ServerName www.example.com#DocumentRoot NameVirtualHost *:801 ②写入单个虚拟主机信息 ServerName —— 主机名(域名或公网IP) ServerAlias —— 别名(二级域名或其他域名或IP) DocumentRoot 模版: <VirtualHost *:80> ServerName XXX ServerAlias XXX2 DocumentRoot /XXX</VirtualHost>123456 all granted</Directory>NameVirtualHost *:80<VirtualHost *:80> ServerName www.mywebsite1.com DocumentRoot /home/www/htmla</VirtualHost><VirtualHost *:80> ServerName mywebsite1.com DocumentRoot /home/
每个定义块中,至少都会有一个ServerName指令来指定伺服哪个主机和一个DocumentRoot指令来说明这个主机的内容存在于文件系统的什么地方。 其中ServerName和DocumentRoot所包含的内容应该与全局的保持一致,且要放在配置文件的最前面,扮演默认主机的角色。 <VirtualHost *:80> DocumentRoot "D:/phpstudy/WWW/dxGM" ServerName gm.998gx.com </VirtualHost > <VirtualHost *:80> DocumentRoot "D:/phpstudy/WWW/88qp" ServerName www.998gx.com </VirtualHost > <VirtualHost *:80> DocumentRoot "D:/phpstudy/WWW" ServerName localhost </VirtualHost> 复制代码
1、基于ip地址的虚拟主机 代码如下: Listen 80 DocumentRoot /home/httpd/html1 ServerName www.ok1.com ErrorLog /usr/local/apache/logs/error1_log CustomLog /usr/local/apache/logs/access1_log combined DocumentRoot : Listen 172.20.30.40:80 Listen 172.20.30.40:8080 Listen 172.20.30.50:80 Listen 172.20.30.50:8080 DocumentRoot /www/example1-80 ServerName www.example1.com DocumentRoot /www/example1-8080 ServerName www.example1 .com DocumentRoot /www/example2-80 ServerName www.example1.org DocumentRoot /www/example2-8080
Listen 8080 Listen 8088 <Virtualhost*:80> #三个不同端口的主机 ServerName www.80.com DocumentRoot /var/www/html/80 </Virtualhost> <Virtualhost*:8080> ServerName www.8080.com DocumentRoot /var/ www/html/8080 </Virtualhost> <Virtualhost*:8088> ServerName www.8088.com DocumentRoot /var/www/ /var/www/html/80 </Virtualhost> <Virtualhost192.168.3.33:80> ServerName www.8080.com DocumentRoot /var/www/html/80 </Virtualhost> <Virtualhost192.168.3.32:80> ServerName www.8080.com DocumentRoot
用ServerAlias 以前很笨,要使多个域名指向同一站点总是这样写: <VirtualHost *:80> ServerAdmin webmaster@admin DocumentRoot 2.2.16-project2-access.log" common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@admin DocumentRoot 2.2.16-project2-access.log" common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@admin DocumentRoot 这样一来就等于绑了多少域名就开了多少虚拟主机………… 后来发现有个叫”ServerAlias“的东西可以用 其实可以这样: <VirtualHost *:80> ServerAdmin webmaster@admin DocumentRoot
Include conf/vhosts.conf 虚拟主机 NameVirtualHost *:80 <VirtualHost *:80> ServerName www.abc.cn DocumentRoot /VirtualHost> 别名 用于同一域名多个站 NameVirtualHost *:80 <VirtualHost *:80> ServerName www.abc.cn DocumentRoot 添加多个端口 Listen 8011 Listen 8088 建立多个虚拟主机目录 NameVirtualHost *:80 <VirtualHost *:80> ServerName localhost DocumentRoot "E:/web1" </VirtualHost> NameVirtualHost *:8011 <VirtualHost *:8011> ServerName localhost DocumentRoot "E:/web2" </VirtualHost> NameVirtualHost *:8088 <VirtualHost *:8088> ServerName localhost DocumentRoot
**DocumentRoot /var/www/html/yourdomain**:定义网站的根目录,所有用户请求会从这个目录中查找文件并返回响应。 修复方法是将注释放在独立的一行: DocumentRoot /var/www/html/yourdomain # 这是根目录 问题 2:目录权限设置不正确 如果 Apache 没有权限访问 DocumentRoot 2.3 常见的虚拟主机问题及解决方案 错误:DocumentRoot takes one argument 此错误通常表示在 DocumentRoot 指令中使用了不必要的参数或注释符号不正确。 确保 DocumentRoot 指令后只跟一个参数,即网站的根目录路径。 关键步骤总结: 正确配置虚拟主机:包括 ServerName、DocumentRoot 和 Directory 等指令。
添加以下内容 Listen 8081 <VirtualHost *:8081> DocumentRoot "/var/wwwroot/site1" ErrorLog "logs/site1 None Require all granted </Directory> </VirtualHost> Listen 8082 <VirtualHost *:8082> DocumentRoot 修改为以下内容 <VirtualHost *:80> DocumentRoot "/var/wwwroot/site1" ServerName site1.test.com ErrorLog AllowOverride None Require all granted </Directory> </VirtualHost> <VirtualHost *:80> DocumentRoot 修改配置文件为以下内容 <VirtualHost 192.168.204.135:80> DocumentRoot "/var/wwwroot/site1" ErrorLog "logs
httpd/conf.d/ # vim vhost.conf NameVirtualHost 192.168.100.10:80 <VirtualHost 192.168.100.10:80> DocumentRoot CustomLog logs/www.linuxidc.com-access_log common </VirtualHost> <VirtualHost 192.168.100.10:80> DocumentRoot /vhost.conf #NameVirtualHost *:80 //不需要这行 <VirtualHost 192.168.10.10:80> DocumentRoot CustomLog logs/192.168.100.10-access_log common </VirtualHost> <VirtualHost 192.168.100.20:80> DocumentRoot CustomLog logs/192.168.100.10:80-access_log common </VirtualHost> <VirtualHost 192.168.100.10:81> DocumentRoot
最后添加如下内容 NameVirtualHost 192.168.81.130:80 <VirtualHost 192.168.81.130:80> ServerName 192.168.81.130 DocumentRoot NameVirtualHost 192.168.81.131:80 <VirtualHost 192.168.81.131:80> ServerName www.test.com#这里不带http DocumentRoot all </Directory> </VirtualHost> <VirtualHost 192.168.81.131:80> ServerName www.test2.com#这里不带http DocumentRoot 设置虚拟主机 NameVirtualHost 192.168.81.131:80 <VirtualHost 192.168.81.131:80> ServerName 192.168.81.131 DocumentRoot NameVirtualHost 192.168.81.131:82 <VirtualHost 192.168.81.131:82> ServerName 192.168.81.131:82 DocumentRoot
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@dummy-host.www.phpStudy.net DocumentRoot ServerAdmin 管理员邮箱 DocumentRoot 站点文件夹 (注意:假设站点文件夹中的路径有空格,请在路径两端加上双引號) ServerName 要绑定的域名(必填) ServerAlias /www/example1 ServerName www.example.com </VirtualHost> <VirtualHost 172.20.30.40> DocumentRoot 使用”_default_”虚拟主机 这个虚拟主机能够理解成基于IP的虚拟主机 <VirtualHost _default_:*> DocumentRoot /www/default </VirtualHost <VirtualHost 61.122.3.6:8080> ServerAdmin webmaster@dummy-host.www.phpStudy.net DocumentRoot
<VirtualHost *:80> DocumentRoot "E:\www\codeigniter" ServerName www.codeigniter.com DirectoryIndex index.php allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost *:80> ServerAdmin dev.xnxw.com DocumentRoot RewriteRule ^(.*)$ /index.php/$1 [L] </IfModule> </VirtualHost> <VirtualHost *:80> ServerAdmin m.xnxw.com DocumentRoot ^(.*)$ /index.php/$1 [L] </IfModule> </VirtualHost> <VirtualHost *:80> ServerAdmin job.pccncn.dev DocumentRoot
DocumentRoot "/mnt/web/clusting" #主站点的网页存储位置。 别名设置 对于不在DocumentRoot指定的目录内的页面,既可以使用符号连接,也可以使用别名。 /www/example1 ServerName www.example1.com </VirtualHost> <VirtualHost 172.20.30.50> DocumentRoot </VirtualHost> <VirtualHost 172.20.30.50> DocumentRoot /www/example2 ServerName www.example2.org /www/example1 ServerName www.example1.com </VirtualHost> <VirtualHost 172.20.30.40> DocumentRoot
3 DocumentRoot和Directory,改为站点目录的上一级目录 例如站点放在 D:/Appserv/www/1 和 D:/Appserv/www/2,则改为以下形式 DocumentRoot (注:顺序绝不可以乱,127.0.0.1这组必须为第一组,否则会出现localhost不能访问的问题) <VirtualHost *:80> DocumentRoot "D:/Apache24/htdocs " ServerName 127.0.0.1 </VirtualHost> <VirtualHost *:80> DocumentRoot "D:/Apache24/htdocs/test
这个配置表示所有的*.php文件使用php处理 AddType application/x-httpd-php .php .phtml 添加虚拟目录: 还在httpd.conf文件后面加上: 先注释掉原来的路径#DocumentRoot default.html default.htm home.php home.html home.htm Alias /difcipo "D:/PHP" #D:/PHP是自己以后放php项目的地方 并取一个别名 DocumentRoot granted </Directory> </IfModule> 配置虚拟主机: 打开》conf》extra》httpd-vhosts.conf,在文件后面添加 <VirtualHost *:80> DocumentRoot "D:/PHP" #这个需要和前面的DocumentRoot一致 ServerName www.abc.com #虚拟主机名 ErrorLog "logs/www.age.com-error.log
您可以使用grep搜索Apache 配置文档的目录,这里的目录是/etc/apache2/sites-enabled,命令如下: grep -R "DocumentRoot" /etc/apache2/ sites-enabled -R标志确保grep在其输出DocumentRoot的内容。 结果将类似于以下内容,如果您安装网站校多结果名称和数量可能不同: sites-enabled/000-default.conf DocumentRoot /var/www/html 现在您已确认文档根目录的位置 除了DocumentRoot和Directory设置之外,您还可以找到需要更新的别名和重写等内容。无论您在grep输出中看到原始文档根目录的路径,您都需要更新路径以反映新位置。 sudo nano /etc/apache2/sites-available/ssl-default.conf 通过更改DocumentRoot并确保Directory正确配置,如同之前所做的更改相同:
Include conf.d/me.conf 二、配置me.conf vim /etc/httpd/conf.d/me.conf 添加如下代码: <VirtualHost *:80> DocumentRoot /var/www/html/site_a/ ServerName a.sindsun.cn </VirtualHost> <VirtualHost *:80> DocumentRoot /var /www/html/site_b/ ServerName b.sindsun.cn </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/
该-R标志确保grep将在其输出中打印DocumentRoot和完整文件名: grep -R "DocumentRoot" /etc/apache2/sites-enabled 如果您在新服务器上遵循先决条件教程 ,结果将如下所示: /etc/apache2/sites-enabled/example.com-le-ssl.conf: DocumentRoot /var/www/example.com/html /etc/apache2/sites-enabled/example.com.conf: DocumentRoot /var/www/example.com/html 如果您有预先存在的设置 etc/apache2/sites-enabled/example.com.conf sudo nano /etc/apache2/sites-enabled/example.com.conf 找到以DocumentRoot > ServerAdmin sammy@example.comn ServerName example.com ServerAlias www.example.com DocumentRoot