日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php+swoole

發(fā)布時間:2024/9/20 php 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php+swoole 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

swoole官網(wǎng):www.swoole.com
Swoole:面向生產(chǎn)環(huán)境的?PHP?異步網(wǎng)絡通信引擎
?是PHP開發(fā)人員可以編寫高性能的異步并發(fā)?TCP,UDP,UnixSocket,HTTP,WebSocket服務。
?Swoole可以廣泛的應用于互聯(lián)網(wǎng),移動通信,企業(yè)軟件,云計算,網(wǎng)絡游戲,物聯(lián)網(wǎng)(IOT),車聯(lián)網(wǎng),智能家居等領(lǐng)域。使用PHP+Swoole作為網(wǎng)絡通信框架,可以使企業(yè)IT
?研發(fā)團隊的效率大大提升,更專注于開發(fā)創(chuàng)新產(chǎn)品。

如何學習swoole
??查看文檔
??實現(xiàn)swoole特性的功能點
??多看看其他現(xiàn)有的swoole案例代碼(github,開源中國)

必須要學的源碼安裝:
????PHP7的源碼安裝
??????從官網(wǎng)下下來的包?php-7.2.4.tar.bz2

yum?–y install bzip2ls
??????tar -xjvf php-7.2.4.tar.bz2
?????1.編譯部分:
??????里面的?./configure?是shell腳本用來編輯安裝的,需要工具gcc, autoconfig
??????yum install gcc gcc-c++ -y
??????yum install autoconf -y
yum?-y?install?libxml2

yum?-y?install?libxml2-devel

?

yum?-y?install?openssl

yum?-y?install?openssl-devel

yum?-y?install?curl

yum?-y?install?curl-devel

yum?-y?install?libjpeg

yum?-y?install?libjpeg-devel

yum?-y?install?libpng

yum?-y?install?libpng-devel

yum?-y?install?freetype

yum?-y?install?freetype-devel

yum?-y?install?pcre

yum?-y?install?pcre-devel

yum?-y?install?libxslt

yum?-y?install?libxslt-devel

yum?-y?install?bzip2

yum?-y?install?bzip2-devel

?

上面的安裝完成后執(zhí)行配置

./configure --prefix=/usr/local/php --with-curl --with-freetype-dir?--with-gd --with-gettext --with-iconv-dir?--with-kerberos --with-libdir=lib64 --with-libxml-dir?--with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir?--with-jpeg-dir?--with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip

  實際上這里的配置項比上述還多,可以使用?./configure --help?命令查看所有選項,這里注意在php7中--with-mysql原生支持已經(jīng)不存在了,操作都變成mysqli或者pdo了;以上這些選項在正常的php開發(fā)中完全夠用了,后期如果需要,可以選擇手動開啟相應的模塊

?

2.?構(gòu)建部分:
???????構(gòu)建命令:make
???????完成后檢測:make test ?。需要耗費一點時間
?????3.安裝
???????make install
???編輯當前用戶路徑環(huán)境變量:
??????vim ~/.bash_profile
??????里面exprot PATH后面加上:
????????alias php=/usr/local/php/bin/php
??????保存,然后
??????source ~/.bash_profile
??????后面用php執(zhí)行器就?php -v

php的默認安裝位置上面已經(jīng)指定為/usr/local/php,接下來配置相應的文件:

cp?php.ini-development /usr/local/php/lib/php.ini

cp?/usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

cp?sapi/fpm/php-fpm /usr/local/bin

然后設置php.ini,使用:?vim /usr/local/php/lib/php.ini?打開php配置文件找到cgi.fix_pathinfo配置項,這一項默認被注釋并且值為1,根據(jù)官方文檔的說明,這里為了當文件不存在時,阻止Nginx將請求發(fā)送到后端的PHP-FPM模塊,從而避免惡意腳本注入的攻擊,所以此項應該去掉注釋并設置為0

?

  設置完畢保存并退出

另外注意一個地方就是php.ini配置文件的位置可以在編譯前配置參數(shù)中設置,編譯參數(shù)可以寫成:--with-config-file-path=/usr/local/php 這樣的話php就回去指定的目錄下讀取php.ini配置文件,如果不加這個參數(shù)默認位置就是php安裝目錄下的lib目錄,具體也可以在phpinfo()輸出界面查看,如果php.ini放到其他位置,php讀取不到,那么所有的配置修改后都是不生效的,這點要注意

此時首先應該創(chuàng)建web用戶:(如果已經(jīng)做了這個就可以跳過,可以是?www)

groupadd www-data

useradd -g www-data www-data

  然后網(wǎng)上一些教程說讓修改php-fpm.conf添加以上創(chuàng)建的用戶和組,這時候使用?vim /usr/local/etc/php-fpm.conf?打開文件后找不到官方所提示的位置:

?

  默認情況下etc/php-fpm.d/下有一個名為www.conf.defalut的配置用戶的文件,執(zhí)行下面命令復制一個新文件并且打開:

