當前位置:首頁 » 操作系統 » libevent源碼深度剖析pdf

libevent源碼深度剖析pdf

發布時間: 2022-05-06 02:59:22

『壹』 php7無法安裝memcache擴展 系統 centos-6.8 Nginx-1.10.2 PHP-7.0.13/5.6.28 memcached-1.4

一 下載需要的源碼
所有安裝包均選用最新的。
1. 下載libevent2.0.22
點擊紅色部分下載
下載memcached1.4.24
點擊紅色部分,下載最新版本
下載php擴展memcache3.0.8
選擇需要的版本
二 安裝詳細步驟
首先將以上三個軟體包下載到/tmp目錄下
1. 安裝libevent
cd /tmp #首先進入到該下載包的目錄
tar zxvf libevent-2.0.22-stable.tar.gz #解壓包cd libevent-2.0.22-stable #進入到解壓的目錄./configure --prefix=/usr/local #編譯前配置,生成Makefile文件,路徑可自行更改make; make install #編譯+安裝
1
測試是否安裝成功
看到這些信息,表示成功啦
2. 安裝memcached
cd /tmp #首先進入到該下載包的目錄
tar zxvf memcached-1.4.24.tar.gz #解壓包
cd memcached-1.4.24 #進入到解壓的目錄
./configure –with-libevent=/usr/local #編譯前配置,生成Makefile文件,路徑必須與libevent中一致make; make install #編譯+安裝
1
測試是否安裝成功
表示成功的信息
通過以上操作,就完成了memcached伺服器的安裝。特別的簡單吧!現在就來搞一搞memcache的php擴展安裝吧3. 安裝擴展
cd /tmp #首先進入到該下載包的目錄
tar zxvf memcache-3.0.8.tgz #解壓包
cd memcache-3.0.8 #進入到解壓的目錄
/opt/lampp/bin/phpize #動態為php添加擴展。phpize路徑可能不一致,請根據自己的實際情況./configure –enable-memcache –with-php-config=/opt/lampp/bin/php-config –with-zlib-dir #php-config請根據自己環境情況填寫make; make install #編譯+安裝
1
完成以上步驟時,心情愉悅的點擊了enter,准備喝口水瀟灑一下,結果出現了一下錯誤(這也是我寫這篇博客的原因,要不都懶得記錄了)錯誤信息
看了下代碼錯誤信息,說是zlib.h找不到。找不到就給他安一個嘛。真是的安裝zlib
下載zlib-1.2.8.tar.gz
下載地址:http://www.zlib.net/
如圖:
紅色部分點擊
cd /tmp #首先進入到該下載包的目錄
tar zxvf zlib-1.2.8.tar.gz #解壓包
cd zlib-1.2.8 #進入到解壓的目錄
./configure --prefix=/usr/local/zlib
make; make install #編譯+安裝
1
再進行配置一下系統的文件,載入剛才編譯安裝的zlib生成的庫文件vi /etc/ld.so.conf.d/zlib.conf
加入如下內容後保存退出: /usr/local/zlib/lib也就是添加安裝目錄的文件路徑,庫文件。ldconfig 運行之後就會載入安裝的庫文件了。
OK,到這一步了,此時,重新在memcache的php擴展中執行make;make install命令如果看到以下信息,表示成功:
擴展安裝成功
三 配置php.ini文件
首先通過phpinfo函數,找到php.ini的路徑,我的是:/opt/lampp/etc/php.ini在其中添加如下內容:
修改extension_dir路徑:
extension_dir = 「/opt/lampp/lib/php/extensions/no-debug-non-zts-20121212/」
extension=memcache.so
[Memcache]
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
然後重新啟動apache,再次通過phpinfo查看一下情況。如果有如下內容,表示配置成功:
信息
四 配置memcached伺服器
啟動memcached伺服器
memcached -d -m 10 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid參數說明:
-d選項是啟動一個守護進程,
-m是分配給Memcache使用的內存數量,單位是MB,我這里是10MB,-u是運行Memcache的用戶,我這里是root,
-l是監聽的伺服器IP地址,如果有多個地址的話,我這里指定了伺服器的IP地址127.0.0.1,-p是設置Memcache監聽的埠,我這里設置了11211,最好是1024以上的埠,-c選項是最大運行的並發連接數,默認是1024,我這里設置了256,按照你伺服器的負載量來設定,-P是設置保存Memcache的pid文件,我這里是保存在 /tmp/memcached.pid2. 結束memcached進行
kill cat /tmp/memcached.pid
3. 檢查memcached是否已經啟動
看到綠色框中內容,就表示完成
五 測試php的memcache擴展
<?php
$mem = new Memcache;
$mem->connect("192.168.12.201", 13001);
$mem->set('key','This is a test!', 0, 60);$val = $mem->get('key');
echo $val;
?>
寫在後面:大家有興趣可以將session改為使用memcache來保存。php自身使用文件的方式,不太好,動不動文件大小總和就上G了。

