当前位置: 首页 > article >正文

CRMEB部署的一些修改

# CRMEB的swoole要开启ssl。但是前面安装的时候默认是不开启这项的。所以这里改成从源代码编译安装。

# 使用官方的Ubuntu 24.04镜像作为基础镜像
FROM ubuntu:24.04

# 设置环境变量以避免交互式配置工具
ENV DEBIAN_FRONTEND=noninteractive

# 设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    echo "Asia/Shanghai" > /etc/timezone

RUN mkdir -p /usr/src/swoole
COPY swoole-src/swoole-src-4.8.13 /usr/src/swoole

# 更新包列表并安装必要的软件包
RUN apt-get update && \
    apt-get install -y software-properties-common ca-certificates nginx supervisor && \
    add-apt-repository ppa:ondrej/php && \
    apt-get update && \
    apt-get install -y \
        php7.4 \
        php7.4-cli \
        php7.4-fpm \
        php7.4-dev \
        php7.4-bcmath \
        php7.4-soap \
        php7.4-intl \
        php7.4-readline \
        php7.4-ldap \
        php7.4-msgpack \        
        php7.4-igbinary \
        php7.4-mysql \
        php7.4-pgsql \
        php7.4-gd \
        php7.4-imagick \
        php7.4-curl \
        php7.4-mbstring \
        php7.4-xml \
        php7.4-zip \
        php7.4-redis \
        php7.4-memcached \
        php7.4-amqp \
        git \
        unzip \
        curl \
        openssl \
        libssl-dev \
        libcurl4-openssl-dev \
#    && pecl install swoole-4.8.13 \
#    && echo "extension=swoole.so" > /etc/php/7.4/mods-available/swoole.ini \
#    && phpenmod swoole \
    && cd /usr/src/swoole \
    && phpize \
    && ./configure --enable-openssl --enable-sockets --enable-http2 --enable-swoole-json --enable-swoole-curl  \
    && make -j$(nproc) \
    && make install \
    && echo "extension=swoole.so" > /etc/php/7.4/mods-available/swoole.ini \
    && phpenmod swoole \
    && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
    && apt-get -y autoremove \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/src/swoole

COPY swoole_loader74.so /usr/lib/php/20190902
RUN echo "extension=swoole_loader74.so" > /etc/php/7.4/mods-available/swoole_loader.ini \
    && phpenmod swoole_loader 

# 确保目录存在
RUN mkdir -p /run/php \
    && chown -R www-data:www-data /run/php

# 设置工作目录
WORKDIR /var/www/html

# 设置权限
RUN chown -R www-data:www-data /var/www/html

# 配置 Nginx
COPY nginx.conf /etc/nginx/nginx.conf
COPY default /etc/nginx/sites-available/default

# 配置 Supervisor
COPY supervisord.conf /etc/supervisord.conf

# 暴露默认的PHP-FPM端口
EXPOSE 80

# 启动 Supervisor
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]

在镜像编译的时候去clone代码会比较麻烦,这里就先把源码下载,用COPY指令复制到指定位置。

# CRMEB中ws问题

前面部署后的系统不能响应ws。经查,是主机中nginx配置的问题。现做些修改。

    location / {
        proxy_pass   http://127.0.0.1:84;

        # START
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        # END

        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }


http://www.kler.cn/a/521228.html

相关文章:

  • 从替代到覆盖:暴雨信创服务器打开市场新局面
  • 三角形的最大周长(LeetCode 976)
  • 您与此网站之间建立的连接不安全
  • Myeclipse最新版本 C1 2019.4.0
  • 数据结构课程设计(三)构建决策树
  • 【某大厂一面】数组和链表区别
  • 【QT】 控件 -- 显示类
  • Android-okhttp详解
  • Spark Streaming编程基础
  • 基于Java(SSM)+MySQL实现的客户管理系统
  • 3097. 或值至少为 K 的最短子数组 II
  • Direct Preference Optimization (DPO): 一种无需强化学习的语言模型偏好优化方法
  • FPGA同步复位和异步复位
  • Day37:添加元素到列表中
  • 缓存策略通用分布式缓存解决方案
  • 基于微信小程序的健身管理系统设计与实现(LW+源码+讲解)
  • 通过配置核查,CentOS操作系统当前无多余的、过期的账户;但CentOS操作系统存在共享账户r***t
  • 如何实现事件响应功能
  • 三. Redis 基本指令(Redis 快速入门-03)
  • 14-6-1C++STL的list
  • IDEA创建修改gitee仓库
  • 利用双指针一次遍历实现”找到“并”删除“单链表倒数第K个节点(力扣题目为例)
  • 在每一次灵感碰撞中,见证成长的蜕变--24年年度总结
  • 【协议详解】卫星通信5G IoT NTN SIB31-NB 信令详解
  • 金价高企需求疲软,周大福近三个月零售值下降14.2%
  • leetcode刷题记录(一百)——121. 买卖股票的最佳时机