April 19, 2013

UbuntuにLibeventをインストールしてみる

引き続き、Ratchet関連です。


Ratchetドキュメントの商用環境関連の記載に、Libeventなるものの記載があったので、とりあえずインストールしてみました。
http://socketo.me/docs/deploy

Libeventについては、以下が非常に参考になりそうです。

C言語 libeventとは イベント通知とI/Oバッファ
http://kaworu.jpn.org/kaworu/2008-11-29-1.php

liveventの意義
http://nippondanji.blogspot.jp/2008/09/livevent.html


以下、インストール手順ですが、色々とエラーが出たので、あまり参考にならないかもしれませんm(_ _)m

とりあえず記載の通り
$ sudo apt-get install libevent libevent-dev
とすると
E: Unable to locate package libevent
が発生。
$ sudo apt-get install libevent-dev
ならインストールできたので、dpkgで確認してみると
$ dpkg -l | grep libevent
ii  libevent-2.0-5                            2.0.16-stable-1                                     Asynchronous event notification library
ii  libevent-core-2.0-5                       2.0.16-stable-1                                     Asynchronous event notification library (core)
ii  libevent-dev                              2.0.16-stable-1                                     Asynchronous event notification library (development files)
ii  libevent-extra-2.0-5                      2.0.16-stable-1                                     Asynchronous event notification library (extra)
ii  libevent-openssl-2.0-5                    2.0.16-stable-1                                     Asynchronous event notification library (openssl)
ii  libevent-pthreads-2.0-5                   2.0.16-stable-1                                     Asynchronous event notification library (pthreads)
と出ました。(これで良いのだろうか。)

続いて、PECL拡張モジュールのインストールです。
$ sudo pecl install libevent
として、またエラーが出ました。
Failed to download pecl/libevent within preferred state "stable", latest release is version 0.0.5, stability "beta", use "channel://pecl.php.net/libevent-0.0.5" to install
install failed
調べてみると、以下が見つかりました。
https://groups.google.com/forum/?fromgroups=#!topic/phpdaemon/KulET8lECIA
http://serverfault.com/questions/271554/problems-installing-php-libevent-pecl-package

真似して
$ sudo pecl install channel://pecl.php.net/libevent-0.0.5
とすると
configure: error: Cannot find libevent headers
と出ました。

諦めたくなって来ましたが、ソースからインストールしてみます。
http://pecl.php.net/package/libevent
$ cd ~/src/
$ wget http://pecl.php.net/get/libevent-0.0.5.tgz
$ tar xzvf libevent-0.0.5.tgz
$ cd libevent-0.0.5/
$ phpize
$ ./configure
$ make
$ sudo paco -D make install

----------------------------------------------------------------------
Libraries have been installed in:
   /home/xxx/src/libevent-0.0.5/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Installing shared extensions:     /usr/local/php/php-5.4.10/lib/php/extensions/no-debug-zts-20100525
(おお。進んだ。)

php.iniに以下を記述。
extension=libevent.so
Apacheを再起動。
$ sudo service apache2 restart
phpinfoを確認。
(0.0.5をDLしたはずだけど0.0.4となっているぞ。)


正しくインストール出来たのだろうか。。。

--

関連:
FuelPHPでWebSocketを扱うパッケージを作りました
http://madroom-project.blogspot.jp/2013/04/fuelphpwebsocket.html

No comments:

Post a Comment