『貳』 libevent庫的使用

很明確的告訴你:VC中可以用libevent庫。
方法:
1、下載libevent源碼。
2、用VC編譯,一般編譯成靜態的。
3、在項目中配置libevent庫。
4、引用。
你可以按著以上步驟來。應該沒問題。

『叄』 如何在linux下實現event事件機制

一、Libevent簡介

libevent是一個基於事件觸發的網路庫,適用於windows、linux、bsd等多種平台,內部使用select、epoll、kqueue等系統調用管理事件機制。
特點:
事件驅動,高性能;
輕量級,專注於網路,不如ACE那麼臃腫龐大,只提供了簡單的網路API的封裝,線程池,內存池,遞歸鎖等均需要自己實現;
開放源碼,代碼相當精煉、易讀;
跨平台,支持Windows、Linux、BSD和Mac OS;
支持多種I/O多路復用技術(epoll、poll、dev/poll、select和kqueue等),在不同的操作系統下,做了多路復用模型的抽象,可以選擇使用不同的模型,通過事件函數提供服務;
支持I/O,定時器和信號等事件;
採用Reactor模式;

二、源碼組織結構

Libevent 的源代碼雖然都在一層文件夾下面,但是其代碼分類還是相當清晰的,主要可分為頭文件、內部使用的頭文件、輔助功能函數、日誌、libevent框架、對系 統I/O多路復用機制的封裝、信號管理、定時事件管理、緩沖區管理、基本數據結構和基於libevent的兩個實用庫等幾個部分,有些部分可能就是一個源文件。
1)頭文件
主要就是event.h:事件宏定義、介面函數聲明,主要結構體event的聲明;
2)內部頭文件
xxx-internal.h:內部數據結構和函數,對外不可見,以達到信息隱藏的目的;
3)libevent框架
event.c:event整體框架的代碼實現;
4)對系統I/O多路復用機制的封裝
epoll.c:對epoll的封裝;
select.c:對select的封裝;
devpoll.c:對dev/poll的封裝;
kqueue.c:對kqueue的封裝;
5)定時事件管理
min-heap.h:其實就是一個以時間作為key的小根堆結構;
6)信號管理
signal.c:對信號事件的處理;
7)輔助功能函數
evutil.h 和evutil.c:一些輔助功能函數,包括創建socket pair和一些時間操作函數:加、減和比較等。
8)日誌
log.h和log.c:log日誌函數
9)緩沖區管理
evbuffer.c和buffer.c:libevent對緩沖區的封裝;
10)基本數據結構
compat/sys下的兩個源文件:queue.h是libevent基本數據結構的實現,包括鏈表,雙向鏈表,隊列等;_libevent_time.h:一些用於時間操作的結構體定義、函數和宏定義;
11)實用網路庫
http和evdns:是基於libevent實現的http伺服器和非同步dns查詢庫;

『肆』 如何安裝FastDFS

Google了一下,流行的開源分布式文件系統有很多,介紹如下:

mogileFS:Key-Value型元文件系統,不支持FUSE,應用程序訪問它時需要API,主要用在web領域處理海量小圖片,效率相比mooseFS高很多。
fastDFS:國人在mogileFS的基礎上進行改進的key-value型文件系統,同樣不支持FUSE,提供比mogileFS更好的性能。
mooseFS:支持FUSE,相對比較輕量級,對master伺服器有單點依賴,用perl編寫,性能相對較差,國內用的人比較多
glusterFS:支持FUSE,比mooseFS龐大
ceph:支持FUSE,客戶端已經進入了linux-2.6.34內核,也就是說可以像ext3/rasierFS一樣,選擇ceph為文件系統。徹底的分布式,沒有單點依賴,用C編寫,性能較好。基於不成熟的btrfs,其本身也非常不成熟。
lustre:Oracle公司的企業級產品,非常龐大,對內核和ext3深度依賴
NFS:老牌網路文件系統,具體不了解,反正NFS最近幾年沒發展,肯定不能用。
鑒於fastDFS是國人開發,也有國內的一些大公司在使用,so…

