thinkphp와 함께 워커맨을 사용하는 방법

풀어 주다: 2019-11-30 16:53:09
앞으로
5438명이 탐색했습니다.

Workerman Getting Started Tutorial 칼럼에서는 Workerman과 thinkphp를 결합하는 방법을 소개하겠습니다. 도움이 되셨으면 좋겠습니다.

thinkphp와 함께 워커맨을 사용하는 방법

Workerman을 실행하려면 pcntl과 event 또는 libevent를 설치해야 합니다.

pcntl 설치 방법:

php-5.5.20을 예로 들어보세요. 실제 상황은 설치한 PHP 디렉터리에 따라 다릅니다.

1. PHP 소스 코드를 찾아 php-5.5.20/ext/pcntl/directory cd php-5.5.20/ext/pcntl/

를 입력합니다. 2. phpize 디렉토리를 찾고 /usr/local/을 실행하려면 phpize 찾기를 실행하세요. 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 /ext/pcntl/modules/pcntl.so가 생성되면 컴파일이 성공한 것입니다

5. php echo "extension=pcntl.so" >> ; /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
로그인 후 복사

event 설치 방법:

1. yum install libevent-devel -y

2. pecl 설치 이벤트

팁: libevent OpenSSL 지원 포함 [yes]: no를 입력하고 Enter를 누르세요. 그렇지 않으면 Enter를 누르세요

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

libevent 설치 방법:

1.yum install libevent-devel

2.pecl 설치 채널://pecl.php.net/libevent-0.1.0 //libevent 설치 확인 [자동 감지]: Enter를 누르세요

3. PHP 디렉토리 lib/php/extensions/no-debug-non-zts- libevent.so는 20121212 디렉토리 아래에 생성됩니까? 4. 설치된 확장 프로그램을 보려면 php -v 명령을 입력하십시오.

Workerman은 Thinkphp에 통합됩니다.

(추천: workerman tutorial) 1. 다운로드한 Workerman 디렉터리를 프로젝트 ThinkPHPLibrary 디렉터리에 넣습니다

2. LibConstants.php를 제외한 Worker 디렉터리의 클래스 파일 이름을 *.class.php로 변경합니다.

3. 프로젝트 루트 디렉터리에 다음 내용을 포함하는 Worker.php 파일을 만듭니다.

<?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. 홈 모듈의 복사본을 복사하고 이름을 Worker

5로 변경합니다. 다음 내용이 포함된 작업자 모듈:

<?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;);
    }
    
}
 ?>
로그인 후 복사

6. Linux 시스템에 들어가서 포트 8989

iptables -I INPUT -p tcp --dport 8989 -j ACCEPT
로그인 후 복사

7을 엽니다. Enter 프로젝트 루트 디렉터리에 시작 명령을 입력합니다.

php worker.php start
로그인 후 복사

는 시작 성공을 나타내는 OK를 표시합니다. 새 서버 링크를 생성하고 telnet 127.0.0.1 8989를 입력하여

Workerman 액세스 MySQL을 테스트하세요.

1. pdo 및 pdo_mysql 등을 설치합니다. 관련 확장
2. config.php에 데이터베이스 관련 구성을 추가합니다. Worker 모듈의 Conf 디렉터리

3. 서버 주소로 localhost를 사용하지 않고 IP127.0.0.1을 사용합니다.

4. 데이터베이스 구성 후 Thinkphp를 직접 Db 방식으로 사용할 수 있습니다

위 내용은 thinkphp와 함께 워커맨을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!