編譯php擴展swoole報錯,php用swoole

本文目錄一覽:

windows sever2016怎麼安裝swoole

1.1、打開下載好的cygwin安裝包,開始安裝cygwin。

1.1.1、一直下一步,下一步到選擇cygwin的安裝目錄(這個同時也會是swoole的安裝目錄):

1.1.2、選擇文件包下載的存放位置:

1.1.3、選擇(所要連接的)服務器(用於後續下載文件):

此處需要選擇一個服務器,之後就是從該服務器下載對應的安裝所需的模塊文件了。

因此,此處如果選擇的服務器不合適的話,儘管你的網絡本身速度很快,但是此處下載速度很慢。

所以,此處需要選擇一個速度比較快的服務器。

對於國內來說,連接很多國外的服務器,速度一般都很慢。

不過,目前已經的,口碑較好的,速度較快的服務器,是近幾年剛出現的163的服務器。

所以,此處對於多數人,最好的選擇就是選擇163的服務器。

此處,我這裡,由圖可見,已經默認選擇好了163的服務器,所以不需要額外設置了。

如果你的選擇其他的服務器,而且服務器列表中也找不到163的話,那麼可以自己手動添加:

在Use URL處,輸入:

1.1.4、選擇安裝的軟件包,這裡需要安裝gcc、php、php開發工具、autoconf、pcre-devel,其它默認,這裡注意的是,在上方的搜索欄搜索後,在下邊找到對應的軟件包選中,點擊下一步按鈕開始安裝。(注意:下方的截圖是我安裝後界面,點擊的位置一樣,後邊的圖標可能不一樣哦)

1.1.5、然後就是下一步下一步直到Cygwin安裝完成。

2、安裝swoole

2.1、解壓swoole的源程序到Cygwin的項目根目錄(如:/home/project)。

可以直接把壓縮包放到/home/project目錄下,右鍵解壓,也可以用命令執行,隨你。圖方便,這裡我直接使用右鍵方式解壓。(命令解壓:tar -zcvf file swoole-src-1.8.11-rc1.tar.gz)

2.2、打開Cygwin軟件(注意:要是你的Cygwin也安裝在C盤,那你得注意了,安裝swoole的時候有可能報錯,解決辦法是右鍵管理員身份打開Cygwin)。

2.3、此時的環境就好似linux的終端,而根目錄就是Cygwin的安裝目錄,在界面輸入命令:cd /home/project/swoole,其中swoole是解壓的源程序。

2.4、輸入命令:phpize,生成編譯的配置文件configure。

2.5、輸入命令:./configure make make install

配置、編譯、編譯安裝swoole

(PS:執行./configure,除了編譯配置,還會檢測環境等等)

2.6、使用命令: php -i | grep php.ini,找到php cli使用的配置文件php.ini的路徑。

2.7、修改php.ini文件,在文件中添加一行:extension=swoole.so。

(PS: 1. 如果對linux下的vi編輯器不熟悉,可以在Windows下打開php.ini文件;2. 因為swoole已經改變了php的編程方式,所以建議關閉配置文件中的除swoole擴展之外的其它所有擴展,方法是在其前面加上「;」英文分號)。

2.7.1、linux下的vi編輯器。

2.7.2、手動打開修改。

2.8、關閉退出。

2.9、使用命令:php -m,查看加載的模塊,如果看到swoole,則擴展添加成功,到此環境搭建成功!

環境測試

1、在源程序中有一個examples文件夾,裡邊是一些範例程序,我們這裡以運行一個http服務器做示範,進入到http範例程序目錄,在Cygwin中輸入命令:php server.php,因為http服務器的範例程序是放在http目錄中的,用命令運行這個範例程序

2、打開瀏覽器,在地址欄輸入:127.0.0.1:9501,回車顯示Hello swoole,成功!

總結分析

1、此方法雖然可以在Windows下成功搭建swoole,但是php版本最高也就5.4,對於項目php版本需求高於5.4的就沒法使用了。這裡是不是可以對其php版本升級呢?本人還沒有嘗試過,待後續…。如果有哪位大神成功升級,望留言說明方法以及提供建議,以此使我以及大眾少走彎路,不勝感激。

2、搭建成功後會生成自己的一個類似PphStudy環境的「IBOS控制中心」,運行swoole的時候得用這個環境運行,不需要再安裝別的php環境。

