使用alpine基础镜像,给源码安装的php,增加sockets扩展遇到的问题。

前言

前段时间使用alpine基础镜像,安装了nginx+php,但是源码安装php的时候没有开启很多扩展,这几天在实践php和rabbitmq实现延迟队列的时候,需要socket扩展,记录下安装的时候遇到的问题以及解决办法。

使用alpine基础镜像,安装nginx+php,然后构建新基础镜像_nginx:1.25.4-alpine 镜像地址-优快云博客

一、安装sockets扩展

1、进入php源码扩展目录,执行如下命令。

cd /root/php-8.3.3/ext/sockets

2、安装扩展,执行如下命令。

phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

3、安装过程当中报如下错误。

make && make install
/bin/sh /root/php-8.3.3/ext/sockets/libtool --tag=CC --mode=compile cc -I. -I/root/php-8.3.3/ext/sockets -I/root/php-8.3.3/ext/sockets/include -I/root/php-8.3.3/ext/sockets/main -I/root/php-8.3.3/e
### 如何在CentOS 7 上部署 LNMP 环境 #### 准备工作 为了确保顺利部署 LNMP (Linux, Nginx, MySQL 和 PHP),需要先更新系统并安装必要的依赖项。可以使用 `yum` 来完成这些操作。 ```bash sudo yum update -y && sudo yum install epel-release -y ``` #### 安装 Docker 对于希望利用容器化技术来简化管理和部署过程的情况,在 CentOS 7 中可以通过官方文档推荐的方法来安装 Docker[^1]: ```bash # 设置存储库 sudo yum-config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo # 安装Docker CE sudo yum install docker-ce docker-ce-cli containerd.io # 启动服务 sudo systemctl start docker sudo systemctl enable docker ``` #### 配置 NGINX 容器 创建一个名为 nginx 的目录用于放置配置文件和静态网页资源,接着拉取最新的官方镜像版本,并启动容器实例[^2]: ```bash mkdir ~/nginx cd ~/nginx/ touch index.html echo "<h1>Hello from my first Nginx Container</h1>" >>index.html docker pull nginx:latest docker run --name some-nginx -v /path/to/html:/usr/share/nginx/html:ro -p 80:80 -d nginx ``` 请注意上述命令中的路径 `/path/to/html` 应替换为实际存放 HTML 文件的位置。 #### 添加 MySQL 数据库支持 通过 Docker Hub 获取合适的 MySQL 版本作为数据库服务器运行于后台守护进程中: ```bash docker pull mysql/mysql-server:tag docker run --name=mysql-container-name \ -e MYSQL_ROOT_PASSWORD=my-secret-pw \ -d mysql/mysql-server:tag ``` 这里 `-e` 参数用来设置环境变量以初始化 root 用户密码;而 `mysql-container-name` 及 `my-secret-pw` 则需自行定义合适名称与安全强度较高的密码字符串代替之。 #### 构建 PHP-FPM 运行时环境 同样采用相同的方式获取 php-fpm 映像并指定挂载点映射至宿主机上的源码位置以便处理动态请求: ```bash docker pull php:fpm-alpine docker run --name=phpfpm-container \ -v /var/www/html:/var/www/html \ --link=mysql-container:mysql \ -d php:fpm-alpine ``` 最后一步是调整 Nginx 的 FastCGI 参数使其能够转发 .php 结尾的 URL 请求给对应的 FPM 处理程序解析执行。 #### 整合各组件间通信关系 编辑默认站点配置模板(通常位于 `/etc/nginx/conf.d/default.conf`),添加如下片段指向本地监听端口 9000 的 fastcgi_pass 地址以及设定索引页面顺序优先级等选项: ```nginx location ~ \.php$ { include snippets/fastcgi-php.conf; # With php-fpm (or other unix sockets): fastcgi_pass unix:/run/php/php7.x-fpm.sock; # 或者 tcp socket 形式的 IP:Port try_files $uri =404; } ``` 保存更改后重启所有关联的服务进程使新参数生效即可访问测试效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ayzen1988

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

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

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

打赏作者

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

抵扣说明:

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

余额充值