普通的文件架構其實一兩年內也是沒有問題的,但有句話叫未雨綢繆,於是決定折騰折騰。
源碼下載:
尋求幫助:

一、安裝libevent
fastDFS需要安裝libevent比較新的版本,將本機的比較低的版本卸載了。

rpm -qa libevent
libevent-1.4.13-1.el6.x86_64
rpm -e --nodeps libevent
安裝一個最新穩定版

wget
tar zxvf libevent-2.0.18-stable.tar.gz
cd libevent-2.0.18-stable
./configure
make && make install
為libevent創建軟鏈接到/lib庫下,64位系統對應/lib64

ln -s /usr/local/lib/libevent* /lib/
ln -s /usr/local/lib/libevent* /lib64/
二、安裝FastDFS

wget
tar zxvf FastDFS_v3.06.tar.gz
cd FastDFS
./make.sh
./make.sh install
三、配置FastDFS
環境:
tracker server
192.168.1.5
storage server
192.168.1.51
192.168.1.52

1、配置並啟動 tracker server
①配置 tracker.conf

mkdir /data/fastdfs
vim /etc/fdfs/tracker.conf
base_path=/data/fastdfs
②啟動 tracker

/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
③開機啟動

vim /etc/rc.local
/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
2、配置並啟動 storage server
①配置 tracker.conf

mkdir /data/fastdfs
mkdir /data/images
vim /etc/fdfs/storage.conf
base_path=/data/fastdfs
store_path0=/data/images
tracker_server=192.168.1.5:22122
②啟動 tracker

/usr/local/bin/fdfs_storage /etc/fdfs/storage.conf
③開機啟動

vim /etc/rc.local
/usr/local/bin/fdfs_storage /etc/fdfs/storage.conf
3、為storage節點安裝fastdfs-nginx-mole模塊
①安裝模塊
安裝Nginx詳見:
需重新編譯Nginx

wget
tar zxvf fastdfs-nginx-mole_v1.10.tar.gz
wget
tar zxvf nginx-1.2.0.tar.gz
cd nginx-1.2.0
./configure --prefix=/usr/local/nginx --add-mole=../fastdfs-nginx-mole/src
make && make install
cd ..
②配置
編輯nginx.conf

vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name localhost;

location /M00 {
alias /data/images/data;
ngx_fastdfs_mole;
}
......
}
給 storage 的存儲目錄做一個軟連接

ln -s /data/images/data/ /data/images/data/M00
拷貝mod_fastdfs.conf 到 /etc/fdfs/

cp fastdfs-nginx-mole/src/mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
base_path=/data/fastdfs
tracker_server=192.168.1.5:22122
store_path0=/data/images
啟動nginx

/usr/local/nginx/sbin/nginx
四、使用FastDFS
1、上傳文件
FastDFS安裝包中,自帶了客戶端程序,通過程序可以進行文件上傳。在使用這個客戶端程序之前,首先需要配置client.conf,然後再進行文件上傳及下載。
在tracker上修改客戶端配置文件client.conf

vim /etc/fdfs/client.conf
base_path=/data/fastdfs
tracker_server=192.168.1.5:22122
vim a.html
This Is FastDFS Test.
上傳文件

/usr/local/bin/fdfs_test /etc/fdfs/client.conf upload a.html
This is FastDFS client test program v3.06

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General
Public License V3, which may be found in the FastDFS source kit.
Please visit the FastDFS Home Page /
for more detail.

[2012-04-29 12:42:53] INFO - base_path=/data/tracker, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0

tracker_query_storage_store_list_without_group:
server 1. group_name=group1, ip_addr=192.168.1.51, port=23000
server 2. group_name=group1, ip_addr=192.168.1.52, port=23000

group_name=group1, ip_addr=192.168.1.51, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/wKgBM0-cxs32qFyYAAAADigvbpc90.html
source ip address: 192.168.1.51
file timestamp=2012-04-29 12:42:53
file size=14
file crc32=674197143
file url:
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/wKgBM0-cxs32qFyYAAAADigvbpc90_big.html
source ip address: 192.168.1.51
file timestamp=2012-04-29 12:42:53
file size=14
file crc32=674197143
file url:
上傳成功
試試用

訪問看看吧。

看了幾天了,還是有些地方不是很明白,暫時擱置,不能再浪費時間了。

『伍』 libevent源碼分析的主函數在哪個頭文件

ibevent 的源代碼雖然都在一層文件夾下面,但是其代碼分類還是相當清晰的,主要可分為頭文件、內部使用的頭文件、輔助功能函數、日誌、libevent框架、對系統 I/O多路復