cp?/usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf

vim /usr/local/etc/php-fpm.d/www.conf

默認user和group的設置為nobody,將其改為www-data,(這個按創(chuàng)建的用戶和用戶組改)

?

修改完成之后,保存并退出,然后執(zhí)行以下命令啟動php-fpm服務:

/usr/local/bin/php-fpm

  啟動完畢之后,php-fpm服務默認使用9000端口,使用?netstat -tln |?grep?9000?可以查看端口使用情況:

?

9000端口正常使用,說明php-fpm服務啟動成功

  然后執(zhí)行?vim /usr/local/nginx/nginx.conf?編輯nginx配置文件,具體路徑根據(jù)實際的nginx.conf配置文件位置編輯,下面主要修改nginx的server {}配置塊中的內(nèi)容,修改location塊,追加index.php讓nginx服務器默認支持index.php為首頁:

然后配置.php請求被傳送到后端的php-fpm模塊,默認情況下php配置塊是被注釋的,此時去掉注釋并修改為以下內(nèi)容:

?

這里面很多都是默認的,root是配置php程序放置的根目錄,主要修改的就是fastcgi_param中的/scripts為$document_root

  修改完上面的,回到nginx.conf第一行,默認是#user nobody; ?這里要去掉注釋改為user www-data;或者user www-data www-data;表示nginx服務器的權(quán)限為www-data(前面安裝nginx時就修改為了 user www www,這里可以跳過)

  修改完這些保存并退出,然后重啟nginx:

/usr/local/nginx/nginx -s stop/usr/local/nginx/nginx

  接下來編輯一個測試的php程序,在nginx下的html目錄下創(chuàng)建test.php文件,打印一下php配置:

<?php

????phpinfo();?>

//裝載地址?http://www.cnblogs.com/freeweb/p/5425554.html

?

?

下面是補充說明:
???安裝好的php里面是沒有php.ini文件的,但是編譯后的文件里面有,從編輯的文件中拷貝過去
??????cp php.ini-development /usr/local/php/etc/
??????mv php.ini-development ?php.ini

???如果改了php的配置但是沒有生效,請用
??????php -i |grep php.ini ?查看啟用的是哪里的配置文件
??????Configuration File (php.ini) Path => /usr/local/ php/lib
??????上面是默認放置位置,所以說要修改位置應該在編譯時指定位置?--
??????mv ./etc/php.ini ?./lib

下載安裝swoole:
??進入www.swoole.com點擊下載,然后會跳轉(zhuǎn)界面,選取克隆下載地址:https://gitee.com/swoole/swoole.git
??linux?上安裝git后:
??git clone https://gitee.com/swoole/swoole.git
??下載后是已經(jīng)解壓好的源碼
??源碼安裝,發(fā)現(xiàn)這里面沒有?configure,此時運行裝好的phpize
??執(zhí)行命令:/home/work/study/soft/php/bin/phpize
??這是再看,發(fā)現(xiàn)swoole下面有了?configure,還有一些其他改變

??./configure --with-php-config=/home/work/study/soft/php/bin/php-config
??然后?make
??然后?make install
?????出現(xiàn):Installing shared extensions: ????/home/work/study/soft/php/lib/php/extensions/no-debug-non-zts-20170718/
?????這個路徑說的是擴展的路徑。
?????進入后打印如下:[root@bogon no-debug-non-zts-20170718]# ll
?????????????total 9944
?????????????-rwxr-xr-x. 1 root root 3581556 Apr ?5 01:00 opcache.a
?????????????-rwxr-xr-x. 1 root root 1971952 Apr ?5 01:00 opcache.so
?????????????-rwxr-xr-x. 1 root root 4622688 Apr ?5 09:47 swoole.so
?????所以說最終的擴展是?.so?文件。
?????如果進入?/home/work....?要跳回之前的目錄用: cd -

在swoole源碼安裝包里面有?example,進入,這里面都是使用swoole的例子。
????cd server?。?打開?echo.php,查看
???直接?php echo.php
???????報錯,原因是擴展文件的加載還要看php.ini里面的?extension=
???在php.ini中加上?extension=swoole ,然后?php -m?就可以看到加載的模塊swoole了(這里說明一下,只有在指定的擴展目錄下面有相應的.so文件,并且php.ini里面添加了配置,php -m才能查看到該擴展)
???再次運行?php echo.php
???然后查看此端口:netstat -anp|grep 9501
?????得到結(jié)果:tcp ???????0 ?????0 0.0.0.0:9501 ???????????0.0.0.0:* ??????????????LISTEN ?????32898/php
???ctrl+c?取消掉運行程序后再次?netstat -anp|grep 9501 ??發(fā)現(xiàn)沒有了,消失了

查看端口號:
netstat -anp|grep 9501

telnet 127.0.0.1 9501

來源:https://blog.csdn.net/birdfish123/article/details/80538974

總結(jié)

以上是生活随笔為你收集整理的php+swoole的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。