1、先進入php解壓縮後的源碼包中,找到要安裝的擴展模塊的目錄。
[root@redhat5 sockets]# cd /home/soft/php-5.2.12/ext/sockets
在sockets目錄下面以絕對路徑運行phpize程序,這時會自動生成sockets的configure程序,在sockets目錄下面可以看到。
[root@redhat5 sockets]# /home/webserver/php5.2.12/bin/phpize
2、進行編譯安裝
[root@redhat5 sockets]# ./configure --with-php-config=/home/webserver/php5.2.12/bin/php-config
[root@redhat5 sockets]#make
[root@redhat5 sockets]#make install
執行完make install屏幕上會提示sockets.so存放的路徑,然後把它復制到php的extensions目錄中,例如我的路徑為 /home/webserver/php5.2.12/lib/php/extensions
3、修改php.ini文件
找到extension_dir = "./" 這行,修改為:
extension_dir = "/home/webserver/php5.2.12/lib/php/extensions/"
然後再新增加一行:
extension=sockets.so
4、重啟apache即可生效。
❷ php常用擴展有哪些
這個是php擴展庫支持。
在php.ini裡面可以看到952行。
extension=php_rar.dll
;extension=php_bz2.dll
extension=php_curl.dll
;extension=php_dba.dll
;extension=php_exif.dll
;extension=php_fileinfo.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_ming.dll
;extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_oci8_11g.dll
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll
extension= php_memcache.dll
每一行前面分號去掉的表示開啟擴展庫的。
有些擴展庫是安裝的時候默認開啟的,有些需要手動開啟。
還有一些擴展庫需要自己去下載庫文件(要對應相應的版本)
下載的庫文件放在php安裝根目錄下面的ext目錄下面。當然這個目錄也是可以自己配置的。
❸ linux下安裝php sockets擴展,make時出錯,有沒有大神幫忙看看
在編譯PHP時加--enable-sockets參數來啟用。編譯前用apt-get build-dep php5來解決信賴問題。
./configure --enable-opcache --enable-sockets --prefix=/opt/php --with-apxs2=/usr/bin/apxs2 --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pgsql=/usr --with-tidy=/usr --with-curl=/usr/bin --with-openssl-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-pdo-pgsql=/usr --with-pdo-mysql=mysqlnd --with-xsl=/usr --with-ldap --with-xmlrpc --with-iconv-dir=/usr --with-snmp=/usr --enable-exif --enable-calendar --with-bz2=/usr --with-mcrypt=/usr --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr --enable-mbstring --enable-zip --with-pear --with-libdir=/lib/x86_64-linux-gnu --with-config-file-path=/opt
❹ 如何在linux上添加PHP的socket擴展
增大Linux的socket最大連接數
最近接的項目是模擬多個socket 客戶端與伺服器進行通信。由於Linux 系統的限制,在linux/include/linux/posix_types.h文件中有如下的宏定義:
#undef __FD_SETSIZE
#define __FD_SETSIZE 1024
這個宏是對最大文件描述符的定義為1024。當需要1024個以上的fd時,例如select()函數就會偵聽出錯。因此需要將1024改成需要的數目,但最多不能超過65535。但僅僅修改這個是不夠的。
第二步就需要修改一個進程最大打開的文件數。其具體步驟是:
1、cd /usr/src/linux-2.4/include/linux
2、vi limits.h編輯文件:
#define NR_OPEN 90240 原值為1024
#define OPEN_MAX 10240 原值為1024
3、vi fs.h
#define INR_OPEN 10240 原值為1024
#define NR_FILE 65536 原值為8192,這個值為內存64/1M的比率計算,1G內存計算為:64*1024
#define NR_RESERVED_FILES 128 原值為10.
4、cd /usr/src/linux-2.4/include/net
5、vi tcp.h
#define TCP_LHTABLE_SIZE 128 原值為32.便於listen偵聽隊列,設大。
設置最大打開文件數與內存相關,太大系統會變慢。
第三步就是編譯內核,其具體步驟是:
1. make clean
2. make
3. make dep
4. make bzImage
將bzImage 導入/boot 重啟系統即可!
用1024個以上客戶端與伺服器進行連接,在伺服器的終端用netstat |wc 命令可以統計出當前建立的socket的連接數。
❺ 如何在linux上添加PHP的socket擴展
./configure配置方法:./configure --prefix=/usr/local/php --with-php-config=/usr/local/php/bin/php-config --enable-sockets
配置一下php.ini:
extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/sockets.so"
/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/sockets.so這行表示你的sockers.so的位置,如果你的環境變數已經設置好,那麼可以直接:
extensions="sockers.so"
就行了。
執行php.info();就可以查看是否添加了socket支持。
❻ 有人能簡單說說php中的擴展模塊作用嗎
我剛開始的時候和樓下的想法一樣,覺得這種一網路一大堆的東西幹嘛要提問。
結果我真網路的時候才發現網路原來真的不好找到。
不過,最後還是找到了。下面的表格就是擴展庫所有擴展的說明和註解和解釋。
-------------------------------------------華麗分割線------------------------------------------
擴展庫 說明 註解
php_bz2.dll bzip2 壓縮函數庫 無
php_calendar.dll 歷法轉換函數庫 自 PHP 4.0.3 起內置
php_cpdf.dll ClibPDF 函數庫 無
php_crack.dll 密碼破解函數庫 無
php_ctype.dll ctype 家族函數庫 自 PHP 4.3.0 起內置
php_curl.dll CURL,客戶端 URL 庫函數庫 需要:libeay32.dll,ssleay32.dll(已附帶)
php_cybercash.dll 網路現金支付函數庫 PHP <= 4.2.0
php_db.dll DBM 函數庫 已廢棄。用 DBA 替代之(php_dba.dll)
php_dba.dll DBA:資料庫(dbm 風格)抽象層函數庫 無
php_dbase.dll dBase 函數庫 無
php_dbx.dll dbx 函數庫
php_domxml.dll DOM XML 函數庫 PHP <= 4.2.0 需要:libxml2.dll(已附帶),PHP >= 4.3.0 需要:iconv.dll(已附帶)
php_dotnet.dll .NET 函數庫 PHP <= 4.1.1
php_exif.dll EXIF 函數庫 需要 php_mbstring.dll。並且在 php.ini 中,php_exif.dll 必須在 php_mbstring.dll之後載入。
php_fbsql.dll FrontBase 函數庫 PHP <= 4.2.0
php_fdf.dll FDF:表單數據格式化函數庫 需要:fdftk.dll(已附帶)
php_filepro.dll filePro 函數庫 只讀訪問
php_ftp.dll FTP 函數庫 自 PHP 4.0.3 起內置
php_gd.dll GD 庫圖像函數庫 在 PHP 4.3.2 中刪除。此外注意在 GD1 中不能用真彩色函數,用 php_gd2.dll 替代。
php_gd2.dll GD 庫圖像函數庫 GD2
php_gettext.dll Gettext 函數庫 PHP <= 4.2.0 需要 gnu_gettext.dll(已附帶),PHP >= 4.2.3 需要 libintl-1.dll,iconv.dll(已附帶)。
php_hyperwave.dll HyperWave 函數庫 無
php_iconv.dll ICONV 字元集轉換 需要:iconv-1.3.dll(已附帶),PHP >=4.2.1 需要 iconv.dll
php_ifx.dll Informix 函數庫 需要:Informix 庫
php_iisfunc.dll IIS 管理函數庫 無
php_imap.dll IMAP,POP3 和 NNTP 函數庫 無
php_ingres.dll Ingres II 函數庫 需要:Ingres II 庫
php_interbase.dll InterBase functions 需要:gds32.dll(已附帶)
php_java.dll Java 函數庫 PHP <= 4.0.6 需要:jvm.dll(已附帶)
php_ldap.dll LDAP 函數庫 PHP <= 4.2.0 需要 libsasl.dll(已附帶),PHP >= 4.3.0 需要 libeay32.dll,ssleay32.dll(已附帶)
php_mbstring.dll 多位元組字元串函數庫 無
php_mcrypt.dll Mcrypt 加密函數庫 需要:libmcrypt.dll
php_mhash.dll Mhash 函數庫 PHP >= 4.3.0 需要:libmhash.dll(已附帶)
php_mime_magic.dll Mimetype 函數庫 需要:magic.mime(已附帶)
php_ming.dll Ming 函數庫(Flash) 無
php_msql.dll mSQL 函數庫 需要:msql.dll(已附帶)
php_mssql.dll MSSQL 函數庫 需要:ntwdblib.dll(已附帶)
php_mysql.dll MySQL 函數庫 PHP >= 5.0.0 需要 libmysql.dll(已附帶)
php_mysqli.dll MySQLi 函數庫 PHP >= 5.0.0 需要 libmysql.dll(PHP <= 5.0.2 中是 libmysqli.dll)(已附帶)
php_oci8.dll Oracle 8 函數庫 需要:Oracle 8.1+ 客戶端庫
php_openssl.dll OpenSSL 函數庫 需要:libeay32.dll(已附帶)
php_oracle.dll Oracle 函數庫 需要:Oracle 7 客戶端庫
php_overload.dll 對象重載函數庫 自 PHP 4.3.0 起內置
php_pdf.dll PDF 函數庫 無
php_pgsql.dll PostgreSQL 函數庫 無
php_printer.dll 列印機函數庫 無
php_shmop.dll 共享內存函數庫 無
php_snmp.dll SNMP 函數庫 僅用於 Windows NT!
php_soap.dll SOAP 函數庫 PHP >= 5.0.0
php_sockets.dll Socket 函數庫 無
php_sybase_ct.dll Sybase 函數庫 需要:Sybase 客戶端庫
php_tidy.dll Tidy 函數庫 PHP >= 5.0.0
php_tokenizer.dll Tokenizer 函數庫 自 PHP 4.3.0 起內置
php_w32api.dll W32api 函數庫 無
php_xmlrpc.dll XML-RPC 函數庫 PHP >= 4.2.1 需要 iconv.dll(已附帶)
php_xslt.dll XSLT 函數庫 PHP <= 4.2.0 需要 sablot.dll,expat.dll(已附帶)。PHP >= 4.2.1 需要 sablot.dll,expat.dll,iconv.dll(已附帶)。
php_yaz.dll YAZ 函數庫 需要:yaz.dll(已附帶)
php_zip.dll Zip 文件函數庫 只讀訪問
php_zlib.dll ZLib 壓縮函數庫 自 PHP 4.3.0 起內置
❼ php怎麼打開socket擴展
下個相同版本的php源碼,進行編譯安裝,再按照上面步驟搞,生成的so。到rpm裝的那個,修改php.ini進行擴展就行了,或者到網上找相同版本,相同系統 的編譯好的so文件。
在linux下給PHP安裝socket擴展,參考方法如下:
#cd /home/php/ext/sockets
#/server/php/bin/phpize
#./configure --prefix=/usr/local/php/lib --with-php-config=/server/php/bin/php-config --enable-sockets
#make
#make install
再修改/usr/local/php/etc/php.ini文件
#extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/" (php5.4版本以上不用加擴展路徑)
extension=sockets.so
重啟apache或者nginx等進程,完成。
❽ 求助php Call to undefined function socket
1找到php.ini,看 extension=php_gd2.dll 和 extension=php_sockets.dll 擴展是否打開;
2. 看phpInfo()顯示的內容里,socket模塊是否為enable; 如果你還不明白的話,你可以在後盾人看看教材視頻,多看看幾遍,慢慢的不就會了,如果嫌棄麻煩,你可以直接去後盾網問問那些專家講師,他們很樂意幫你的,希望能幫到你,給個採納吧謝謝,(´◑д◐`)
❾ php中關於socket的系列函數總結
本文列舉了所有關於PHP語言中使用socket相關服務的一些函數。注意使用如下函數之前,你需要確保你的socket已打開,如果你沒有打開,請編輯你的php.ini文件,去掉下面這行前面的注釋(分號):
代碼如下:
extension=php_sockets.dll
如果你無法去掉注釋,那麼請使用下面的代碼來載入擴展庫:
代碼如下:
if(!extension_loaded('sockets')){
if(strtoupper(substr(PHP_OS,3))=="WIN"){
dl('php_sockets.dll');
}else{
dl('sockets.so');
}
}
如果你不知道你的socket是否打開,那麼你可以使用phpinfo()函數來確定socket是否打開。你通過查看phpinfo信息了解socket是否打開。
php
socket
相關函數如下:
代碼如下:
socket_accept()
接受一個Socket連接
socket_bind()
把socket綁定在一個IP地址和埠上
socket_clear_error()
清除socket的錯誤或者最後的錯誤代碼
socket_close()
關閉一個socket資源
socket_connect()
開始一個socket連接
socket_create_listen()
在指定埠打開一個socket監聽
socket_create_pair()
產生一對沒有區別的socket到一個數組里
socket_create()
產生一個socket,相當於產生一個socket的數據結構
socket_get_option()
獲取socket選項
socket_getpeername()
獲取遠程類似主機的ip地址
socket_getsockname()
獲取本地socket的ip地址
socket_iovec_add()
添加一個新的向量到一個分散/聚合的數組
socket_iovec_alloc()
這個函數創建一個能夠發送接收讀寫的iovec數據結構
socket_iovec_delete()
刪除一個已經分配的iovec
socket_iovec_fetch()
返回指定的iovec資源的數據
socket_iovec_free()
釋放一個iovec資源
socket_iovec_set()
設置iovec的數據新值
socket_last_error()
獲取當前socket的最後錯誤代碼
socket_listen()
監聽由指定socket的所有連接
socket_read()
讀取指定長度的數據
socket_readv()
讀取從分散/聚合數組過來的數據
socket_recv()
從socket里結束數據到緩存
socket_recvfrom()
接受數據從指定的socket,如果沒有指定則默認當前socket
socket_recvmsg()
從iovec里接受消息
socket_select()
多路選擇
socket_send()
這個函數發送數據到已連接的socket
socket_sendmsg()
發送消息到socket
socket_sendto()
發送消息到指定地址的socket
socket_set_block()
在socket里設置為塊模式
socket_set_nonblock()
socket里設置為非塊模式
socket_set_option()
設置socket選項
socket_shutdown()
這個函數允許你關閉讀、寫、或者指定的socket
socket_strerror()
返回指定錯誤號的詳細錯誤
socket_write()
寫數據到socket緩存
socket_writev()
寫數據到分散/聚合數組
❿ 在伺服器配置PHP的時候需要開通幾個擴展,請問這幾個擴展對我的網站有何用
網路不誤導你 ,我也是網路的,擴展全開都行,不妨礙你用就是了,幹嘛非要這么細致的分析每個擴展的作用呢?給你一份快餐,要麼你吃了,要麼你不吃。你會分析其他的情況嗎?
擴展庫 說明 註解
php_bz2.dll bzip2 壓縮函數庫 無
php_calendar.dll 歷法轉換函數庫 自 PHP 4.0.3 起內置
php_cpdf.dll ClibPDF 函數庫 無
php_crack.dll 密碼破解函數庫 無
php_ctype.dll ctype 家族函數庫 自 PHP 4.3.0 起內置
php_curl.dll CURL,客戶端 URL 庫函數庫 需要:libeay32.dll,ssleay32.dll(已附帶)
php_cybercash.dll 網路現金支付函數庫 PHP <= 4.2.0
php_db.dll DBM 函數庫 已廢棄。用 DBA 替代之(php_dba.dll)
php_dba.dll DBA:資料庫(dbm 風格)抽象層函數庫 無
php_dbase.dll dBase 函數庫 無
php_dbx.dll dbx 函數庫
php_domxml.dll DOM XML 函數庫 PHP <= 4.2.0 需要:libxml2.dll(已附帶),PHP >= 4.3.0 需要:iconv.dll(已附帶)
php_dotnet.dll .NET 函數庫 PHP <= 4.1.1
php_exif.dll EXIF 函數庫 需要 php_mbstring.dll。並且在 php.ini 中,php_exif.dll 必須在 php_mbstring.dll之後載入。
php_fbsql.dll FrontBase 函數庫 PHP <= 4.2.0
php_fdf.dll FDF:表單數據格式化函數庫 需要:fdftk.dll(已附帶)
php_filepro.dll filePro 函數庫 只讀訪問
php_ftp.dll FTP 函數庫 自 PHP 4.0.3 起內置
php_gd.dll GD 庫圖像函數庫 在 PHP 4.3.2 中刪除。此外注意在 GD1 中不能用真彩色函數,用 php_gd2.dll 替代。
php_gd2.dll GD 庫圖像函數庫 GD2
php_gettext.dll Gettext 函數庫 PHP <= 4.2.0 需要 gnu_gettext.dll(已附帶),PHP >= 4.2.3 需要 libintl-1.dll,iconv.dll(已附帶)。
php_hyperwave.dll HyperWave 函數庫 無
php_iconv.dll ICONV 字元集轉換 需要:iconv-1.3.dll(已附帶),PHP >=4.2.1 需要 iconv.dll
php_ifx.dll Informix 函數庫 需要:Informix 庫
php_iisfunc.dll IIS 管理函數庫 無
php_imap.dll IMAP,POP3 和 NNTP 函數庫 無
php_ingres.dll Ingres II 函數庫 需要:Ingres II 庫
php_interbase.dll InterBase functions 需要:gds32.dll(已附帶)
php_java.dll Java 函數庫 PHP <= 4.0.6 需要:jvm.dll(已附帶)
php_ldap.dll LDAP 函數庫 PHP <= 4.2.0 需要 libsasl.dll(已附帶),PHP >= 4.3.0 需要 libeay32.dll,ssleay32.dll(已附帶)
php_mbstring.dll 多位元組字元串函數庫 無
php_mcrypt.dll Mcrypt 加密函數庫 需要:libmcrypt.dll
php_mhash.dll Mhash 函數庫 PHP >= 4.3.0 需要:libmhash.dll(已附帶)
php_mime_magic.dll Mimetype 函數庫 需要:magic.mime(已附帶)
php_ming.dll Ming 函數庫(Flash) 無
php_msql.dll mSQL 函數庫 需要:msql.dll(已附帶)
php_mssql.dll MSSQL 函數庫 需要:ntwdblib.dll(已附帶)
php_mysql.dll MySQL 函數庫 PHP >= 5.0.0 需要 libmysql.dll(已附帶)
php_mysqli.dll MySQLi 函數庫 PHP >= 5.0.0 需要 libmysql.dll(PHP <= 5.0.2 中是 libmysqli.dll)(已附帶)
php_oci8.dll Oracle 8 函數庫 需要:Oracle 8.1+ 客戶端庫
php_openssl.dll OpenSSL 函數庫 需要:libeay32.dll(已附帶)
php_oracle.dll Oracle 函數庫 需要:Oracle 7 客戶端庫
php_overload.dll 對象重載函數庫 自 PHP 4.3.0 起內置
php_pdf.dll PDF 函數庫 無
php_pgsql.dll PostgreSQL 函數庫 無
php_printer.dll 列印機函數庫 無
php_shmop.dll 共享內存函數庫 無
php_snmp.dll SNMP 函數庫 僅用於 Windows NT!
php_soap.dll SOAP 函數庫 PHP >= 5.0.0
php_sockets.dll Socket 函數庫 無
php_sybase_ct.dll Sybase 函數庫 需要:Sybase 客戶端庫
php_tidy.dll Tidy 函數庫 PHP >= 5.0.0
php_tokenizer.dll Tokenizer 函數庫 自 PHP 4.3.0 起內置
php_w32api.dll W32api 函數庫 無
php_xmlrpc.dll XML-RPC 函數庫 PHP >= 4.2.1 需要 iconv.dll(已附帶)
php_xslt.dll XSLT 函數庫 PHP <= 4.2.0 需要 sablot.dll,expat.dll(已附帶)。PHP >= 4.2.1 需要 sablot.dll,expat.dll,iconv.dll(已附帶)。
php_yaz.dll YAZ 函數庫 需要:yaz.dll(已附帶)
php_zip.dll Zip 文件函數庫 只讀訪問
php_zlib.dll ZLib 壓縮函數庫 自 PHP 4.3.0 起內置