『陸』 libevent 支持udp嗎

1、下載libevent源碼。
2、用VC編譯,一般編譯成靜態的。
3、在項目中配置libevent庫。
4、引用。 你可以按著以上步驟來。應該沒問題。

『柒』 libevent和nginx哪個源碼

Libevent入門 Libevent英文入門資料<<Fast portable non-blocking network programming with Libevent>>。 網友翻譯上面的資料,製作的《Libevent參考手冊》 上面的兩個資料主要是讓我們熟悉Libevent的使用。 Libevent源碼分析 源碼分析工具,我推薦source insight 或者 Scientific Toolworks Understand,source insight很多年沒有更新了,使用下來還是Understand方便。 開始分析源碼肯定比較痛苦,尤其是對新手,因為不知道從哪裡開始,所以可以考慮參考《Libevent源碼深度剖析》,在前人的基礎之上慢慢擴展,這樣可以事倍功半。
很明確的告訴你:VC中可以用libevent庫。
方法:
1、下載libevent源碼。
2、用VC編譯,一般編譯成靜態的。
3、在項目中配置libevent庫。
4、引用。
你可以按著以上步驟來。應該沒問題。

『捌』 apache httpd 支持文件上傳么

1、第一步安裝php相關環境,包括php cli,workerman運行在php cli下,如果已經安裝好php環境則不用安裝;php-process(一般centos系統下需要安裝)為進程式控制制相關擴展,包括posix和pcntl;git是一款免費、開源的分布式版本控制系統,用於下載或者更新workerman源代碼(如果手動下載zip文件則可以不用安裝git,並跳過安裝步驟中的第4步);gcc、php-devel、php-pear、libevent-devel用於安裝php的libevent擴展,如果不想安裝libevent則可以省略並跳過安裝步驟中的第2和第3步;
2、第二步和第三步通過pecl安裝libevent擴展,並配置擴展的ini文件(安裝libevent擴展不是必須的,libevent擴展可以讓php使用更高級的事件庫,在並發量很高時發揮作用,如果並發量比較低,例如5000並發,可以不用安裝)
3、第四步是通過git下載workerman的應用程序,這里默認下載的是workerman的Demo程序,如果下載workerman的其他應用程序可以修改地址,例如下載workerman-chat則命令為git clone https://github.com/walkor/workerman-chat。如果手動下載過了想要的workerman應用程序,則此步驟可以省略。

『玖』 workerman運行環境的libevent怎麼安裝

centos系統安裝教程(適用於php環境是yum install安裝的情況)
1、命令行運行yum install php-devel php-pear libevent-devel
2、命令行運行pecl install channel://pecl.php.net/libevent-0.1.0
3、命令行運行echo extension=libevent.so > /etc/php.d/libevent.ini

debian/ubuntu系統安裝教程(適用於php環境是get-get install安裝的情況)
1、命令行運行 apt-get install php-pear php5-dev libevent-dev
2、命令行運行pecl install channel://pecl.php.net/libevent-0.1.0
3、命令行運行echo extension=libevent.so > /etc/php5/cli/conf.d/libevent.ini

編譯安裝
命令行運行
APT-GET:apt-get install php-pear php5-dev libevent-dev
YUM:yum install php-devel php-pear libevent-devel
從http://pecl.php.net/package/libevent 下載源碼解壓到你的php源碼ext目錄下,進到ext/libevent-x.x.x目錄,依次執行下面命令
① phpize
② ./configure
③ make
④ make install
⑤ 把so文件加入到php.ini去(如果不知到php.ini在哪裡,可以通過命令 php --ini 查找到)

熱點內容
腳本整理 發布:2024-10-07 10:20:48 瀏覽:233
圖片上傳功能java 發布:2024-10-07 10:14:18 瀏覽:128
rc4c語言實現 發布:2024-10-07 10:08:34 瀏覽:407
為什麼steam每天登錄都要輸密碼 發布:2024-10-07 10:08:33 瀏覽:436
電腦軟體連接不到伺服器怎麼解決 發布:2024-10-07 10:04:07 瀏覽:923
pubg如何換伺服器圖解 發布:2024-10-07 10:04:06 瀏覽:320
androidstudio異常 發布:2024-10-07 09:50:48 瀏覽:471
視頻緩存轉mp4 發布:2024-10-07 09:35:37 瀏覽:27
Java的腳本語言有哪些 發布:2024-10-07 09:27:43 瀏覽:876
如何使用香港伺服器 發布:2024-10-07 09:01:37 瀏覽:916