Ubuntu WSL swoole easySwoole安装

安装swoole

环境使用LNMP一键安装

LNMP安装了哪些软件?安装目录在哪? - LNMP一键安装包 https://lnmp.org/faq/lnmp-software-list.html

安装swoole

选择PECL安装:
1>pecl install swoole //如果以上步骤一切正常的话,即表示swoole已经成功的安装了。 (询问的都选了yes。。。不知道有啥用)
2>extension=swoole.so //成功之后,我们打开php.ini(不知道配置文件在哪的回去再把CLI看一遍),把swoole.so加入到文件最后 (php --ini定位文件所在 LNMP列出的目录不准) (快捷键:vim中大写G到达文件尾部)

3>$ php -m | grep swoole //查看swoole是否被正确的安装

源码编译方法未尝试,github速度太慢建议使用gitee.com的源

安装easyswoole

创建一个用户

root下被禁止使用composer,故创建一个用户

sudo adduser nick 设置密码 ,nano /etc/sudoers在root ALL=(ALL) ALL 那里添加 nick ALL=(ALL) ALL vim还是sudo保存不了(权限问题)。

查看用户cat /etc/passwd

框架安装

参考 EasySwoole 安装|swoole 安装|swoole 拓展 https://www.easyswoole.com/Cn/Introduction/install.html

执行composer require easyswoole/easyswoole=3.x出现错误,是文件权限问题,find . /home/ -name "composer.json" 2>/dev/null找到/home/wwwroot/default/phpmyadmin 下的文件 sudo chmod -R 777 composer.json

nano ctrl+w 查找字符串

查看Linux版本 lsb_release -a

出现错误,修改php.ini文件中

extension_dir = “./php/include/php/ext”

目录为php的ext目录

几个目录:

/usr/local/php/include/php/ext

从头开始

LNMP太麻烦了,用自己的服务器换上宝塔来做了。。然而宝塔安装的也是LNMP。。。

NEW 安装PHP 和 swoole

yum install unzip zip -y

wget https://codeload.github.com/swoole/swoole-src/tar.gz/v4.4.3
tar -zxvf v4.4.3
cd swoole-src-4.4.3/

phpize
有输出信息后才下一步
find / -name "php-config"
找到./www/server/php/71/bin/php-config
./configure --with-php-config=/www/server/php/71/bin/php-config

make
make install

输出两条信息:

Installing shared extensions: /www/server/php/71/lib/php/extensions/no-debug-non-zts-20160303/
Installing header files: /www/server/php/71/include/php/

find / -name “php.ini”

vim /www/server/php/71/etc/php.ini

G到末尾

添加:extension=/www/server/php/71/lib/php/extensions/no-debug-non-zts-20160303/swoole.so

检查 php -m 有无swoole

参考:

宝塔面板安装swoole扩展组件支持设置生效全过程_老蒋部落 https://www.itbulu.com/bt-swoole.html

swoole 安装和简单实用 - 太空刘 - 博客园 https://www.cnblogs.com/taikongliu/p/6801950.html

安装easyswoole

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

composer require easyswoole/easyswoole=3.x

php vendor/bin/easyswoole install

报错symlink被禁用

宝塔控制面板->软件管理->php 设置 禁用函数 删除symlink(好像没用)

php vendor/easyswoole/easyswoole/bin/easyswoole install
php easyswoole start

测试easyswoole

在项目根目录下创建如下的目录结构,这个目录是编写业务逻辑的应用目录,编辑 Index.php 文件,添加基础控制器的代码

project              项目部署目录 就是在easyswoole的同目录下创建一个app文件 
----------------------------------
├─App        应用目录
│  └─HttpController      应用的控制器目录
│     └─Index.php    默认控制器文件
----------------------------------

Index.php:

<?php
namespace App\HttpController;

use EasySwoole\Http\AbstractInterface\Controller;

class Index extends Controller
{

    function index()
    {
        // TODO: Implement index() method.
        $this->response()->write('hello world');
    }
}

然后编辑根目录下的 composer.json 文件,注册应用的命名空间:

{
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        }
    },
    "require": {
        "easyswoole/easyswoole": "3.x-dev"
    }
}

最后执行 composer dumpautoload 命令更新命名空间,框架已经可以自动加载 App 目录下的文件了,此时框架已经安装完毕,可以开始编写业务逻辑

在有APP文件的路径下(App放在根目录了)
# 更新命名空间映射
composer dumpautoload
# 启动框架
php easyswoole start

阿里云防火墙开启9501 宝塔面板 安全 放行9501

启动框架后,访问 http://IP:9501即可看到 Hello World 。

网络配置问题

解析:

http://test..cn/ ->A记录 IP .**.***.

http://t.*.cn/ -> 隐性URL http://test..cn:9501

宝塔面板添加的端口9501

FTP连接问题

阿里云面板开放 21 端口 39000/40000 被动端口

宝塔面板Pure-Ftpd 1.0.47设置 查找“ForcePassiveIP”(位置188行左右)将后面的192.168.0.1 修改为你自己的阿里云服务器公网IP地址,同时,去掉ForcePassiveIP的“#”号。然后保存。

FTP连接工具使用被动模式,目录为/ ,直接连接到宝塔ftp面板显示的目录,无法越级。

宝塔Linux面板FTP无法连接的解决办法 - 止境 - CSDN博客 https://blog.csdn.net/hc1104/article/details/80401637

WSL安装Swoole

作者:Tauruse

WSL运行swoole过程记录整理,在windows上原生运行Linux系统
https://www.jianshu.com/p/d47d9a68c074

之前是在服务器上装的,需要本地测试,还是在WSl上装一个

用的是Ubuntu20.04

先要更换源,然后

