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

网站维护管理怎么搭建网站友情链接

网站维护管理,怎么搭建网站友情链接,万年网站建设,河北廊坊建设银行网站实践说明#xff1a;基于RHEL7(CentOS7.9)部署docker环境(23.0.1、24.0.2)#xff0c;编排也可应用于RHEL7-9(如AlmaLinux9.1)#xff0c;但因为docker的特性#xff0c;适用场景是不限于此的。 文档形成时期#xff1a;2017-2023年 因系统或软件版本不同#xff0c;构建…实践说明基于RHEL7(CentOS7.9)部署docker环境(23.0.1、24.0.2)编排也可应用于RHEL7-9(如AlmaLinux9.1)但因为docker的特性适用场景是不限于此的。 文档形成时期2017-2023年 因系统或软件版本不同构建部署可能略有差异但本文未做细分对稍有经验者应不存在明显障碍。 因软件世界之复杂和个人能力之限难免疏漏和错误欢迎指正。 文章目录 创建数据持久化目录Docker单独构建PHP镜像查看默认配置、版本和已安装模块php_Dockerfile创建容器php.ini配置设置扩展 模块安装结果 Docker单独构建Nginx镜像Docker单独构建Redis镜像下载和安装Compose创建数据持久化目录docker-compose.yml文件内容Compose编排构建构建网络加速 重新构建前清理现场一键删除docker-compose镜像和容器示例清除docker镜像缓存 项目启停和查看和外部网络通信Mysql环境 创建数据持久化目录 mkdir -p /opt/docker/{nginx_cfg,nginx_log,php_cfg,php_log,redis_cfg,redis_log} /opt/web Docker单独构建PHP镜像 compose构建过程中PHP是最复杂最紧要的先单独构建PHP镜像很有必要。 拉取官方7.4的php-fpm默认是拉取最新版 docker pull php:7.4.33-fpm 或通过Dockerfile构建一个新的镜像推荐 docker buildx build -t tmtcha/php:7.4.33-fpm-tmp -f /root/sh/Dockerfiles/Independent/php_Dockerfile_tmp . #创建自定义网络并指定网段、网关只有定义了网段才可以使用此网络为容器分配固定IP docker network create -d bridge --subnet 10.1.4.0/24 --gateway 10.1.4.1 custom_bridge_net 运行容器 docker run -d --name phpfpm74-tmp -v /opt/web/:/opt/web --network custom_bridge_net --ip 10.1.4.3 tmtcha/php:7.4.33-fpm-tmp 查看默认配置、版本和已安装模块 docker官方php7.4.33-fpm的镜像使用的系统版本是基于Debian11 docker exec phpfpm74 /bin/bash -c cat /etc/issue Debian GNU/Linux 11 \n \l查看默认源 docker exec phpfpm74-tmp /bin/bash -c cat /etc/apt/sources.list# deb http://snapshot.debian.org/archive/debian/20221114T000000Z bullseye main deb http://deb.debian.org/debian bullseye main # deb http://snapshot.debian.org/archive/debian-security/20221114T000000Z bullseye-security main deb http://deb.debian.org/debian-security bullseye-security main # deb http://snapshot.debian.org/archive/debian/20221114T000000Z bullseye-updates main deb http://deb.debian.org/debian bullseye-updates main查看php版本 [rootlocalhost ~]# docker exec phpfpm74 /bin/bash -c php -version PHP 7.4.33 (cli) (built: Nov 15 2022 06:05:55) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies官方php7.4.33默认安装模块 [rootlocalhost ~]# docker exec phpfpm74 /bin/bash -c php -m [PHP Modules] Core ctype curl date dom fileinfo filter ftp hash iconv json libxml mbstring mysqlnd openssl pcre PDO pdo_sqlite Phar posix readline Reflection session SimpleXML sodium SPL sqlite3 standard tokenizer xml xmlreader xmlwriter zlib [Zend Modules]和php7.1.33的差不多仅多一个sodium 配置拷贝出来 mkdir /root/recycle_bin/phpfpm74;docker cp phpfpm74:/usr/local/etc /root/recycle_bin/phpfpm74 php_Dockerfile cat /root/sh/Dockerfiles/Independent/php_Dockerfile FROM php:7.4.33-fpm MAINTAINER Fisher N# 设置时区 ENV TZAsia/Shanghai#Download PHP extensions #ADD https://raw.githubusercontent.com/mlocati/docker-php-extension-installer/master/install-php-extensions /usr/local/bin/ #RUN chmod ugax /usr/local/bin/install-php-extensions syncCOPY --frommlocati/php-extension-installer /usr/bin/install-php-extensions /usr/bin/RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime echo $TZ /etc/timezone \ mv /etc/apt/sources.list /etc/apt/sources.list.bak \ echo deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib /etc/apt/sources.list \ echo deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib /etc/apt/sources.list \ echo deb https://mirrors.aliyun.com/debian-security/ bullseye-security main /etc/apt/sources.list \ echo deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main /etc/apt/sources.list \ echo deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib /etc/apt/sources.list \ echo deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib /etc/apt/sources.list \ echo deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib /etc/apt/sources.list \ echo deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib /etc/apt/sources.list \ mkdir /opt/web mkdir -p /usr/local/var/log touch /usr/local/var/log/php-fpm.log touch /usr/local/var/log/php_errors.log \ chown www-data:www-data /usr/local/var/log/php-fpm.log /usr/local/var/log/php_errors.log \ DEBIAN_FRONTENDnoninteractive apt-get update -q \ DEBIAN_FRONTENDnoninteractive apt-get install -qq -y \curl \git \zip unzip \ install-php-extensions \bcmath \bz2 \calendar \exif \gd \intl \ldap \memcached \mysqli \opcache \pdo_mysql \pdo_pgsql \pgsql \redis \soap \xsl \zip \sockets \swoole \yaf \memcached \mongodb-stable \mcrypt \iconv \mbstring \gettext \gmp \ftp \pcntl \shmop \sysvsem \sysvshm \sqlsrv pdo_sqlsrv \odbc \xmlrpc \geoip \composer-2.5.8可停止并清理之前创建的测试用的临时镜像和临时容器 docker stop phpfpm74-tmp docker rm phpfpm74-tmp docker rmi tmtcha/php:7.4.33-fpm-tmp 重新构建 docker buildx build -t tmtcha/php:7.4.33-fpm-v1.01 -f /root/sh/Dockerfiles/Independent/php_Dockerfile . 构建后的大小是519MB。 创建容器 docker run -d --name phpfpm74-v1.01 -v /opt/web/:/opt/web --network custom_bridge_net --ip 10.1.4.3 tmtcha/php:7.4.33-fpm-v1.01 后面要通过Compose整体构建所以这里创建的容器仅做测试分析不必留存可以清理了。docker stop phpfpm74-tmp; docker rm phpfpm74-v1.01 后面要通过Compose整体构建所以创建的网络仅做测试分析不必留存可以清理了。docker network rm custom_bridge_net php.ini配置 cd /opt/docker/php_cfg/php cp -ap php.ini-production php.ini 测试配置 docker exec phpfpm74-v1.01 /bin/bash -c php-fpm -t重载配置 docker exec phpfpm74-v1.01 /bin/bash -c kill -USR2 docker exec phpfpm74-v1.01 /bin/bash -c ps aux | grep php-fpm: master process | grep -v grep | sed s/\s\s*/ /g | cut -d -f 2修改必要配置 error_log php_errors.log 设置扩展 追加 extension_dir /usr/local/lib/php/extensions/no-debug-non-zts-20190902 extensionbcmath.so extensionexif.so extensiongmp.so extensionmcrypt.so extensionmysqli.so extensionpcntl.so extensionpdo_sqlsrv.so extensionshmop.so ;extensionsodium.so extensionsysvsem.so extensionxsl.so extensionbz2.so extensiongd.so extensionintl.so extensionmemcached.so extensionodbc.so extensionpdo_mysql.so extensionpgsql.so extensionsoap.so extensionsqlsrv.so extensionsysvshm.so extensionyaf.so extensioncalendar.so extensiongettext.so extensionldap.so extensionmongodb.so extensionpdo_pgsql.so extensionredis.so extensionsockets.so extensionswoole.so extensionxmlrpc.so extensionzip.sozend_extensionopcache.so [opcache] ;开启opcache opcache.enable1 ;CLI环境下PHP启用OPcache opcache.enable_cli1;OPcache共享内存存储大小,单位MB opcache.memory_consumption128 ;PHP使用了一种叫做字符串驻留string interning的技术来改善性能。例如如果你在代码中使用了1000次字符串“foobar”在PHP内部只会在第一使用这个字符串的时候分配一个不可变的内存区域来存储这个字符串其他的999次使用都会直接指向这个内存区域。这个选项则会把这个特性提升一个层次——默认情况下这个不可变的内存区域只会存在于单个php-fpm的进程中如果设置了这个选项那么它将会在所有的php-fpm进程中共享。在比较大的应用中这可以非常有效地节约内存提高应用的性能。这个选项的值是以兆字节megabytes作为单位如果把它设置为16则表示16MB默认是4MB opcache.interned_strings_buffer8;这个选项用于控制内存中最多可以缓存多少个PHP文件。这个选项必须得设置得足够大大于你的项目中的所有PHP文件的总和。设置值取值范围最小值是 200最大值在 PHP 5.5.6 之前是 100000PHP 5.5.6 及之后是 1000000。也就是说在200到1000000之间。 opcache.max_accelerated_files4000;设置缓存的过期时间单位是秒,为0的话每次都要检查 opcache.revalidate_freq60;从字面上理解就是“允许更快速关闭”。它的作用是在单个请求结束时提供一种更快速的机制来调用代码中的析构器从而加快PHP的响应速度和PHP进程资源的回收速度这样应用程序可以更快速地响应下一个请求。把它设置为1就可以使用这个机制了。 opcache.fast_shutdown1;如果启用设置为1OPcache会在opcache.revalidate_freq设置的秒数去检测文件的时间戳timestamp检查脚本是否更新。如果这个选项被禁用设置为0opcache.revalidate_freq会被忽略PHP文件永远不会被检查。这意味着如果你修改了你的代码然后你把它更新到服务器上再在浏览器上请求更新的代码对应的功能你会看不到更新的效果强烈建议你在生产环境中设置为0更新代码后再平滑重启PHP和web服务器。 opcache.validate_timestamps0 ;开启Opcache File Cache(实验性), 通过开启这个, 我们可以让Opcache把opcode缓存缓存到外部文件中, 对于一些脚本, 会有很明显的性能提升.这样PHP就会在/tmp目录下Cache一些Opcode的二进制导出文件, 可以跨PHP生命周期存在. opcache.file_cache/tmp模块安装结果 [rootlocalhost ~]# docker exec phpfpm74-v1.01 /bin/bash -c php -m [PHP Modules] bcmath bz2 calendar Core ctype curl date dom exif fileinfo filter ftp gd gettext gmp hash iconv intl json ldap libxml mbstring mcrypt memcached mongodb mysqli mysqlnd odbc openssl pcntl pcre PDO pdo_mysql pdo_pgsql pdo_sqlite pdo_sqlsrv pgsql Phar posix readline redis Reflection session shmop SimpleXML soap sockets sodium SPL sqlite3 sqlsrv standard swoole sysvsem sysvshm tokenizer xml xmlreader xmlrpc xmlwriter xsl yaf Zend OPcache zip zlib[Zend Modules] Zend OPcacheDocker单独构建Nginx镜像 docker pull nginx:1.25.1 docker run -itd --name nginx1.25.1-tmp nginx:1.25.1 docker exec nginx1.25.1-tmp /bin/bash -c cat /etc/issue Debian GNU/Linux 12 \n \l进入容器查看默认配置 docker exec -it nginx1.25.1-tmp /bin/bash 拷贝出来 mkdir /root/recycle_bin/nginx1.25.1 docker cp nginx1.25.1-tmp:/etc/nginx /root/recycle_bin/nginx1.25.1 /bin/cp -ap /root/recycle_bin/nginx1.25.1/nginx/* /opt/docker/nginx_cfg/Docker单独构建Redis镜像 docker pull redis:7.0.11 docker run -itd --name redis7.0.11-tmp redis:7.0.11 docker exec redis7.0.11-tmp /bin/bash -c cat /etc/issue Debian GNU/Linux 12 \n \l进入容器查看默认配置 docker exec -it redis7.0.11-tmp /bin/bash 没有发现redis的配置整个容器找遍了都没有奇怪默认采用的配置没有显形的 默认情况下redis启动后的配置文件路径是/etc/redis/redis.conf或/usr/local/etc/redis/redis.conf但也可能都不是数据文件主目录是/data 以配置文件方式启动 redis-server /usr/local/etc/redis/redis.conf 在创建容器时指定配置例 docker run -d --privilegedtrue -p 6379:6379 -v /docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data --name redis-test redis redis-server /etc/redis/redis.conf --appendonly yes 可从Redis官网(redis.io)下载同版本源码包采用里面的配置。在容器中对应路径是/usr/local/etc/redis宿主机对应/opt/docker/redis_cfg 下载和安装Compose 发行版查看https://github.com/docker/compose/releases $ sudo curl -L https://github.com/docker/compose/releases/download/v2.19.1/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose注意版本的选择要安装其他版本的 Compose请替换版本。 $ sudo chmod x /usr/local/bin/docker-compose $ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose测试是否安装成功 docker-compose --version 准备dockerfile文件和docker-compose.yml文件docker-compose.yml文件 cd ~/sh; mkdir Dockerfiles; cd Dockerfiles mkdir {php,nginx,redis} 文件目录如下 /Dockerfiles ├── php │ ├── php_Dockerfile │ └── php.ini ├── nginx │ ├── nginx_Dockerfile │ └── default.conf ├── redis │ ├── redis_Dockerfile └── docker-compose.yml 一般都忌讳数据库用docker跑所以mysql一般仍单独部署redis如果有持久化数据也单独部署接下来部署的redis视为无持久化数据的。 nginx的Dockerfile内容 FROM nginx:1.25.1 MAINTAINER Fisher “N” RUN mkdir /opt/web php的Dockerfile内容 FROM tmtcha/php:7.4.33-fpm-v1.01 redis的Dockerfile内容 FROM redis:7.0.11 MAINTAINER Fisher ““N”” #ENV http_proxy proxyurl 创建数据持久化目录 mkdir -p /opt/docker/{nginx_cfg,nginx_log,php_cfg,php_log,redis_cfg,redis_log} /opt/web docker-compose.yml文件内容 version: 2.7 services:nginx:build:context: ./nginxdockerfile: ./nginx_Dockerfilecontainer_name: nginx1.25.1# restart: on-failureports:- 80:80- 443:443volumes:- /opt/docker/nginx_cfg:/etc/nginx- /opt/docker/nginx_log:/var/log/nginx- /opt/web:/opt/webhealthcheck:test: [ CMD, curl, -f, http://localhost:80 ]interval: 1m30stimeout: 7sretries: 3start_period: 40snetworks:custom_bridge_net:ipv4_address: 10.1.4.2dns:- 114.114.114.114- 223.5.5.5ulimits:nproc: 65535nofile:soft: 20000hard: 40000logging:driver: json-fileoptions:max-size: 50m # 单个文件大小为50mmax-file: 10 # 最多10个文件php:build:context: ./phpdockerfile: ./php_Dockerfilecontainer_name: phpfpm74-v1.01# restart: on-failureports:- 9000:9000volumes:- /opt/web:/opt/web- /opt/docker/php_cfg:/usr/local/etc- /opt/docker/php_log:/usr/local/var/loghealthcheck:test: [ CMD, curl, -f, http://localhost:9000 ]interval: 1m30stimeout: 7sretries: 3start_period: 40snetworks:custom_bridge_net:ipv4_address: 10.1.4.3dns:- 114.114.114.114- 223.5.5.5ulimits:nproc: 65535nofile:soft: 20000hard: 40000logging:driver: json-fileoptions:max-size: 50m # 单个文件大小为50mmax-file: 10 # 最多10个文件redis:build:context: ./redisdockerfile: ./redis_Dockerfilecontainer_name: redis7.0.11# restart: on-failureports:- 6379:6379healthcheck:test: [ CMD, redis-cli, ping ]interval: 1m30stimeout: 7sretries: 3start_period: 40svolumes:- /opt/docker/redis_cfg/redis.conf:/usr/local/etc/redis/redis.conf- /opt/redis/var:/datacommand:redis-server /usr/local/etc/redis/redis.confnetworks:custom_bridge_net:ipv4_address: 10.1.4.4dns:- 114.114.114.114- 223.5.5.5ulimits:nproc: 65535nofile:soft: 20000hard: 40000logging:driver: json-fileoptions:max-size: 50m # 单个文件大小为50mmax-file: 10 # 最多10个文件 networks:custom_bridge_net:ipam:driver: defaultconfig:- subnet: 10.1.4.0/24gateway: 10.1.4.1Compose编排构建 运行下列命令构建即可自动完成端口绑定、挂载、链接等操作 docker-compose up 构建网络加速 Docker Compose在构建时使用网络加速代理 重新构建前清理现场 一键删除docker-compose镜像和容器示例 docker stop $(docker ps -a -q) docker rm $(docker ps -a -q) docker rmi $(docker images -q | grep -v f0d2ed79caf3) # 删除所有镜像但保留镜像f0d2ed79caf3清除docker镜像缓存 默认情况下如果已经拉去了某个镜像即使已经删了该镜像但是再次拉取还是会取缓存数据下面执行清除本地docker缓存 docker system prune WARNING! This will remove:- all stopped containers- all networks not used by at least one container- all dangling images- all dangling build cache 或 docker system prune --volumes 该命令清除所有停止的容器所有不被任何一个容器使用的网络所有不被任何一个容器使用的volume所有无实例的镜像 再次拉取镜像输出项目启停和查看 后台运行 docker-compose up -d 查看容器运行状态 docker-compose ps 停止该项目运行 docker-compose stop 和外部网络通信 发现6379端口不通经排查修改redis配置添加密码认证protected-mode设为no仍不可连iptables没有阻止firewall的trusted区域默认没有起作用或可添加富规则到public区域生效后可连了 firewall-cmd --permanent --zonepublic --add-rich-rulerule familyipv4 source address来源IP port protocoltcp port6379 acceptMysql环境 独立部署可参考基于RHEL8或RHEL9的RPM包构建部署https://blog.csdn.net/ynz1220/article/details/135533982 https://blog.csdn.net/ynz1220/article/details/135535296
http://www.tj-hxxt.cn/news/136796.html

