ubuntu通过docker集成php mysql nginx frpc环境安装wordpress网站

#更新下系统
sudo apt update
sudo apt upgrade

#安装 Docker:
sudo apt-get install docker.io

#安装成功后查看版本
docker --version

#安装完成后,通过命令自启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker

#安装中文图形界面,IP+端口号9000就是访问地址
sudo docker run -d \
--name=portainer-zh \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
--restart=always \
6053537/portainer-ce
#使用sudo nano,新建如下三个文件,粘贴内容,保存 ctrl +o,然后回车,退出 ctrl +x
sudo mkdir /home/kaixinit/nmp #在home/kaixinit/新建nmp文件夹
cd /home/kaixinit/nmp                    #进入目录
sudo nano start.sh                       #新建start.sh
sudo nano Dockerfile                     #新建Dockerfile
sudo nano build.sql                      #新建build.sql
sudo wget http://www.kaixinit.com/wp-content/uploads/2024/03/frpc.tar.gz      #下载frpc文件
sudo chmod +x start.sh                   #ls -l查看,赋予start.sh执行权限
#创建目录
sudo mkdir -p /www/html                  #网站配置目录
sudo mkdir /www/conf                     #nginx配置目录
sudo mkdir /www/data                     #mysql 数据库配置目录
sudo mkdir /www/frpc                     #frpc 配置目录
sudo chmod -R 777 /www                   #赋予www文件夹777权限

#把配置文件default文件放置在/www/conf,或者把文件内容放入
sudo nano /www/conf/default              #新建default文件,粘贴内容,保存 ctrl +o,然后回车,退出 ctrl +x
#备注:如果修改conf文件,比如默认没有需增加index.php,需要先删除原有文件,不删除会占用localhost的解析
sudo rm -rf /www/conf/default             #需要先删除原有文件,不删除会占用localhost的解析
sudo nano /www/conf/default              #然后再新建写入文件
sudo docker exec -it nmp nginx -s reload     #重载

#把配置文件frpc.toml文件放在/www/frpc,或者把文件内容放入
sudo nano /www/frpc/frpc.toml            #新建frpc.toml文件,粘贴内容,保存 ctrl +o,然后回车,退出 ctrl +x
sudo chmod -R 777 /www/frpc/frpc.toml    #赋予777权限
#备注:
sudo tar -zcvf frpc.tar.gz frpc          #压缩文件
sudo rm -r /www/frpc/                    #删除文件夹
#开始安装镜像
cd /home/kaixinit/nmp                   #进入安装目录
sudo docker build -t nmp .              #开始安装,别忘记了最后的 .

#启动容器
sudo docker run -d --rm -v /www/data:/var/lib/mysql -v /www/conf:/etc/nginx/sites-available -v /www/html:/var/www/html -p 80:80 -p 443:443 -p 3306:3306 -v /www/frpc:/frpc/conf -p 7000:7000 --name nmp nmp
#查看运行结果
sudo docker run -it --rm -v /www/data:/var/lib/mysql -v /www/conf:/etc/nginx/sites-available -v /www/html:/var/www/html -p 80:80 -p 443:443 -p 3306:3306 -v /www/frpc:/frpc/conf -p 7000:7000 --name nmp nmp
#备注:
sudo docker images                      #查看镜像
sudo docker ps                          #查看容器
#安装phpmyadmin
sudo docker pull phpmyadmin            #拉取phpmyadmin
#启动容器
sudo docker run --name phpmyadmin -d -e PMA_ARBITRARY=1 -p 8080:80 phpmyadmin
#ip:8080登录创建数据库,数据库密码在 build.sql里面设置默认p123
#搭建wordpress网站
cd /www/html                           #进入网站配置目录
sudo wget https://cn.wordpress.org/latest-zh_CN.tar.gz #下载wordpress
sudo tar xf latest-zh_CN.tar.gz        #解压
sudo mv wordpress kaixinit.com            #将文件夹wordpress改名为honrt.com
sudo chmod -R 777 /www/html/kaixinit.com      #赋予权限
#备注
sudo rm -r /www/html/kaixinit.com      #删除kaixinit.com 文件夹

