Windows10 子系统Ubuntu16.04 安装PHP7&Swoole

在 windows 做开发唯一的不友好来自于系统(c#的除外),万幸现在有了Bash on Ubuntu on windows,即 windows10 的子系统。
下面来介绍一下如何安装 PHP7 以及 Swoole .

这里为了简便,没选择源码编译安装。

安装php7.0

sudo apt-get install php7.0 php7.0-cgi php7.0-cli php7.0-common php7.0-curl php7.0-dev php7.0-gd php7.0-gmp php7.0-json php7.0-mysql php7.0-recode php7.0-readline php7.0-snmp php7.0-xml php7.0-xmlrpc php7.0-opcache php7.0-fpm php7.0-mbstring php7.0-mcrypt php7.0-xsl php7.0-xml php7.0-xmlrpc php7.0-pgsql

安装7.1/7.2

需要先添加新 7.17.2 的源

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get upgrade php

安装7.1(7.2同理)

sudo apt-get install php7.1 php7.1-dev libphp7.1-embed php7.1-cgi php7.1-cli php7.1-fpm php7.1-phpdbg php7.1-bz2 php7.1-common php7.1-curl php7.1-enchant php7.1-gd php7.1-gmp php7.1-imap php7.1-json php7.1-ldap php7.1-mbstring php7.1-mcrypt php7.1-mysql php7.1-snmp php7.1-soap php7.1-xmlrpc php7.1-xml php7.1-zip php7.1-pgsql

安装swoole

安装swoole,也选择最简便的方式,直接使用pecl安装,但是依然在安装的过程中会有问题,其中给了解决方法。
php版本 > 7

wget http://pear.php.net/go-pear.phar
php go-pear.phar

会提示如下错误

> lesteryou@DESKTOP-SZ:~$ sudo pecl install swoole
> Warning: Invalid argument supplied for foreach() in Command.php on line 249
> Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249

...

解决方式

  1. 先找到 pecl 文件的位置
which pecl
  1. 然后编辑次文件,最后一行,去掉其中的 -n
exec $PHP -C -n -q $INCARG -d date.timezone=UTC -d output_buffering=1 -d variables_order=EGPCS -d safe_mode=0 -d register_argc_argv="On" $INCDIR/peclcmd.php "$@"

如果报如下错误,

> running: phpize 
> sh: 1: phpize: not found 
> ERROR: `phpize' failed

那是以内没有安装 php-dev

sudo apt-get install php7.1-dev

最后,不要忘记添加在 php.ini 中 swoole.so

Build process completed successfully
Installing '/usr/include/php/20160303/ext/swoole/config.h' Installing '/usr/lib/php/20160303/swoole.so'
install ok: channel://pecl.php.net/swoole-2.2.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=swoole.so" to php.ini

swoole

我来吐槽

*

*

仅有 1 条评论

  1. 不息

    configure: error: Cannot find libpq-fe.h. Please confirm the libpq or specify correct PostgreSQL(libpq) installation path
    ERROR: `/tmp/pear/install/swoole/configure --with-php-config=/usr/bin/php-config --enable-swoole-debug=yes --enable-sockets=ues --enable-openssl=yes --enable-http2=yes --enable-async-redis=yes --enable-mysqlnd=yes --enable-coroutine-postgresql=yes' failed

    如果出现上面的问题,是因为PHP的扩展 php-pgsql 没有安装,安装即可

    sudo apt-get install php7.1-pgsql