thinkphp でワーカーマンを使用する方法

リリース: 2019-11-30 16:53:09
転載
5492 人が閲覧しました

次のコラム workerman 入門チュートリアル では、workerman と thinkphp を組み合わせる方法を紹介しますので、少しでもお役に立てれば幸いです。

thinkphp でワーカーマンを使用する方法

workerman を実行するには、pcntl とイベントまたは libevent をインストールする必要があります

pcntl のインストール方法:

With例として php-5.5 .20 を使用します。実際の状況は、インストールした PHP ディレクトリに基づいています。

1. PHP ソース コードを見つけて、php-5.5.20/ext/pcntl/ ディレクトリに入ります。 cd php- 5.5.20/ext/pcntl/

2.locate phpize を実行して phpize ディレクトリを見つけ、/usr/local/php-5.5.20/bin/phpize

3. を実行します。 /configure --with-php-config=PHP 設定ファイルのパス 例: ./configure --with-php-config=/usr/local/php-5.5.20/bin/php-config

4. コンパイルしてインストールします make && make install If/ext /pcntl/modules/pcntl.so が生成され、正常にコンパイルされます

5. php echo "extension=pcntl.so" によって読み込まれた PHP.INI に拡張機能を追加します。 >> /etc/php.ini (現在使用されている php.ini 設定パスを表示するには、コマンド php --ini を入力します)

6. nginx を再起動します nginx -s reload

7サービスを表示 ps -aux | grep pcntl

バージョン 5.3 の場合は、コマンドを直接入力してインストールできます:

yum install php-cli php-process git gcc php-devel php-pear libevent-devel php-pdo php-mysql_pdo -y
ログイン後にコピー

イベントのインストール方法:

1. yum install libevent-devel -y

2. pecl install event

ヒント: libevent OpenSSL サポートを含める [yes]: no と入力して Enter キーを押します。それ以外の場合は Enter キーを押してください。

3. echo extension=event.so > /etc/php.ini

libevent インストール方法:

1. yum install libevent- devel

2. pecl install channel://pecl .php.net/libevent-0.1.0 // libevent のインストールを要求する [autodetect]: Enter を押します

3. PHP ディレクトリ lib を確認します。 /php/extensions/no-debug-non-zts-20121212 libevent.so がディレクトリ

に生成されるかどうか 4. コマンド php -v を入力して、インストールされている拡張機能を表示します

#Workerman は Thinkphp に統合されています: (推奨: workerman チュートリアル )

1. ダウンロードした workman ディレクトリを project\ThinkPHP\Library ディレクトリに配置します

2 \Lib\Constants.php を除くクラス ファイルをworkerman ディレクトリに配置します。 ファイル名を *.class.php

に変更します。 3. 次のコマンドを使用して、プロジェクトのルート ディレクトリに新しいファイル worker.php ファイルを作成します。 content:

<?php
header("Content-type: text/html; charset=utf-8");
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
// 应用入口文件
define(&#39;BIND_MODULE&#39;, &#39;Worker&#39;);
define(&#39;BIND_CONTROLLER&#39;, &#39;Worker&#39;);
define(&#39;BIND_ACTION&#39;, &#39;Start&#39;);
//define(&#39;APP_MODE&#39;,&#39;cli&#39;);
//ThinkPHP的其他设定
define( &#39;APP_PATH&#39;, dirname(__FILE__).&#39;/Application/&#39; );
require dirname( __FILE__).&#39;/ThinkPHP/ThinkPHP.php&#39;;
?>
ログイン後にコピー

4. Home モジュールのコピーをコピーし、その名前を Worker

5 に変更します。次の内容を含む新しい Worker コントローラーを Worker モジュールに作成します。

6. Linux システムに入り、ポート 8989

<?php
namespace Worker\Controller;
use Think\Controller;
use Workerman\Worker;
class WorkerController extends Controller{
    public function Start() {
        $worker = new Worker(&#39;text://0.0.0.0:8989&#39;); //实例化Worker,并设置协议、IP和端口(地址和端口自定义)
        $worker->count = 4;
        $worker->onMessage = array($this, &#39;onMessage&#39;);
        //worker的其它回调方法可以参考onMessage
        Worker::runAll();
    }
    public function onMessage($connection, $data)
    {
        $connection->send(&#39;hello&#39;);
    }
    
}
 ?>
ログイン後にコピー

7. プロジェクト ルートに入る ディレクトリに起動コマンドを入力します:

iptables -I INPUT -p tcp --dport 8989 -j ACCEPT
ログイン後にコピー

に [OK] が表示され、起動が成功したことを示します

8. 新しいサーバー リンクを作成し、telnet 127.0.0.1 8989 を入力してテストします。

Workerman が MySQL にアクセスします :


1. インストールします。 pdo および pdo_mysql およびその他の関連拡張機能

#2. ワーカー モジュールの Conf ディレクトリの config.php にデータベース関連の設定を追加します

3. サーバー アドレスには localhost を使用せず、localhost を使用します。 IP127.0.0.1

4. データベースを設定した後、Thinkphp の Db メソッド


# を直接使用できます。

以上がthinkphp でワーカーマンを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート