Home > PHP Framework > ThinkPHP > Think-Swoole tutorial installation

Think-Swoole tutorial installation

Release: 2020-09-14 09:28:12
forward
4140 people have browsed it

Swoole is an extension of PHP, so installing Swoole is essentially installing a PHP extension. Swoole only supports three operating systems: Linux, FreeBSD, and MacOS.

Recommended tutorials: "thinkphp" "swoole tutorial"

Installation preparation

Before installation You must ensure that the following software has been installed on the system

php-7.1 或更高版本
gcc-4.8 或更高版本
make
autoconf
Copy after login

Generally, the first three have been installed, and the autoconf tool needs to be installed.

Linux:yum install autoconf
Mac:brew install autoconf
Copy after login

Install the Swoole extension for PHP

1. Download Swoole

Download address: https://github.com/swoole/swoole-src /releases

Under normal circumstances, download the latest version.

2. Unzip it into the PHP extension directory. For example, my decompression path is:

/Applications/MAMP/bin/php/php7.2.10/include/php/ext/
Copy after login

The decompressed directory can be named swoole.

3. Enter the decompressed swoole directory and execute the phpize command. If the command is not added to the environment variable, you can execute the absolute path

sudo /Applications/MAMP/bin/php/php7.2.10/bin/phpize
Copy after login

Since there are multiple PHPs on my computer version, so I specified the version I'm using now to execute the command.

Command path: /php installation directory/bin/phpize

4. Execute command:

./configure --with-php-config=/Applications/MAMP/bin/php/php7.2.10/bin/php-config --enable-openss --enable-http2
Copy after login

The specific path is modified according to the actual situation.

5. After executing the command:

make && make install
Copy after login

After success, the installation address will appear. For example, my address is:

/Applications/MAMP/bin/php/php7.2.10/lib/php/extensions/no-debug-non-zts-20170718/
Copy after login

Enter this directory and see if there is swoole in it. so.

6. Add the swoole extension to php.ini.

Be sure to select the currently used PHP version configuration file, which can be viewed using the php --ini command. Mine is at:

/Applications/MAMP/bin/php/php7.2.10/conf/php.ini
Copy after login

Open the php.ini file and add the extension:

extension=”/Applications/MAMP/bin/php/php7.2.10/lib/php/extensions/no-debug-non-zts-20170718/swoole.so”
Copy after login

If you use the MAMP integrated environment, in addition to modifying the above php.ini file, you also need to modify the integrated environment dynamic configuration php.ini file, you can click the arrow after the version in the php option of the panel, or File -> Edit Template -> PHP -> PHP 7.xx -> php.ini to modify it.

7. After the installation is complete, execute the command:

php -m
Copy after login

to see if there is a swoole module in the list. If so, the installation is successful.

Execute the php --ri swoole command to view swoole related information.

8. Test

Enter the following path, and modify it according to the actual situation:

/Applications/MAMP/bin/php/php7.2.10/include/php/ext/swoole/examples/server
Copy after login

There is an echo.php file in it. After opening it, you will see a line of code:

$serv = new swoole_server("0.0.0.0", 9501);
Copy after login

means to listen to all IPs, the port number is 9501.

In the command line, enter the command:

php echo.php
Copy after login

If the command is being executed, there is no cursor, and no error is reported, then create a new command window and enter the following command:

Linux:
netstat -anp | grep 9501
Mac:
ps -ef | grep 9501
Copy after login

You can see that this process is already executing and has a pid process number. The test is successful!

Install the Think-Swoole extension in the ThinkPHP framework

After the PHP extension is installed, you need to install the extension in the framework.

First, we need to download the ThinkPHP framework (Think-Swoole extension currently supports ThinkPHP 5.1 and ThinkPHP 6. In order to demonstrate some new functions, the latest ThinkPHP 6 framework will be used in subsequent articles), and then go to the framework Execute the Think-Swoole installation command in the root directory:

ThinkPHP 5.1 installation command

ThinkPHP 6 installation command

After the installation is completed, execute the command:

php think swoole
Copy after login

If you see the prompt in the picture below, the plug-in can be used normally:

Think-Swoole tutorial installation

Error 1:

I reported an error when I installed and executed the above command, check An error message shows that the Xdebug plug-in cannot be used, so just close it. In the MAMP environment, it can be turned off directly in the php options.

Error 2:

[Swoole\Exception]
failed to listen server port[127.0.0.1:80], Error: Permission denied[13]
Copy after login

Open app/config/swoole.php, you can see that the port corresponds to port 80, because in Linux and Mac, only super administrators have ports 1024 and below. Use permissions, so you can change the port to 9501 (the default host is 127.0.0.1, which means monitoring the local address, here it is changed to 0.0.0.0, which means monitoring all addresses).

After the swoole service is turned on, let’s test it. Enter 127.0.0.1:9501 in the browser, and you can access it normally:

Think-Swoole tutorial installation

At the same time, this also shows that, Swoole comes with HTTP Server, which helps us open an http service, which is equivalent to Apache and Nginx.

At this point, the Think-Swoole plug-in installation is completed.

The above is the detailed content of Think-Swoole tutorial installation. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:阿dai哥
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template