前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker构建lnmp环境部署typecho

Docker构建lnmp环境部署typecho

作者头像
剧终
发布2020-08-27 15:44:04
7940
发布2020-08-27 15:44:04
举报
文章被收录于专栏:Linux学习日志Linux学习日志

下载镜像

docker pull cytopia/php-fpm-5.6
docker pull mariadb
docker pull nginx

查看本地镜像

[root@linux /]# docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
mariadb               latest              7c1c380b0dd8        31 hours ago        407MB
nginx                 latest              2622e6cca7eb        4 weeks ago         132MB
cytopia/php-fpm-5.6   latest              2943ebf1ef81        2 years ago         1.1GB

自定义网络

创建一个lnmp专用网络

[root@linux /]# docker network create lnmp  
[root@linux /]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
e517db42a8c9        bridge              bridge              local
af8272ab53c4        host                host                local
21930b09b6ae        lnmp                bridge              local
81db32272f98        none                null                local

PHP-FPM部署

mkdir -p /docker/nginx/{www,html,www,conf,conf.d,log} docker run --name myphp-fpm -v /docker/nginx/www:/www --net lnmp -d cytopia/php-fpm-5.6

--name myphp-fpm : 将容器命名为 myphp-fpm。 -v /docker/nginx/www:/www : 将主机中项目的目录 www 挂载到容器的 /www

Nginx部署

vim /docker/nginx/conf.d/defaults.conf
server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ [^/]\.php(/|$)  
        {
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;
        include        fastcgi_params;
    }
    }  

php:9000: 表示 php-fpm 服务的 URL. /www/: 是 myphp-fpm 中 php 文件的存储路径,映射到本地的 /docker/nginx/www 目录

启动nginx

docker run --name runoob-php-nginx -p 1000:80 -d -v /docker/nginx/www:/usr/share/nginx/html:ro -v /docker/nginx/conf.d:/etc/nginx/conf.d:ro --net lnmp nginx

-p 1000:80: 端口映射,把 nginx 中的 80 映射到本地的 1000 端口。 /docker/nginx/www: 是本地 html 文件的存储目录,/usr/share/nginx/html 是容器内 html 文件的存储目录。 /docker/nginx/conf/conf.d: 是本地 nginx 配置文件的存储目录,/etc/nginx/conf.d 是容器内 nginx 配置文件的存储目录。 --net lnmp 加入lnmp网络,并通过修改 nginx 的 /etc/hosts,把域名 php 映射成 php-fpm的IP,让 nginx 通过 php:9000 访问 php-fpm

接下来我们在 /docker/nginx/www 目录下创建 index.php

<?php
echo phpinfo();
?>

通过浏览器访问http://IP:1000测试php页面是否解析成功

请输入图片描述
请输入图片描述

mariadb部署

mkdir -p /docker/mariadb/data
docker run --name mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 -v /docker/mariadb/data:/var/lib/mysql --net lnmp -d mariadb

MYSQL_ROOT_PASSWORD=123 配置数据库root用户的密码为123

进入mariadb容器,数据库设置远程连接

docker exec -it mariadb bash
mysql -uroot -p123
mysql> create database typecho;  #创建数据库typecho
mysql> grant all privileges  on *.* to 'root'@'%' identified by '123';  #为root添加远程连接的能力 
mysql> flush privileges;  #刷新

开始安装typecho

cd /docker/nginx/www  #进入网站的根目录
wget http://typecho.org/downloads/1.1-17.10.30-release.tar.gz #下载typecho源码包
tar -xvzf 1.1-17.10.30-release.tar.gz  #解压源码包

浏览器访问http://IP:1000/

请输入图片描述
请输入图片描述

这里显示需要手动在根目录创建config.inc.php文件

请输入图片描述
请输入图片描述
请输入图片描述
请输入图片描述

如果登录后台页面,输入正确用户名密码后提示access denied进不去的解决方法 进入PHP-FPM 容器修改/etc/php.ini文件内的cgi.fix_pathinfo = 0修改成cgi.fix_pathinfo = 1

docker exec -it myphp-fpm bash 
vim /etc/php.ini
请输入图片描述
请输入图片描述

修改完成后重启PHP-FPM就能访问后台了

请输入图片描述
请输入图片描述
请输入图片描述
请输入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下载镜像
  • 查看本地镜像
  • 自定义网络
  • PHP-FPM部署
  • Nginx部署
  • 启动nginx
  • mariadb部署
  • 开始安装typecho
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档