摘要:打算開始學(xué)習(xí)了原來好像弄過環(huán)境搭建不過那次只是接觸了一下并未太過深入這次重新來過雖然能在上搭建不過我覺得意義不大需要安裝這和在上有什么區(qū)別呢剛好現(xiàn)在手上有一臺(tái)空閑的樹莓派試試在上面搭建編譯之所以要編譯安裝是因?yàn)樵诰幾g的時(shí)候需要用到安裝的時(shí)
打算開始學(xué)習(xí)swoole了(原來好像弄過:swoole環(huán)境搭建),不過那次只是接觸了一下,并未太過深入,這次重新來過 (°ー°〃)編譯php
swoole雖然能在windows上搭建,不過我覺得意義不大....需要安裝CygWin這和在linux上有什么區(qū)別呢┑( ̄Д  ̄)┍,剛好現(xiàn)在手上有一臺(tái)空閑的樹莓派zero,試試在上面搭建
之所以要編譯安裝是因?yàn)樵趕woole編譯的時(shí)候需要用到phpize,apt-get安裝的時(shí)候沒發(fā)現(xiàn)有
現(xiàn)在這個(gè)上面什么東西都沒有,先安裝php,我選最新的php7.2.6,zero配置是真的好低....解壓和編譯cpu都100%了很慢....趁這個(gè)時(shí)間去干點(diǎn)別的吧
下載,解壓源碼,安裝依賴
強(qiáng)烈建議使用國(guó)內(nèi)鏡像....不然可能一些依賴lib按照失敗,導(dǎo)致編譯錯(cuò)誤
sudo -i wget http://hk1.php.net/get/php-7.2.6.tar.gz/from/this/mirror mv mirro php.tar.gz tar -zxvf php.tar.gz apt-get update apt-get install libxml2* libbz2-dev libjpeg-dev libmcrypt-dev libssl-dev openssl libxslt1-dev libxslt1.1 libcurl4-gnutls-dev libpq-dev build-essential git make
編譯配置,復(fù)制的網(wǎng)上的lnmp編譯- -...去掉了和Nginx有關(guān)的編譯項(xiàng),我只需要編譯出php就行,不需要Nginx那些環(huán)境,當(dāng)然如果你之前已經(jīng)有了這些,這一部分就可以跳過了
cd php-7.2.6 ./configure --prefix=/usr/local/php --exec-prefix=/usr/local/php --bindir=/usr/local/php/bin --sbindir=/usr/local/php/sbin --includedir=/usr/local/php/include --libdir=/usr/local/php/lib/php --mandir=/usr/local/php/php/man --with-config-file-path=/usr/local/php/etc --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mcrypt=/usr/include --with-mhash --with-openssl --with-mysql=shared,mysqlnd --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-freetype-dir --enable-opcache --enable-redis --enable-fpm --enable-fastcgi --disable-fileinfo
CPU 100% 有點(diǎn)怕,樹莓派zero性能確實(shí)是弱...編譯好慢....解決了編譯配置的問題后就開始編譯,我是真的睡了一覺(第二天)才起來make install
make && make install
設(shè)置一下php.ini文件
cp php.ini-production /usr/local/php/etc/php.ini //我輸入php -v之后發(fā)現(xiàn)沒反應(yīng),但是php確實(shí)是成功了,在/usr/local/php/bin里面./php -v也有反應(yīng),想到可能是沒有鏈接到/usr/bin 目錄里,用ln命令鏈接一下 ln -s /usr/local/php/bin/php /usr/bin/php //鏈接phpize ln -s /usr/local/php/bin/phpize /usr/bin/phpize
成功之后,老套路
php -v
成功,終于可以下一步了,進(jìn)入swoole編譯配置
從git上下載源碼https://github.com/swoole/swoole-src/releases,開始編譯
wget https://github.com/swoole/swoole-src/archive/v4.0.0.zip unzip v4.0.0.zip mv swoole-src-4.0.0/ swoole cd swoole phpize
這里我提示了一個(gè)錯(cuò)誤...
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
解決辦法:
apt-get install m4 autoconf
phpize成功之后繼續(xù)運(yùn)行編譯配置和開始編譯(但愿這次不用那么久了...)
開啟一些需要的:編譯配置項(xiàng)
./configure --with-php-config=/usr/local/php/bin/php-config --enable-sockets --enable-swoole-debug --enable-openssl --enable-mysqlnd --enable-coroutine make && make install
然后需要在php.ini中配置下
vi /usr/local/php/etc/php.ini //添加 extension=swoole.so
然后php -m
有這一項(xiàng)就代表成啦~
安裝編譯都完成之后,當(dāng)然來試試是不是真的能用了
復(fù)制官方的例子,嘿嘿嘿~
on("open", function ($ws, $request) { var_dump($request->fd, $request->get, $request->server); $ws->push($request->fd, "hello, welcome "); }); //監(jiān)聽WebSocket消息事件 $ws->on("message", function ($ws, $frame) { echo "Message: {$frame->data} "; $ws->push($frame->fd, "server: {$frame->data}"); }); //監(jiān)聽WebSocket連接關(guān)閉事件 $ws->on("close", function ($ws, $fd) { echo "client-{$fd} is closed "; }); $ws->start();
php swoole.php
web:
成了~
歷時(shí)一天,終于搞定了 編譯真的是漫長(zhǎng)的過程=_=
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/28891.html
摘要:安裝命令環(huán)境下必須關(guān)閉選項(xiàng)需要修改關(guān)閉在下開發(fā)可以使用來方便的開發(fā)應(yīng)用,安裝好后再里的選項(xiàng)里共享代碼所在磁盤。為源碼所在路徑為容器內(nèi)路徑在里執(zhí)行編譯安裝擴(kuò)展是按照標(biāo)準(zhǔn)擴(kuò)展構(gòu)建的。 環(huán)境依賴 僅支持 Linux、FreeBSD、MacOS 三種操作系統(tǒng) 在Windows平臺(tái),可使用CygWin或WSL(Windows Subsystem for Linux) Linux 內(nèi)核版本 2....
摘要:背景當(dāng)知道要上傳的視頻資料從條變成條時(shí),我就明白,絕對(duì)不能再人工處理了。 背景 當(dāng)知道要上傳的視頻資料從20條變成100條時(shí),我就明白,絕對(duì)不能再人工處理了。他們總是想當(dāng)然的認(rèn)為,錄入一條數(shù)據(jù)需要1分鐘,那錄入20條數(shù)據(jù)就是20分鐘,錄入100條數(shù)據(jù),不就是100分鐘嗎?我有時(shí)候,真的很想問問他們,沒有考慮過人是會(huì)犯錯(cuò)的嗎?數(shù)據(jù)越多,出錯(cuò)的可能就越大;但是數(shù)據(jù)本身,又是不允許出現(xiàn)紕漏的...
摘要:一交叉編譯概念什么是交叉編譯交叉編譯是在一個(gè)平臺(tái)上生成另一個(gè)平臺(tái)上的可執(zhí)行代碼。也要樹莓派有時(shí)又是因?yàn)槟康钠脚_(tái)還沒有建立,連操作系統(tǒng)都沒有,根本談不上運(yùn)行什么編譯器。 ...
閱讀 2486·2021-11-22 09:34
閱讀 3096·2021-10-25 09:43
閱讀 2017·2021-10-11 10:59
閱讀 3428·2021-09-22 15:13
閱讀 2363·2021-09-04 16:40
閱讀 448·2019-08-30 15:53
閱讀 3225·2019-08-30 11:13
閱讀 2634·2019-08-29 17:30