Docker快速搭建ubuntu+swoole环境
拉取ubuntu
镜像默认最新
docker pull ubuntu
在本地新建一个专门写代码的目录,然后与容器进行映射
docker run -it -v 本地目录:/var/www -p 8081:80 -p 9501:9501 --name=ubuntuswoole ubuntu
运行后会直接进入到容器内部
首先更新
apt
源,否则会出现找不到安装包的问题apt-get update
安装
nginx
apt install -y nginx
nginx
命令
# 关闭
service nginx stop
# 开启
service nginx start
# 状态
service nginx status
# 重启
service nginx restart
安装php
apt-get install -y software-properties-common
选择亚洲,上海地区等待安装完。
add-apt-repository ppa:ondrej/php
# 出现短暂暂定 按回车键【enter】继续
# 再次更新源
apt-get update
# 安装 php-fpm 如果是使用swoole 其实fpm装不装无所谓
apt-get install -y php7.4-fpm
php7.4-fpm
命令
# 关闭
service php7.4-fpm stop
# 开启
service php7.4-fpm start
# 状态
service php7.4-fpm status
# 重启
service php7.4-fpm restart
修改nginx配置文件
vim /etc/nginx/sites-available/default
我们找到如下内容
root /var/www/html;
index index.html index.htm index.nginx-debian.html index.php
在后面加上index.php
再找到:location ~\.php$
,将对应的注释去掉
location ~\.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
使用nginx -t
检查语法是否正确,然后重启nginx
和fpm
# 重启 nginx
service nginx restart
# 启动 php7.4-fpm
service php7.4-fpm restart
查看服务进程
# 查看当前进程
ps -aux
# 查看 nginx 状态
service nginx status
# 查看 php7.4-fpm 状态
service php7.4-fpm status
现在可以在本地浏览器使用创建容器时使用的8081
对应容器内部nginx
的80
端口访问就可以看到nginx
的经典页面。
安装swoole
先安装一下wget
apt-get install -y wget
下载源码
wget https://github.com/swoole/swoole-src/archive/refs/tags/v4.8.12.tar.gz
解压缩
tar -zxvf v4.8.12.tar.gz
cd swoole-src-xxx
phpize && \
./configure \
--enable-openssl \
--enable-http2 && \
make && sudo make install
最后成功后,找到php.ini
php --ini
去对应位置的ini
文件加上swoole
配置
extension=swoole.so
验证
php --ri swoole
swoole
Swoole => enabled
Author => Swoole Team <team@swoole.com>
Version => 4.8.12
Built => Oct 28 2022 23:43:02
coroutine => enabled with boost asm context
epoll => enabled
eventfd => enabled
signalfd => enabled
cpu_affinity => enabled
spinlock => enabled
rwlock => enabled
openssl => OpenSSL 1.1.1f 31 Mar 2020
dtls => enabled
http2 => enabled
mutex_timedlock => enabled
pthread_barrier => enabled
futex => enabled
async_redis => enabled
Directive => Local Value => Master Value
swoole.enable_coroutine => On => On
swoole.enable_library => On => On
swoole.enable_preemptive_scheduler => Off => Off
swoole.display_errors => On => On
swoole.use_shortname => On => On
swoole.unixsock_buffer_size => 8388608 => 8388608