AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 389875
Accepted
Yehia A.Salam
Yehia A.Salam
Asked: 2012-05-17 17:06:30 +0800 CST2012-05-17 17:06:30 +0800 CST 2012-05-17 17:06:30 +0800 CST

Apache 虚拟主机和子域

  • 772

我正在尝试为我正在处理的项目projectx.cairocubicles.com创建一个子域,此 url 指向另一台服务器而不是托管www.cairocubicles.com的服务器。子域指向的服务器安装了以下虚拟主机的 apache:

    <VirtualHost *:80>
  # Admin email, Server Name (domain name) and any aliases
  ServerAdmin [email protected]
  ServerName  www.project1.cairocubicles.com


  # Index file and Document Root (where the public files are located)
  DirectoryIndex index.html index.php
  DocumentRoot /home/project1/web/public
    <Directory /home/project1/web/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        AcceptPathInfo On
        Order allow,deny
        Allow from all
    </Directory>


  # Custom log file locations
  LogLevel warn
  ErrorLog  /home/project1/web/log/error.log
  CustomLog /home/project1/web/log/access.log combined

</VirtualHost>

但是现在当浏览到 project1.cairocubicles.com 时,我得到了一个不同的网站(虚拟主机列表中的另一个网站)。我也尝试更改ServerName www.project1.cairocubicles.com为,ServerName project1.cairocubicles.com但随后出现 403 Forbidden 错误。有什么线索吗?

谢谢。

subdomain apache-2.2 virtualhost
  • 5 5 个回答
  • 2064 Views

5 个回答

  • Voted
  1. becomingwisest
    2012-05-17T17:11:19+08:002012-05-17T17:11:19+08:00

    只是在黑暗中快速拍摄,但这可能是 SELinux 问题。当您访问您配置为 ServerName 的站点时,站点特定日志中是否显示任何内容?/var/log/http/error.log 中有什么显示吗?

    • 1
  2. Mattisdada
    2012-05-17T19:36:49+08:002012-05-17T19:36:49+08:00

    -确保在配置发生任何更改后使用 apache2/httpd 执行重启或重新加载

    -确保 /home/project1/web/public 存在且权限为 664(使用 -R 递归执行此操作)

    - 确保文件的所有者和组是 apache2 / httpd(取决于发行版),通常用户 ID 为 33

    -确保 project1.cairocubicles.com 指向的 IP 地址正确

    -我通常避免使用 www。带有现有子域的子域(不是出于技术原因,它看起来很乱)

    -为了测试,制作一个名为 phpinfo.php 的文件,并让它只包含以下内容

     <?php
         phpinfo();
     ?>
    

    并只加载它(所以http://project1.cairocubicles.com/phpinfo.php)

    -您需要确保您已经修改了文件夹的所有权和组信息。尝试以下命令(扩展上面的第 3 点):

    sudo chown apache2 /home/project1/public -R 
    

    和

    sudo chgrp apache2 /home/project1/public -R 
    

    如果命令显示用户 apache2 不存在,请将其替换为 httpd。如果 apache2 进程(以用户 apache2 身份启动)无法读取/执行文件,则可能会发生错误(即 403 forbidden)。

    另一种解决方法是将您的用户添加到 apache2 组。不过,正确设置有点复杂

    • 1
  3. Brian P
    2012-05-17T17:14:35+08:002012-05-17T17:14:35+08:00

    尝试:

    服务器名称 project1.cairocubicles.com
    ServerAlias www.project1.cariocubicles.com
    

    确保运行 apache 的用户具有对 /home/project1/web/public 目录的读取权限

    • 0
  4. blahnana
    2012-05-17T17:20:30+08:002012-05-17T17:20:30+08:00

    如果域未列为 ServerName 或 ServerAlias,它将从第一个定义的 VirtualHost 加载。这就是为什么在第一种情况下您最终会看到错误的网站。

    更改服务器名称后,您可能加载了正确的网站,但现在您遇到了权限或内容问题。检查错误日志、访问日志、文件系统权限。除此之外,之前的发帖人提到 SELinux 是一个可能的问题。

    • 0
  5. Best Answer
    Yehia A.Salam
    2013-01-06T04:00:07+08:002013-01-06T04:00:07+08:00

    所以当我给 /home/userx 中的主目录一个 o+x 权限时它现在工作了,这安全吗,为什么它需要每个人的执行权限

    我需要确保我已经修改了文件夹的所有权和组信息,使用以下命令: chown apache2 /home/project1/public -R 和 chgrp apache2 /home/project1/public -R 如果命令说用户apache2 不存在,用 httpd 替换它。这就是为什么它不能在主目录(由您的用户拥有)中工作而在 /var/www 目录(由 apache2 拥有)中工作的原因。我建议在 /var/www/ 中创建指向您的主目录的符号链接。这是标准做法。(其他人更容易看到发生了什么)

    • 0

相关问题

  • Apache 上的子域不工作 - 找不到服务器

  • 如何使用域经销商 API 设置域屏蔽?

  • 如何在 IIS7 中创建子域?

  • 通配符 DNS 和子域

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve