Upsun User Documentation

Swoole

Back to home

On this page

Try Upsun for 15 days
After that, enjoy the same, game-changing Upsun features for less with the First Project Incentive!¹ A monthly $19 perk!
¹Terms and conditions apply
Activate your 15-day trial

Swoole is a PHP extension that extends PHP core with a coroutine based asynchronous network application framework designed for building large scale concurrent systems.

Unlike PHP-FPM’s stateless operating, Swoole relies on establishing persistent connections with every user, sending and receiving data in real-time.

Swoole and Open Swoole are two forked libraries pursuing that goal.

For other versions of PHP, you can install both extensions manually by following the instructions on this page.
You need:

  • PHP 7.3+ for Swoole
  • PHP 7.4.0+ for Open Swoole
  • The Swoole installation script.

Install Anchor to this heading

Install the PHP extension for Swoole or Open Swoole during the build.

Take advantage of an installation script. You need to pass 2 parameters:

  • Which Swoole project to use: openswoole or swoole
  • Which version to install
.upsun/config.yaml
applications:
    app:
        type: 'php:<VERSION>'
        hooks:
            build: |
                set -e
                ...
                curl -fsS https://raw.githubusercontent.com/platformsh/snippets/main/src/install_swoole.sh | { bash /dev/fd/3 openswoole 4.11.0 ; } 3<&0                

Use Anchor to this heading

Override the default web server with a custom start command. Octane should listen on a TCP socket.

.upsun/config.yaml
applications:
    app:
        type: 'php:8.3'
        web:
            upstream:
                socket_family: tcp
                protocol: http
            commands:
                start: php PATH_TO_SWOOLE_START_COMMAND --port=$PORT
            locations:
                "/":
                    passthru: true
                    scripts: false
                    allow: false

Is this page helpful?