#网站更新问题执行需要FTP主机,解决mysql问题
sudo docker exec -it nmp bash          #进入容器
sudo chown www-data -R /var/www/html   #也可以写在start.sh倒数第二行
#构建调试镜像
# ENTRYPOINT ["/start.sh"]             #Dockerfile文件夹的/start.sh注释掉保存,在ENTRYPOINT前面加#
sudo docker build -t nmp1 .            #构建镜像,命名为nmp1,别忘记了最后的 .
#进入容器
sudo docker run -it --rm -v /www/data:/var/lib/mysql -v /www/conf:/etc/nginx/sites-available -v /www/html:/var/www/html -p 80:80 -p 443:443 -p 3306:3306 -v /www/frpc:/frpc/conf -p 7000:7000 --name nmp1 nmp1
nginx                                  #查看nginx,输入访问IP地址查看是否网页提示nginx
/start.sh                              #运行/start.sh,可以看下各位启动是否运行正常
exit                                   #退出容器
#start.sh配置文件内容
#!/bin/bash
#启动
k=0
service php8.1-fpm start
chown -R mysql:mysql /var/lib/mysql

if [ ! -d /var/lib/mysql/mysql ]; then
   k=1
fi
if [ "$k" -eq 1 ]; then
   sudo -u mysql mysql_install_db
fi
service mariadb start
sleep 2
if [ "$k" -eq 1 ]; then
   mysql < /build.sql
fi
/frpc/frpc -c  /frpc/conf/frpc.toml &
chown www-data -R /var/www/html
nginx -g 'daemon off;'
#Dockerfile配置文件内容
# 使用 Ubuntu 作为基础镜像
FROM ubuntu:latest

# 更新软件包并安装 Nginx 和 PHP
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
    apt-get install -y nginx php-fpm php-mysql  mariadb-server php-curl  php-dom php-imagick php-mbstring php-zip php-gd php-intl sudo 

#清理文件
RUN apt-get clean && \
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
#mysql设置远程登陆
RUN sed -i 's/^bind-address\s*=\s*127\.0\.0\.1/bind-address = 0.0.0.0/g' /etc/mysql/mariadb.conf.d/50-server.cnf
#数据库设置
COPY build.sql /
COPY start.sh /
COPY frpc.tar.gz /
RUN tar xf frpc.tar.gz
RUN rm -rf frpc.tar.gz
# 暴露 Nginx 端口和frpc 端口
EXPOSE 80 443 3306 7000
# 启动 Nginx 和 PHP-FPM
ENTRYPOINT ["/start.sh"]
#build.sql配置文件内容
CREATE USER 'root'@'%';
GRANT ALL PRIVILEGES ON *.* to 'root'@'%' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'p123' WITH GRANT OPTION;
FLUSH PRIVILEGES;
#default配置文件内容
server {
	listen 80 default_server;
	listen [::]:80 default_server;
	root /var/www/html/kaixinit.com;
	server_name kaixinit.com;
        index index.php;
	location / {
		try_files $uri $uri/ /index.php?$args;
		rewrite /wp-admin$ $scheme://$host$uri/ permanent;
	}
	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php8.1-fpm.sock;
	}

	}
#frpc.toml配置文件内容
serverAddr = "0.0.0.0"                 # 设置服务器IP地址,以阿里云为准

serverPort = 7000                      # 设置连接端口,和服务端端口一致

auth.token = "admin"                   # 身份验证令牌,frpc要与frps一致

[[proxies]]
name = "web-hkaixinit.com"
type = "http"
localIP = "127.0.0.1"
localPort = 80
customDomains = ["kaixinit.com","www.kaixinit.com"]   #绑定一级域名

原创文章,作者:开心电脑网,如若转载,请注明出处。

(3)
上一篇 2024年2月21日
下一篇 2024年3月10日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注