资讯专栏INFORMATION COLUMN

树莓派配置swoole环境

骞讳护 / 839人阅读

摘要:打算开始学习了原来好像弄过环境搭建不过那次只是接触了一下并未太过深入这次重新来过虽然能在上搭建不过我觉得意义不大需要安装这和在上有什么区别呢刚好现在手上有一台空闲的树莓派试试在上面搭建编译之所以要编译安装是因为在编译的时候需要用到安装的时

打算开始学习swoole了(原来好像弄过:swoole环境搭建),不过那次只是接触了一下,并未太过深入,这次重新来过 (°ー°〃)
swoole虽然能在windows上搭建,不过我觉得意义不大....需要安装CygWin这和在linux上有什么区别呢┑( ̄Д  ̄)┍,刚好现在手上有一台空闲的树莓派zero,试试在上面搭建
编译php
之所以要编译安装是因为在swoole编译的时候需要用到phpize,apt-get安装的时候没发现有

现在这个上面什么东西都没有,先安装php,我选最新的php7.2.6,zero配置是真的好低....解压和编译cpu都100%了很慢....趁这个时间去干点别的吧

下载,解压源码,安装依赖

强烈建议使用国内镜像....不然可能一些依赖lib按照失败,导致编译错误

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

编译配置,复制的网上的lnmp编译- -...去掉了和Nginx有关的编译项,我只需要编译出php就行,不需要Nginx那些环境,当然如果你之前已经有了这些,这一部分就可以跳过了

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% 有点怕,树莓派zero性能确实是弱...编译好慢....解决了编译配置的问题后就开始编译,我是真的睡了一觉(第二天)才起来make install

make && make install

设置一下php.ini文件

cp php.ini-production /usr/local/php/etc/php.ini
//我输入php -v之后发现没反应,但是php确实是成功了,在/usr/local/php/bin里面./php -v也有反应,想到可能是没有链接到/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


成功,终于可以下一步了,进入swoole编译配置

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

这里我提示了一个错误...
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
解决办法:

apt-get install m4 autoconf

phpize成功之后继续运行编译配置和开始编译(但愿这次不用那么久了...)

开启一些需要的:编译配置项

./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

有这一项就代表成啦~

测试
安装编译都完成之后,当然来试试是不是真的能用了

复制官方的例子,嘿嘿嘿~

on("open", function ($ws, $request) {
    var_dump($request->fd, $request->get, $request->server);
    $ws->push($request->fd, "hello, welcome
");
});
//监听WebSocket消息事件
$ws->on("message", function ($ws, $frame) {
    echo "Message: {$frame->data}
";
    $ws->push($frame->fd, "server: {$frame->data}");
});
//监听WebSocket连接关闭事件
$ws->on("close", function ($ws, $fd) {
    echo "client-{$fd} is closed
";
});
$ws->start();

php swoole.php
web:

成了~


历时一天,终于搞定了 编译真的是漫长的过程=_=

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28891.html

相关文章

  • swoole入门3-swoole开发环境搭建

    摘要:安装命令环境下必须关闭选项需要修改关闭在下开发可以使用来方便的开发应用,安装好后再里的选项里共享代码所在磁盘。为源码所在路径为容器内路径在里执行编译安装扩展是按照标准扩展构建的。 环境依赖 仅支持 Linux、FreeBSD、MacOS 三种操作系统 在Windows平台,可使用CygWin或WSL(Windows Subsystem for Linux) Linux 内核版本 2....

    jerryloveemily 评论0 收藏0
  • 【趣味连载】攻城狮上传视频与普通人上传视频:(一)生成结构化数据

    摘要:背景当知道要上传的视频资料从条变成条时,我就明白,绝对不能再人工处理了。 背景 当知道要上传的视频资料从20条变成100条时,我就明白,绝对不能再人工处理了。他们总是想当然的认为,录入一条数据需要1分钟,那录入20条数据就是20分钟,录入100条数据,不就是100分钟吗?我有时候,真的很想问问他们,没有考虑过人是会犯错的吗?数据越多,出错的可能就越大;但是数据本身,又是不允许出现纰漏的...

    mindwind 评论0 收藏0
  • 树莓学习笔记(六)交叉编译概念及安装使用

    摘要:一交叉编译概念什么是交叉编译交叉编译是在一个平台上生成另一个平台上的可执行代码。也要树莓派有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。 ...

    songze 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<