3、生成很多自帶無用的表,看着不太舒服。數據庫表也不好操作,本人還是習慣用navicat。

php代碼在WSL系統上運行swoole 擴展.還需要安裝搭建服務器嗎?

swoole擴展是PHP擴展。php swoole擴展,PHP語言的高性能網絡通信框架,提供了PHP語言的異步多線程服務器,異步TCP/UDP網絡客戶端,異步MySQL,數據庫連接池,AsyncTask,消息隊列,毫e799bee5baa6e58685e5aeb931333363383433秒定時器,異步文件讀寫,異步DNS查詢。

1、下載swoole源碼包

[root@nginx ~]# wget

2、解壓進入swoole文件夾

[root@nginx ~]# tar -zxvf swoole-1.7.17-stable

[root@nginx ~]# cd swoole-src-swoole-1.7.17-stable/

3、編譯安裝swoole

[root@nginx swoole-src-swoole-1.7.17-stable]# phpize

[root@nginx swoole-src-swoole-1.7.17-stable]# ./configure

[root@nginx swoole-src-swoole-1.7.17-stable]# make make install

4、php.ini配置文件加載swoole.so模塊

[root@nginx swoole-src-swoole-1.7.17-stable]# vi /usr/local/php/lib/php.ini

注意 php命令行運行和瀏覽器運行的配置文件不一樣。

php 命令行的配置:

[root@nginx swoole-src-swoole-1.7.17-stable]# php –ini

Configuration File (php.ini) Path: /usr/local/lib

Loaded Configuration File: /usr/local/lib/php.ini//配置文件

Scan for additional .ini files in: (none)

Additional .ini files parsed: (none)

5、查看swoole模塊是否已經安裝成功

[root@nginx swoole-src-swoole-1.7.17-stable]# php -m

6、編寫服務端httpServer.php文件並運行

$serv = new swoole_server(“127.0.0.1”, 9501);

$serv-on(‘connect’, function ($serv, $fd){

echo “Client:Connect.\n”;

});

$serv-on(‘receive’, function ($serv, $fd, $from_id, $data) {

$serv-send($fd, ‘Swoole: ‘.$data);

});

$serv-on(‘close’, function ($serv, $fd) {

echo “Client: Close.\n”;

});

$serv-start();

運行httpServer.php

[root@nginx swoole-src-swoole-1.7.17-stable]# php httpServer.php

7、用telnet測試

[root@nginx ~]# telnet 127.0.0.1 9501

Trying 127.0.0.1…

Connected to 127.0.0.1.

Escape character is ‘^]’.

hello 客戶端

Swoole: hello 服務端

很多人問為什麼swoole不支持php

swoole最好是運行在linux下,windows會發生這樣那樣的事,並且,請配置好,在phpinfo()中可以看到swoole擴展,才算開啟

在 swoole 裏面 swoole\coroutine\redis 沒有發現怎麼回事

先啟動redis_client-connect,然後再調用swoole_server時報錯:

PHP Fatal error: swoole_server::__construct(): eventLoop has been created. Unable to create swoole_server

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/197679.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-03 20:05
下一篇 2024-12-03 20:05

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Python運行不報錯又無任何結果輸出可能產生的原因以及解決方法

    在Python編程過程中,有時候會出現程序運行不報錯但卻沒有任何結果輸出的情況。本文將從多個方面解析這個問題,並提供相應的解決方法。 一、語法錯誤 語法錯誤是Python程序中最常…

    編程 2025-04-29
  • Java 監控接口返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控接口返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • Python切片索引越界是否會報錯

    解答:當對一個字符串、列表、元組進行切片時,如果索引越界會返回空序列,不會報錯。 一、切片索引的概念 切片是指對序列進行操作,從其中一段截取一個新序列。序列可以是字符串、列表、元組…

    編程 2025-04-29
  • 如何解決Grid監控報錯prvg-1205

    Grid監控是Oracle RAC的重要組件,它可以幫助監視RAC集群的運行狀態和性能,對於集群管理非常關鍵。但是,如果在安裝過程中遇到報錯prvg-1205,將會導致安裝失敗,影…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • 如何解決Docker+k8s報錯413 Request Entity Too Large

    對於使用Docker容器和Kubernetes集群的開發人員,在處理HTTP請求時,常常會遇到413 Request Entity Too Large的報錯。這通常是由於請求的大小…

    編程 2025-04-27

發表回復

登錄後才能評論