RabbitMQ:适用于终端,但不适用于PHP

时间:2015-10-28 06:38:08

标签: php web rabbitmq

对于我目前正在处理的项目,我正在使用rabbitMQ对任务进行排队,并发送消息。如果我从终端运行服务器和客户端,我将收到数据,但如果我尝试将php包含在index.php中,尝试显示进入网页,则无法使用。我做错了什么,我尝试在一个函数中包装testRabbitMQClient.php,但这仍然不起作用。我错过了什么?

   <?php
//index.php

require 'openid.php';
require 'functions.php';
require 'testRabbitMQClient.php';
/*
#connects to my database and checks to make sure its connected.
*/
$apikey="key";
try {
   $openid = new LightOpenID('localhost');
    if(!$openid->mode) {
        if(isset($_GET['login'])) {
            $openid->identity = 'http://steamcommunity.com/openid';
            header('Location: ' . $openid->authUrl());
        }
?>
<h1>Hey ____ thank you for using FOF.com</h1>

<br>
<?php 
    //showFriends(xxxxxxxxxxxxxxxxx); 
    //calls function from testRabbitMQClient.php    
    send("friends");

?>
<form action="?login" method="post">
    <input type="image" src="http://cdn.steamcommunity.com/public/images/signinthroughsteam/sits_large_border.png">
</form>
<?php
    } elseif($openid->mode == 'cancel') {
        echo 'User has canceled authentication!';
    } else {
        if($openid->validate()) {
                $id = $openid->identity;
                // identity is something like: http://steamcommunity.com/openid/id/76561197994761333
                // we only care about the unique account ID at the end of the URL.
                $ptn = "/^http:\/\/steamcommunity\.com\/openid\/id\/(7[0-9]{15,25}+)$/";
                preg_match($ptn, $id, $matches);
                echo "User is logged in (steamID: $matches[1])\n";
    } 
    else 
    {
                echo "User is not logged in.\n";
        }

    }
} catch(ErrorException $e) {
    echo $e->getMessage();
}
?>

#!/usr/bin/php
<?php
//rabbit mq client;
require_once('path.inc');
require_once('get_host_info.inc');
require_once('rabbitMQLib.inc');

function send($type){
    $client = new rabbitMQClient("testRabbitMQ.ini","testServer");
    if (isset($argv[1]))
    {
        $msg = $argv[1];
    }
    else
    {
        $msg = "test message";
    }

    $request = array();
    $request['type'] = "friends";
    $request['username'] = "steve";
    $request['password'] = "password";
    $request['message'] = $msg;
    $response = $client->send_request($request);
    //$response = $client->publish($request);

    echo "client received response: ".PHP_EOL;
    echo $response;
    echo "\n\n";

    echo $argv[0]." END".PHP_EOL;
}

?>

1 个答案:

答案 0 :(得分:1)

我想出了我的问题!我忘了在apache中启用amqp。我通过将extension=amqp.so添加到位于apache文件夹中的php.ini文件来完成此操作。