虚拟主机的代码?

时间:2013-09-05 11:19:24

标签: php apache virtualhost codeception

是否有人使用虚拟主机的代码?如果是这样,你是如何让它工作的?

我有两个测试机器,一个WAMP,一个Ubuntu,两个都设置了虚拟主机。当我运行一个非常基本的代码验收测试时,我得到的响应似乎是在尝试转到默认页面,而不是我虚拟主机的索引页面。

我的虚拟主机名为test;我的/etc/hosts文件的一部分如下所示:

127.0.0.1       test

/etc/apache2/sites-enabled/test看起来像这样:

<VirtualHost *:80>
    ServerName test

    DocumentRoot '/home/joel/projects/web/test'
    <Directory '/home/joel/projects/web/test'>
            Options -Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>
</VirtualHost>

我几乎只使用默认的验收套件设置文件;唯一的变化是在tests/acceptance.suite.yml中输入虚拟机的名称:

class_name: WebGuy
modules:
    enabled:
        - PhpBrowser
        - WebHelper
    config:
        PhpBrowser:
            url: 'http://test'

/home/joel/projects/web/test/index.html中,我有一个非常简单的网页:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Index</title>
</head>
<body>
    Hello, World!
</body>
</html>

我可以在我尝试的任何浏览器中成功加载此页面,包括wget和curl。

我的代码测试也非常简单。在tests/acceptance/WelcomeCept.php

<?php
$I = new WebGuy($scenario);
$I->amOnPage('/');
$I->see('Hello');

当我尝试运行此测试时,我得到了这个输出:

Codeception PHP Testing Framework v1.6.6
Powered by PHPUnit 3.7.24 by Sebastian Bergmann.

Suite unit started

Suite functional started

Suite acceptance started
Running WelcomeCept.php - Failed


Time: 15 ms, Memory: 20.25Mb

There was 1 failure:

---------
1) WelcomeCept.php
Ups, I couldn't see "Hello",
Failed asserting that 
--> It works! This is the default web page for this server. The web server software is running but no content has been added, yet.
--> contains "hello".

Scenario Steps:
2. I see "Hello"
1. I am on page "/"

FAILURES!
Tests: 1, Assertions: 1, Failures: 1.

我的默认网页(127.0.0.1)确实返回“它有效!”消息,但虚拟主机的任何内容都转到“Hello,World”页面。知道为什么代码不会进入我的虚拟主机吗?关于如何追踪导致问题的任何想法?

谢谢!

- 乔尔


修改

我明白了。 tests/acceptance.suite.yml中需要端口号,因此不起作用:

config:
    PhpBrowser:
        url: 'http://test'

但这确实有效:

config:
    PhpBrowser:
        url: 'http://test:80'

这似乎没有在任何地方记录,并且它不直观,所以我提出了一个拉取请求默认为端口80.这可能很快就不是问题。

0 个答案:

没有答案