安装PHP

php -v

查看有没php,有的话可以卸载

sudo apt-get autoremove php7*

下载

cd ~
wget https://www.php.net/distributions/php-7.3.5.tar.gz
tar -zxvf php-7.3.5.tar.gz
cd php-7.3.5

可以先windows下载后放到

C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\nick
Administrator windows用户名
nick Ubuntu用户名

编译:

./configure --prefix=/usr/local/php
make && sudo make install

安装PHP的时候出现错误:
在这里插入图片描述

configure: error: libxml2 not found. Please check your libxml2 installation.

但是安装libxml2又是有的,libxml2-dev安装不了

sudo apt install libxml2 libxml2-dev -y

image-20200727144856916

image-20200727144910632

dpkg -s libxml2-dev

没解决

改用Ubuntu18.04安装编译工具就没问题。。。

编译也可以。

在目录 /usr/local/php/bin 中查看php的版本

./php -v

img-7OwsWniE-1595863924471

安装Swoole

cd ~
sudo git clone https://gitee.com/swoole/swoole.git
sudo apt install autoconf m4 -y
cd swoole
sudo /usr/local/php/bin/phpize
sudo ./configure --with-php-config=/usr/local/php/bin/php-config   
sudo make && sudo make install

image-20200727164620275

上面的命令执行完之后,cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731目录下面看是否存在swoole.so文件

image-20200727164919873

执行PHP的命令 /usr/local/php/bin/php -i 查看配置文件在哪
image-20200727165051487

将原来源码里的配置文件复制过来 sudo cp ~/php-7.3.5/php.ini-development /usr/local/php/lib/php.ini

再进行编辑 sudo vim /usr/local/php/lib/php.ini

在文件的末尾加上

extension=swoole.so
或
extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/swoole.so"

按大写G到文件尾。

保存再(在/usr/local/php/bin)执行命令看是否能加载swoole模块:

./php -m

image-20200727165456707

添加环境变量

执行命令:

sudo vim /etc/profile

末尾添加

export PATH=/usr/local/php/bin:$PATH

保存后执行

source /etc/profile

现在就可以直接通过命令 php -v查看到php的信息了

测试swoole

cd /mnt/e/WEB/swoole_test 目录在windows下E盘的

<?php
 
class swooleServer{
    public function __construct()
    {
        $swoole_server = new swoole_server('0.0.0.0', 9501);
        $swoole_server->set([
            'worker_num'=>2
        ]);
        $swoole_server->on('Connect',function ($sv,$fd){
            echo 'User['.$fd.'],Connection';
        });
        $swoole_server->on('Close',function ($sv,$fd){
            echo 'bye'.$fd;
        });
        $swoole_server->on('Receive',function ($sv,$fd,$fromId,$data){
            echo var_dump($data);
            $sv->send($fd,'receive msg:'.$data);
        });
        $swoole_server->start();
    }
}
new swooleServer();

保存为文件swooleServer.php

运行 php swooleServer.php

再开一个命令窗口 运行 telnet 127.0.0.1 9501

输入信息回车就能收到消息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vm5WdIz9-1595864664641)(https://i.loli.net/2020/07/27/5rkiJz6IsHKEo7x.png)]

安装easySwoole

安装Composer

php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"

一开始就出现问题…

image-20200727181243512

解决后

php composer-setup.php
php -r "unlink('composer-setup.php');"

image-20200727200307626

移动到系统目录

sudo mv composer.phar /usr/local/bin/composer

更换源:

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

composer require 没反应 执行composer update composer self-update

Packagist / Composer 中国全量镜像
https://pkg.phpcomposer.com/#how-to-install-composer

安装easyswoole框架

新建一个文件夹作为工程文件夹,在文件夹类操作:

composer require easyswoole/easyswoole=3.x
php vendor/easyswoole/easyswoole/bin/easyswoole install

错误:

image-20200727203907686

image-20200727204312779

php -m 检查 swoole没加载,检查php.ini

继续:

image-20200727210604331
安装 sudo apt-get install unzip 再运行

image-20200727213344208

成功:

image-20200727213624262

启动框架

执行:

# 启动框架
php easyswoole start

此时可以访问 http://localhost:9501 看到框架的欢迎页面,表示框架已经安装成功

easyswoole安装教程
https://www.easyswoole.com/Cn/QuickStart/install.html

ubuntu下安装php openssl扩展

sudo apt-get install openssl

sudo apt-get install libcurl4-openssl-dev

sudo apt-get install libssl-dev

PHP的源文件下

cd home/nick/php-7.3.5/ext/openssl

cp config0.m4 config.m4

phpize
或 /data/php/bin/phpize

./configure --with-openssl --with-php-config=/data/php/bin/php-config
没有找到--with-php-config目录 去掉了

make && make install 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R7bLuLLh-1595863924503)(https://i.loli.net/2020/07/27/jGuphFTzckXmgyr.png)]

修改php.ini文件,最后添加

extension=openssl.so

php添加openssl扩展
https://www.cnblogs.com/hlongch/p/6428904.html

/home/nick/php-7.3.5/ext/openssl

penssl扩展

sudo apt-get install openssl

sudo apt-get install libcurl4-openssl-dev

sudo apt-get install libssl-dev

PHP的源文件下

cd home/nick/php-7.3.5/ext/openssl

cp config0.m4 config.m4

phpize
或 /data/php/bin/phpize

./configure --with-openssl --with-php-config=/data/php/bin/php-config
没有找到--with-php-config目录 去掉了

make && make install 

image-20200727195900612
修改php.ini文件,最后添加

extension=openssl.so

php添加openssl扩展
https://www.cnblogs.com/hlongch/p/6428904.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nickdlk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值