相关文章:

  • 网站设计专业公司价格小制作手工小学生
  • 飞沐视觉北京网站建设公司做网站域名大概多少钱
  • 沧州自适应网站建设深圳公司做年报网站
  • 网站建设功能报wordpress最新编辑器怎么还原
  • 网站推广都有哪些问答系统网站建设
  • 做网站不会配色怎么办销售管理系统数据库设计
  • 电子商务网站建设讨论网站建设公司深圳
  • 住房和城乡建设部网站注册网络规划设计师题型
  • 小型网站用typescript手机上制作网站的软件
  • 网站管理有哪些网上宣传方法有哪些
  • 高端网站建设方案模板范文项目管理软件app
  • 现在建网站做淘宝联盟推广能赚钱吗无锡网站建
  • 浙江省建设培训中心网站首页扁平化网站特效
  • 单页网站赚钱做服装外单的网站
  • 网站的推广方式组合怎么制作博客网站
  • 私活网站开发多少钱注册公司要钱吗
  • 企业网站模板源码免费兰州seo实战优化
  • 加气站类型的网站建设济南企业做网站推广网站
  • 网站建设的维护建材建设网站
  • WordPress扁平化模板网站seo设置是什么
  • dw网页设计制作网站的成品苍南哪里有网站建设公司
  • 建设网站公司 昆山大连网站推广招聘
  • 非商业组织的网站风格优化工作流程
  • 自己做网站 需要哪些东西电商销售主要做什么
  • 购物网站的推广哈尔滨公共资源交易网建设工程
  • 做个人网站用什么程序如何制作微信小程序店铺
  • 单页设计网站wordpress 收款
  • wordpress电影站主题租服务器去哪里租
  • 网站关键词在哪里修改制作app免费网站模板
  • 学校网站建设的软件环境网络维护与故障解决