alpine创建lnmp环境alpine安装nginx+php5.6+mysql

2024-03-01 17:36

本文主要是介绍alpine创建lnmp环境alpine安装nginx+php5.6+mysql,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言
制作lnmp环境,你可以在alpine基础镜像中安装相关的服务,也可以直接使用Dockerfile创建自己需要的环境镜像。
注意:提前确认自己的alpine版本,本次创建基于alpine3.6进行创建,官方在一些版本中删除了php5
在这里插入图片描述
1、拉取alpine3.6镜像

docker pull alpine:3.6

在这里插入图片描述
2、创建目录用于存放准备使用的文件

root@ubuntu20043:~# mkdir amnp5

我这里将文件在本地编辑好直接上传上去了,也可以命令行创建所需文件,
在这里插入图片描述
3、创建镜像

docker build --no-cache . -t mnp5

docker build --no-cache=true (不使用缓存机制)

在这里插入图片描述

4.运行容器

docker run --name mnp5 -p 8888:80 -v /lamptest/test:/www -d mnp5

命令行内容,运行容器命名为mnp5, -p将宿主机8888端口映射到容器80端口,-v 将宿主机/lamptest/test目录挂载到容器/www目录,该目前是容器中nginx运行目录,可在配置文件中修改
-d 后台运行
在这里插入图片描述
5、相关配置文件内容
Dockerfile文件

FROM alpine:3.6
COPY files /tmp
RUN apk add --no-cache bash curl nginx openrc mysql mysql-client \php5-ctype php5-curl php5-dom php5-fpm php5-iconv php5-gd \php5-json php5-mysqli php5-openssl php5-pdo php5-pdo_sqlite \php5-sqlite3 php5-xml php5-xmlreader php5-zlib php5-phar php5-posix &&\# NGINXadduser -D -g 'www' www &&\mkdir /www &&\chown -R www:www /var/lib/nginx &&\chown -R www:www /www &&\mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig &&\mkdir /run/nginx/ &&\mv /tmp/nginx.conf /etc/nginx/nginx.conf &&\mv /tmp/index.html /www/index.html &&\# PHPmv /tmp/php.ini /etc/php5/php.ini &&\mv /tmp/php-fpm.conf /etc/php5/php-fpm.conf &&\mv /tmp/info.php /www &&\mv /tmp/mysql.php /www &&\# MYSQLmkdir -p /run/mysqld &&\chown -R mysql:mysql /run/mysqld &&\chown -R mysql:mysql /var/lib/mysql &&\mysql_install_db --user=mysql --ldata=/var/lib/mysql &&\# OPENRCsed -i 's/#rc_sys=""/rc_sys="lxc"/g' /etc/rc.conf &&\echo 'rc_provide="loopback net"' >> /etc/rc.conf &&\sed -i 's/^#\(rc_logger="YES"\)$/\1/' /etc/rc.conf &&\sed -i '/tty/d' /etc/inittab &&\sed -i 's/hostname $opts/# hostname $opts/g' /etc/init.d/hostname &&\sed -i 's/mount -t tmpfs/# mount -t tmpfs/g' /lib/rc/sh/init.sh &&\sed -i 's/cgroup_add_service /# cgroup_add_service /g' /lib/rc/sh/openrc-run.sh &&\echo 'rc_provide="loopback net"' >> /etc/rc.conf &&\/sbin/openrc &&\touch /run/openrc/softlevel &&\rc-update add nginx default &&\rc-update add php-fpm default &&\rc-update add mariadb default &&\# BASHtouch /root/.bashrc &&\echo "export PS1='\h:\w\\\$ '" >> /root/.bashrc &&\echo "alias r='fc -e -'" >> /root/.bashrc &&\echo "set -o vi" >> /root/.bashrc &&\echo "cat /etc/motd" >> /root/.bashrc &&\mv /tmp/motd /etc/motd &&\# SET MYSQL ROOT PASSWORDservice mariadb start &&\mysqladmin -u root password "root" &&\# CLEANUPrm -rf /var/cache/apk/* &&\rm -rf /tmp/*WORKDIR /rootENTRYPOINT ["/sbin/init"]

nginx.conf文件

# /etc/nginx/nginx.conf
user www;
worker_processes auto;pcre_jit on;
error_log /var/log/nginx/error.log warn;
include /etc/nginx/modules/*.conf;events {worker_connections 1024;
}http {include /etc/nginx/mime.types;default_type application/octet-stream;server_tokens off;client_max_body_size 1m;keepalive_timeout 65;sendfile on;tcp_nodelay on;ssl_prefer_server_ciphers on;ssl_session_cache shared:SSL:2m;gzip_vary on;log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /var/log/nginx/access.log main;server {listen                  80;root                    /www;index                   index.html index.htm index.php;server_name             localhost;client_max_body_size    32m;error_page              500 502 503 504  /50x.html;location = /50x.html {root              /var/lib/nginx/html;}location ~ \.php$ {fastcgi_pass      127.0.0.1:9000;fastcgi_index     index.php;include           fastcgi.conf;}}
}
整体文件包在头部

这篇关于alpine创建lnmp环境alpine安装nginx+php5.6+mysql的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/763258

相关文章

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp