资讯专栏INFORMATION COLUMN

在docker的alpine类镜像上安装LNMP服务

itvincent / 2115人阅读

摘要:安装目的本文是用部署项目的第二篇是官方推荐的发行版,基于它制作,文件体积会小很多和常用的等相比还是会有一些区别,所以需要通过今天的练习进行一些了解。安装完成现在我们已经熟悉了,接下来我会练习用完成今天的工作,制作第一个自己的镜像。

安装目的

本文是《用docker部署WEB项目》的第二篇

alpine是docker官方推荐的linux发行版,基于它制作docker,文件体积会小很多

alpine和常用的centos、ubuntu等相比还是会有一些区别,所以需要通过今天的练习进行一些了解。

前置条件

学习 Docker从入门到实践

测试环境建议为windows10专业版和ubuntu16.04,其它环境本人未测试

已在服务器上安装docker ce和docker-compose

已学习过使用docker-compose安装pure-ftp

新建容器并进入内部
docker run -it -p 18080:80 -p 21:21 -p 3306-3306 php:7.2.4-fpm-alpine3.6 /bin/sh
指定国内镜像源

输入命令行打开repositories文件

cd /etc/apk
vi repositories

在文件中输入源地址:

http://mirrors.aliyun.com/alpine/v3.6/main
http://mirrors.aliyun.com/alpine/v3.6/community
安装nginx 安装
apt add --no-cache nginx
保护pid
cd /run
mkdir nginx
新建设置网页

新建一个网页index.html

cd /var/www/html
vi index.html

写一个简单的html页面或是只输入一行文字如

hello world
修改nginx的配置文件

修改配置文件/etc/nginx/conf.d/default.conf,只保留最基本配置

server {
        listen 80 default_server;
        location / {
                index index.html;
                root /var/www/html;
        }
        location = /404.html {
                internal;
        }
}
运行nginx

输入命令行重启nginx

nginx -s reload

打开浏览器,输入http://127.0.0.1:18080 ,看到网页显示hello world,nginx安装成功。

/usr/sbin/nginx -c /etc/nginx/nginx.conf
验证成功

打开浏览器,输入127.0.0.1,看到网页显示hello world,nginx安装成功。

在网站中启用php 添加PHP支持

修改/etc/nginx/conf.d/default.conf文件,增加php支持

server {
        listen 80;
        index index.html index.php;
        location / {
                index index.html;
                root /var/www/html;
                #实现PHP伪静态
                try_files $uri /index.php?$args;
        }

        # You may need this to prevent return 404 recursion.
        location = /404.html {
                internal;
        }
        #添加php支持
        location ~ .php {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
                include fastcgi_params;
        }
}
请确认 /etc/nginx/nginx.conf中包含include config.d/*.conf语句,否则default.conf将不会生效,另外,nginx.conf中如果已经有一个server服务器,也可能造成端口冲突,这些问题的处理方式,和其它linux发行版是一样的。
新建测试用的php文件

输入命令行新建一个info.php文件

vi info.php

写一个简单的php文件如:


输入命令行新建一个index.php文件

vi index.php

写一个简单的php文件如:


重启php和nginx服务

输入命令行重启服务

php-fpm --daemonize
nginx -s reload
验证成功

打开浏览器访问http://127.0.0.1:18080/info.php 会显示phpinfo信息,php支持已安装成功

打开浏览器访问http://127.0.0.1:18080/anyting 会显示hello php,伪静态已设置成功

安装常用php组件

alpine提供了docker-php-ext-install来安装常用的php扩展,当前已支持如下扩展

Possible values for ext-name:
bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter ftp gd gettext gmp hash iconv imap interbase intl json ldap mbstring mysqli oci8 odbc opcache pcntl pdo pdo_dblib pdo_firebird pdo_mysql pdo_oci pdo_odbc pdo_pgsql pdo_sqlite pgsql phar posix pspell readline recode reflection session shmop simplexml snmp soap sockets sodium spl standard sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zend_test zip

由于我们选择的镜像不是最基本的alpine而是php:7.2.4-fpm-alpine3.6 ,这些镜象其实都已经预装了,所以下面的命令只是一个示范,它会提示扩展已安装过:

命令来快速安装php组件

docker-php-ext-install fileinfo

如果要装这些以外的扩展就会比较复杂,这篇文章里就不提了。

安装完成

现在我们已经熟悉了alpine,接下来我会练习用dockerfile完成今天的工作,制作第一个自己的docker镜像。

版权申明

本文来自 第九区,转载请保留本段文字。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27257.html

相关文章

  • LNMP Docker 配置(持续更新 2017-11-21)

    摘要:原文链接目标一条命令建立环境,。这里只简单列举单容器运行方式,实际请使用。修订说明官方建议不再使用,而是使用容器网络来连接容器服务,也即容器互通。构建镜像运行容器测试访问看到页面。访问测试扩展。请访问查看。 原文链接:https://www.khs1994.com/docke... 目标:一条命令建立 LNMP 环境(MySQL、Redis、PHP-fpm、Nginx,etc)。这里只...

    phpmatt 评论0 收藏0
  • docker 搭建lnmp环境

    摘要:基础命令关于搜索下载查看或者删除单个删除多个删除查看信息占用关于查看重启停止杂项命令网络相关清除网络缓存查看网络列表查看详情挂载目录清除缓存查看列表查看详情系统相关系统信息查看占用清除所有包含构建失败的镜像没有被使用的网络配 docker基础命令 关于images 搜索 docker search php 下载 docker pull php:7.3.6-fpm-alpine3....

    msup 评论0 收藏0
  • docker 搭建lnmp环境

    摘要:基础命令关于搜索下载查看或者删除单个删除多个删除查看信息占用关于查看重启停止杂项命令网络相关清除网络缓存查看网络列表查看详情挂载目录清除缓存查看列表查看详情系统相关系统信息查看占用清除所有包含构建失败的镜像没有被使用的网络配 docker基础命令 关于images 搜索 docker search php 下载 docker pull php:7.3.6-fpm-alpine3....

    cucumber 评论0 收藏0
  • docker搭建lnmp环境

    摘要:项目由一组关联的应用容器组成的一个完整业务单元,在文件中定义。 docker搭建lnmp环境 一、Dockerfile定制镜像 二、docker-compose 三、docker-compose编排lnmp环境 1、mysql 2、redis 3、mongo 4、nginx 5、php 6、完整版 四、参考 有收获的话请加颗小星星,没有收获的话可以 反对 没有帮助 ...

    beanlam 评论0 收藏0

发表评论

0条评论

itvincent

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<