在本地运行多个网站 Apache PHP Ubuntu

Posted

技术标签:

【中文标题】在本地运行多个网站 Apache PHP Ubuntu【英文标题】:Running multiple websites locally Apache PHP Ubuntu 【发布时间】:2010-11-22 16:37:33 【问题描述】:

我正在尝试运行多个虚拟主机(?),例如: http:/localhost 将指向一个项目,http:/newsite 指向另一个项目,http:/myfavourite 再次指向另一个项目的不同文档根目录。

(由于超链接发帖限制,这里每个http://都是http://)

我没有成功寻找在 /etc/apache2 中编辑 apache 文件的位置。我在寻找 vhosts 文件吗?

任何建议都会很棒,谢谢。

【问题讨论】:

【参考方案1】:

localhost 与 apache 无关,只是你机器的别名(ip 127.x.x.x)。

您必须编辑 /etc/hosts 才能完成您想要的操作。

你为什么要这样做? http://localhost/newsite 还不够吗?

【讨论】:

在你的开发盒上设置一个合适的虚拟主机给你一个比只使用 /var/www/ 中的目录更真实的开发环境。【参考方案2】:

您可以编辑 /etc/hosts 并添加多个指向 127.0.0.1 的名称,然后为每个名称添加 VirtualHost 条目。根据您的服务器,配置可能在 /etc/apache2/conf/httpd.conf 或 /etc/apache2/sites-available 中。如果是后者,那么here 是我为配置获得的第一个谷歌点击。

【讨论】:

【参考方案3】:

这是一本电子书的一章,它解释了如何创建虚拟主机来精确地做你想做的事——示例使用的是 Ubuntu:Creating A Local Domain Using Apache Virtual Hosts

简而言之:

您首先需要创建虚拟主机 然后,您必须编辑主机文件(在 Linux 下,它是 /etc/hosts),以便新的“伪域名”指向您的计算机。

对于虚拟主机,使用 Ubuntu,您需要在 /etc/apache2/sites-available/ 中创建一个新文件;例如名为 your-site.com ;它会包含这样的内容:

<VirtualHost *:80>
    ServerName your-site.com
    DocumentRoot /.../www/...

    <Directory /.../www/...>
        Options Indexes FollowSymLinks Includes
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

然后你注册这个文件,让它被 Apache 加载,使用这个命令:

sudo a2ensite your-site.com

然后,重新加载 Apache:

sudo /etc/init.d/apache2 reload

然后你必须编辑 /etc/hosts 来添加这样一行:

127.0.0.1       your-site.com

所以“your-site.com”实际上指向您自己的计算机。

重要的是用于在浏览器中访问您的网站的名称是在 hosts 文件中声明的名称;它也必须与 Apache 配置中的 ServerName 指令使用的相同。

当您为一个 VirtualHost 完成此操作后……其他所有的都是一样的:只有站点的名称,它是 DocumentRoot,更改。

希望这会有所帮助!

【讨论】:

ServerName 值必须有扩展名吗?我注意到您使用了your-site.com,但您可以改用mysite 之类的东西吗?

以上是关于在本地运行多个网站 Apache PHP Ubuntu的主要内容,如果未能解决你的问题,请参考以下文章

最快最简单的部署本地Apache+PHP+MySQL神器USBWebserver(转)

phpstudy启动apache mysql 启动马上停止 80和3306没有被占用?

PHP网站从本地主机更改域名不起作用

如何通过XAMPP在服务器上建多个网站

使用IP访问本地网站缓慢解决方法

Apache为本地主机配置多个网站根目录详解