docker file for php7.2-fpm

FROM php:7.2-fpm
MAINTAINER admin "admin@163.com"

# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 更新安装依赖包和PHP核心拓展
RUN apt-get update && apt-get install -y \
        git \
        vim \
        curl \
        wget \
        cmake \
        libfreetype6-dev \
        libjpeg62-turbo-dev \    
        libpng-dev \
        libssl-dev \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd \
        && docker-php-ext-install zip \
        && docker-php-ext-install pdo_mysql \
        && docker-php-ext-install opcache \
        && docker-php-ext-install mysqli \
        && rm -r /var/lib/apt/lists/*

# 将预先下载好的拓展包从宿主机拷贝进去
COPY ./pkg/redis-5.3.2.tgz /usr/local/src/redis.tgz
COPY ./pkg/libmemcached-1.0.18.tar.gz /usr/local/src/libmemcached.tar.gz
COPY ./pkg/memcached-3.0.4.tgz /usr/local/src/memcached.tgz
COPY ./pkg/mongodb-1.8.1.tgz /usr/local/src/mongodb-1.8.1.tgz
COPY ./pkg/rabbitmq-c-0.9.0.tar.gz /usr/local/src/rabbitmq-c-0.9.0.tar.gz
COPY ./pkg/amqp-1.10.2.tgz /usr/local/src/amqp-1.10.2.tgz

# 安装 PECL 拓展,这里我们安装的是Redis
RUN pecl install /usr/local/src/redis.tgz && echo "extension=redis.so" > /usr/local/etc/php//conf.d/redis.ini

# 安装libmemcached
RUN tar zxf /usr/local/src/libmemcached.tar.gz \
    && cd libmemcached-1.0.18 \
    && ./configure --prefix=/usr/local/libmemcached --with-memcached \
    && make && make install

# 安装memcached
RUN tar zxvf /usr/local/src/memcached.tgz \
    && cd memcached-3.0.4 \
    && phpize \
    && ./configure -enable-memcached -with-php-config=/usr/local/bin/php-config -with-zlib-dir -with-libmemcached-dir=/usr/local/libmemcached -prefix=/usr/local/phpmemcached -disable-memcached-sasl \
    && make && make install \
    && echo "extension=memcached.so" > /usr/local/etc/php/conf.d/memcached.ini

# 安装 Swoole
RUN cd /usr/local/src \
    && git clone --branch v4.5.2 https://gitee.com/swoole/swoole.git \
    && cd swoole \
    && phpize \
    && ./configure --enable-openssl -with-php-config=/usr/local/bin/php-config \
    && make \
    && make install \
    && echo "extension=swoole.so" > /usr/local/etc/php/conf.d/swoole.ini    

## 安装 rabbitmq-c
RUN tar -zxvf rabbitmq-c-0.9.0.tar.gz \
&& cd rabbitmq-c-0.9.0 \
&& mkdir build && cd build \
&& cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c .. \
&& cmake --build .  --target install \
&& cp /usr/local/rabbitmq-c/lib/x86_64-linux-gnu/* /usr/local/rabbitmq-c/lib/

## 安装rabbitmq扩展
RUN tar -zxf amqp-1.10.2.tgz \
&& cd amqp-1.10.2 \
&& phpize \
&& ./configure --with-php-config=/usr/local/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c \
&& make && make install \
&& echo "extension=amqp.so" > /usr/local/etc/php/conf.d/amqp.ini
    
# 安装mongodb扩展
RUN tar zxvf /usr/local/src/mongodb-1.8.1.tgz \
    && cd mongodb-1.8.1 \
    && phpize \
    && ./configure -with-php-config=/usr/local/bin/php-config \
    && make && make install \
    && echo "extension=mongodb.so" > /usr/local/etc/php/conf.d/mongodb.ini

# 安装 Composer
ENV COMPOSER_HOME /root/composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
ENV PATH $COMPOSER_HOME/vendor/bin:$PATH

## 除了so文件扩展,还需要库来驱动使用mongodb 
RUN composer require mongodb/mongodb

# 删除扩展包
RUN rm -f /usr/local/src/redis.tgz
RUN rm -f /usr/local/src/libmemcached.tar.gz
RUN rm -f /usr/local/src/memcached.tgz
RUN rm -f /usr/local/src/mongodb-1.8.1.tgz
RUN rm -f /usr/local/src/rabbitmq-c-0.9.0.tar.gz
RUN rm -f /usr/local/src/amqp-1.10.2.tgz


WORKDIR /var/www/html/im

# 写权限
RUN usermod -u 1000 www-data

##启动php-fpm进程

ENTRYPOINT ["/usr/local/sbin/php-fpm", "-c"]

##这里的配置文件是可以运行容器时指定的。

CMD   ["/usr/local/etc/php-fpm.conf"]

 

## 用9000端口运行php-fpm服务

EXPOSE 9000

 

### 根据生成的镜像生成docker容器

sudo docker run -it \
--name php7.2-fpm \
-p 9002:9000 \
-v /var/www/html/learn_php:/var/www/html/learn_php:rw \
-v /var/www/html/dockerfile_php72fpm/phpfpm/php.ini:/usr/local/etc/php/php.ini:ro \
-v /var/www/html/dockerfile_php72fpm/phpfpm/php-fpm.conf:/usr/local/etc/php-fpm.conf:ro \
-v /var/www/html/dockerfile_php72fpm/logs/php-fpm:/var/log/php-fpm:rw \
php72_standard 
 

### 安装 Zabbix 7.2 on CentOS 9 #### 准备工作 为了确保顺利安装 Zabbix 7.2,在开始之前需确认系统已更新至最新状态,并关闭防火墙与 SELinux,以便减少不必要的干扰。 ```bash sudo dnf update -y sudo systemctl stop firewalld sudo setenforce 0 ``` #### 添加 Zabbix 官方仓库 官方提供了针对不同 Linux 发行版的软件库。对于 CentOS 9 Stream 用户来说,应该添加如下命令来注册 Zabbix 的 yum 源: ```bash sudo rpm -Uvh https://repo.zabbix.com/zabbix/7.2/rhel/9/x86_64/zabbix-release-7.2-1.el9.noarch.rpm sudo dnf clean all ``` #### 安装 MySQL/MariaDB 及其客户端库 考虑到可能存在的数据库驱动兼容性问题[^2],建议先安装 MariaDB 或 Percona Server for MySQL 来作为后端存储解决方案。这里以 MariaDB 为例展示具体操作过程: ```bash sudo dnf install mariadb-server mariadb-devel -y sudo systemctl start mariadb.service sudo systemctl enable mariadb.service ``` 创建用于保存监控数据的新数据库实例以及相应的访问账号: ```sql CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost'; FLUSH PRIVILEGES; EXIT; ``` 接着初始化该数据库结构: ```bash cd /usr/share/doc/zabbix-sql-scripts/mysql/ mysql -uzabbix -p zabbix < schema.sql mysql -uzabbix -p zabbix < images.sql mysql -uzabbix -p zabbix < data.sql ``` #### 编译环境准备 (如果采用源码方式) 虽然可以直接通过二进制包快速部署服务端组件,但有时也会因为特定需求而选择从源代码构建整个项目。此时则需要预先准备好必要的开发工具链及相关依赖项: ```bash sudo dnf groupinstall "Development Tools" sudo dnf install curl policycoreutils-python-utils unzip libcurl-devel \ net-snmp net-snmp-devel OpenIPMI ipmiutil lm_sensors fping jansson-devel \ libssh2-devel openssl-devel openldap-1.8.0-openjdk postgresql-devel mysql-devel glibc-langpack-en \ graphviz python3-pip nodejs npm go perl-CGI perl-GD perl-DBI perl-DBD-Pg \ perl-DBD-mysql perl-LWP-Protocol-https perl-Tk perl-Time-HiRes perl-YAML perl-libwww-perl \ php php-gd php-bcmath php-mbstring php-xmlrpc php-soap php-intl php-opcache php-cli \ php-common php-json php-zip php-fpm php-pdo php-pgsql php-mysqlnd php-pecl-apcu \ httpd mod_ssl nginx redis memcached beanstalkd rabbitmq-server activemq qpid-dispatch-router \ gnuplot rrdtool jq yajl json-c protobuf-c snappy leveldb rocksdb lzo lz4 bzip2 xz brotli \ xz-devel zlib-devel bzip2-devel lzo-devel lz4-devel snappy-devel protobuf-c-devel \ rocksdb-devel leveldb-devel google-perftools-devel tcmalloc-minimaljemalloc \ jemalloc-devel boost-devel cppunit-devel cxxtestgen doxygen graphviz dot2tex dia \ dia2code plantuml mermaid markdown pandoc asciidoc docbook-style-xsl dblatex texlive-latex \ asciidoc-plugins augeas-lenses puppet hiera facter rubygem-hiera-puppet rubygem-deep_merge \ rubygem-ssh salt-virt salt-proxy \ salt-master salt-minion salt-syndic salt-cloud-drivers salt-formulas salt-states \ salt-pillars salt-reactors salt-engines salt-executors salt-runners salt-outputters \ salt-returners salt-authenticators salt-tokenizers salt-topsalt-ext_pillar_providers \ salt-grains salt-modules salt-state_modules salt-runner_modules salt-executor_modules \ salt-util_modules salt-client_modules salt-watcher_modules salt-key_manager_modules \ salt-netapi_modules salt-event_handler_modules salt-cache_management_modules \ salt-fileserver_backend_modules salt-roster_modules salt-thin_deployer_modules \ salt-targeting_systems salt-matchers salt-load_balancers salt-dns_resolvers \ salt-network_scanners salt-package_managers salt-service_controllers \ salt-log_handlers salt-monitoring_tools salt-backup_restore_tools \ salt-security_hardening_tools salt-performance_tuning_tools salt-debugging_tracing_tools \ salt-documentation_generators salt-reporting_analytics_tools salt-ci_cd_integration_tools \ salt-container_orchestration_tools salt-kubernetes_integrations salt-edge_computing_support \ salt-blockchain_interoperability salt-artificial_intelligence_ml_dl_extensions \ salt-iot_device_management salt-smart_home_automation salt-building_energy_efficiency \ salt-industrial_iot iiot edge computing fog computing cloud native multi_cloud hybrid_cloud \ open_source software defined networking sdn network_function_virtualization nfv containerized_apps \ microservices serverless faas function_as_a_service kubernetes openshift docker podman cri-o \ container_runtime_interface cri crictl container_networking multitenancy security isolation \ performance optimization scalability resilience fault_tolerance high_availability ha disaster_recovery \ business_continuity continuous_delivery cd devsecops site_reliability_engineering sre observability \ monitoring logging tracing metrics alerting incident_response root_cause_analysis problem_resolution \ knowledge_base documentation community_contributions best_practices industry_standards compliance \ regulatory_requirements privacy_data_protection gdpr hipaa soc2 iso27001 pci_dss osstmm nist_csf \ cmmc fedramp cybersecurity_framework zero_trust_architecture secure_software_development_lifecycle ssdl \ application_security api_security mobile_application_security web_application_firewall waf endpoint_detection_and_response edr \ intrusion_prevention_system ips intrusion_detection_system ids vulnerability_assessment va penetration_testing pentest \ red_team_exercises blue_team_operations purple_team_collaboration threat_hunting attack_surface_reduction \ cyber_threat_intelligence ctint automated_vulnerability_patch_management avpm insider_thread_mitigation itim \ cloud_security post_quantum_cryptography pq
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值