Docker——部署LNMP架构

news2025/2/24 15:25:01

目录

一、LNMP架构概述

1.项目环境

2.服务器环境

3.需求

二、搭建Linux系统基础镜像

三、部署Nginx

1.建立工作目录

2.编写Dockerfile脚本

3.准备Nginx.conf配置文件

4.生成镜像

5.创建自定义网络

6.启动镜像容器

7.验证Nginx

三、部署Mysql

1.建立工作目录

2.编写Dockerfile

3.准备my.cnf文件

4.生成镜像

5.启动镜像容器

6.验证Mysql

四、部署Php

1.建立工作目录

2.编写Dockerfile

3.准备php.ini、php-fpm.conf和www.conf配置文件

3.1编写php.ini配置文件

3.2编写php-fpm.conf配置文件

3.3编写www.conf配置文件

4.生成镜像

5.启动镜像容器

6.验证php

五、启动Wordpress服务

1.Mysql数据库授权

2.浏览器访问测试


一、LNMP架构概述

L:Linux平台,操作系统,另外桑组件的运行平台

N:nginx 提供前端页面

M:MySQL,开源关系的数据库,主要是用来保存用户账号信息。

P:PHP,开发一种动态页面的编程语言,解释解析动态页面,起到中间件的作用。(nginx和数据库的中间,沟通nginx和数据库,已请求数据库上的信息)

lnmp:企业网站的应用模式之一。早期的论坛架构就是lnmp搭建的

1.项目环境

公司在实际的生产环境中,需要使用Docker技术在一台主机上创建LNMP服务并运行Wordpress网站平台,然后对此服务进行相关的性能调优和管理工作。

2.服务器环境

容器IP地址主要软件
Nginx172.20.0.10Docker-Nginx
Mysql172.20.0.20Docker-Mysql
PHP172.20.0.30Docker-Php

3.需求

  • 使用Docker创建LNMP环境并运行Wordpress网站
  • 限制Nginx容器最多使用500MB的内存和1GB的Swap
  • 限制Mysql容器写/dev/sda的速率为10MB/s
  • 将所有容器进行,然后将Docker镜像

二、搭建Linux系统基础镜像

[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled
[root@localhost ~]# docker pull centos:7
#从公有仓库中下载 centos7 作为系统基础镜像
[root@localhost ~]#docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       7         eeb6ee3f44bd   2 years ago   204MB

三、部署Nginx

1.建立工作目录

[root@localhost ~]# mkdir /opt/nginx
[root@localhost ~]# cd /opt/nginx
[root@localhost nginx]# rz -E
rz waiting to receive.
#上传 nginx 安装包 nginx-1.22.0.tar.gz
[root@docker nginx]# rz -E
rz waiting to receive.
#上传 wordpress 服务包 wordpress-6.1.1-zh_CN.zip

2.编写Dockerfile脚本

[root@localhost nginx]# vim Dockerfile
 
FROM centos:7
#用户信息
MAINTAINER this is nginx image <lnmp>
#添加环境包
RUN yum -y update
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make
RUN useradd -M -s /sbin/nologin nginx
#上传nginx软件压缩包,并解压
ADD nginx-1.22.0.tar.gz /opt/
#指定工作目录
WORKDIR /opt/nginx-1.22.0
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make && make install
ENV PATH /usr/local/nginx/sbin:$PATH
ADD nginx.conf /usr/local/nginx/conf/
ADD wordpress-6.1.1-zh_CN.zip /usr/local/nginx/html
RUN chmod 777 -R /usr/local/nginx/html/
VOLUME [ "/usr/local/nginx/html/" ]
#指定http和https端口
EXPOSE 80
EXPOSE 443
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
#关闭 nginx 在后台运行
#添加宿主机中run.sh到容器中
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]
#CMD ["/usr/local/sbin/nginx", "-g", "daemon off;"]
[root@localhost nginx]#vim run.sh
[root@localhost nginx]#cat run.sh 
#!/bin/bash
/usr/local/nginx/sbin/nginx

3.准备Nginx.conf配置文件

[root@localhost nginx]# vim nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        charset utf-8;
        location / {
            root   html;
            index  index.html index.php;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location ~ \.php$ {
            root           html;
            fastcgi_pass   172.20.0.30:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}

4.生成镜像

[root@localhost nginx]# docker build -t nginx:lnmp .
[root@localhost nginx]#docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        lnmp      c58b74b073a6   2 minutes ago   945MB
centos       7         eeb6ee3f44bd   2 years ago     204MB

5.创建自定义网络

[root@localhost nginx]#docker network create --subnet=172.20.0.0/16 --opt "com.docker.network.bridge.name"="docker1" mynetwork
b670bf7109003688dd5fa7c5d814527f842997d7f3dfdfcb04fc0894701e4057
[root@localhost nginx]#docker network ls
NETWORK ID     NAME        DRIVER    SCOPE
e2cc5ac53bc5   bridge      bridge    local
675fa9e17777   host        host      local
b670bf710900   mynetwork   bridge    local
280bac5f6c07   none        null      local
[root@localhost nginx]#ifconfig 
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::42:d7ff:fe17:f6c7  prefixlen 64  scopeid 0x20<link>
        ether 02:42:d7:17:f6:c7  txqueuelen 0  (Ethernet)
        RX packets 39915  bytes 1611972 (1.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 73683  bytes 138871014 (132.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.20.0.1  netmask 255.255.0.0  broadcast 172.20.255.255

6.启动镜像容器

[root@localhost nginx]#docker run -d --name nginx -p 80:80 -m 500m --memory-swap 1g --net mynetwork --ip 172.20.0.10 nginx:lnmp
e0dbb5d14e798e1fa315ad2d58aeb530bd9dce52ed85d53e06b4ff57d5b2343c

[root@localhost nginx]#docker ps
CONTAINER ID   IMAGE        COMMAND     CREATED          STATUS          PORTS                                        NAMES
e0dbb5d14e79   lnmp:nginx   "/run.sh"   15 seconds ago   Up 14 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp, 443/tcp   nginx


······


[root@localhost nginx]# docker inspect nginx
 "Networks": {
                "mynetwork": {
                    "IPAMConfig": {
                        "IPv4Address": "172.20.0.10"

7.验证Nginx

[root@localhost nginx]#curl 172.20.0.10
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

三、部署Mysql

1.建立工作目录

[root@localhost nginx]# mkdir /opt/mysql
[root@localhost nginx]# cd /opt/mysql/
[root@localhost mysql]# rz -E
rz waiting to receive.
#传入mysql安装包mysql-boost-5.7.20.tar.gz

2.编写Dockerfile

[root@localhost mysql]# vim Dockerfile 
 
FROM centos:7
MAINTAINER this is mysql image <lnmp>
RUN yum -y install ncurses ncurses-devel bison cmake pcre-devel zlib-devel gcc gcc-c++ make;useradd -M -s /sbin/nologin mysql
ADD mysql-boost-5.7.20.tar.gz /usr/local/src/
WORKDIR /usr/local/src/mysql-5.7.20/
RUN cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1;make -j4;make install
ADD my.cnf /etc/my.cnf
EXPOSE 3306
RUN chown -R mysql:mysql /usr/local/mysql/;chown mysql:mysql /etc/my.cnf
WORKDIR /usr/local/mysql/bin/
RUN ./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data;cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/;systemctl enable mysqld
ENV PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
VOLUME [ "/usr/local/mysql" ]
CMD ["/usr/sbin/init"]

3.准备my.cnf文件

[root@localhost mysql]# vim my.cnf
 
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock
 
[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

4.生成镜像

[root@docker mysql]# docker build -t mysql:lnmp .
[root@localhost mysql]#docker images
REPOSITORY   TAG       IMAGE ID       CREATED              SIZE
mysql        lnmp      e27bd3614a1d   About a minute ago   10.1GB
lnmp         nginx     a5c5710e1bf1   About an hour ago    895MB
centos       7         eeb6ee3f44bd   2 years ago          204MB

5.启动镜像容器

[root@localhost mysql]# docker run --name=mysql -d --privileged --device-write-bps /dev/sda:10M -v /usr/local/mysql --net mynetwork --ip 172.20.0.20 mysql:lnmp
d18533a527b17c3a1aacf0eb72f264c77acbe0ceb20ab23be88c7dcabe4bc52c
[root@localhost mysql]#docker ps -a
CONTAINER ID   IMAGE        COMMAND            CREATED          STATUS          PORTS                                        NAMES
d18533a527b1   mysql:lnmp   "/usr/sbin/init"   48 seconds ago   Up 32 seconds   3306/tcp                                     mysql
e0dbb5d14e79   lnmp:nginx   "/run.sh"          59 minutes ago   Up 59 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 443/tcp   nginx

6.验证Mysql

[root@localhost mysql]#docker exec -it mysql bash
[root@d18533a527b1 bin]#  systemctl status mysqld
[root@d18533a527b1 bin]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: activating (start) since Sun 2024-04-28 01:23:41 UTC; 1min 6s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 79 ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 48 ExecStartPre=/usr/local/mysql/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
   CGroup: /docker/d18533a527b17c3a1aacf0eb72f264c77acbe0ceb20ab23be88c7dcabe4bc52c/system.slice/mysqld.service
           └─83 /usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/l...

Apr 28 01:23:44 d18533a527b1 mysqld[79]: 2024-04-28T01:23:44.992564Z 0 [....
Apr 28 01:23:44 d18533a527b1 mysqld[79]: 2024-04-28T01:23:44.993599Z 0 [....
Apr 28 01:23:44 d18533a527b1 mysqld[79]: 2024-04-28T01:23:44.993627Z 0 [....
Apr 28 01:23:44 d18533a527b1 mysqld[79]: 2024-04-28T01:23:44.997795Z 0 [...s
Apr 28 01:23:44 d18533a527b1 mysqld[79]: 2024-04-28T01:23:44.997971Z 0 [....
Apr 28 01:23:44 d18533a527b1 mysqld[79]: Version: '5.7.20'  socket: '/us...n
Apr 28 01:23:44 d18533a527b1 mysqld[79]: 2024-04-28T01:23:44.997977Z 0 [....
Apr 28 01:23:44 d18533a527b1 mysqld[79]: 2024-04-28T01:23:44.997979Z 0 [...s
Apr 28 01:23:45 d18533a527b1 systemd[1]: New main PID 83 does not belong....
Apr 28 01:23:45 d18533a527b1 systemd[1]: New main PID 83 does not belong....
Hint: Some lines were ellipsized, use -l to show in full.

四、部署Php

1.建立工作目录

[root@localhost  mysql]# mkdir ../php
[root@localhost  mysql]# cd ../php/
[root@localhost  php]# rz -E
rz waiting to receive.
#传入php安装包php-7.1.10.tar.bz2

2.编写Dockerfile

[root@localhost php]# vim Dockerfile 
 
FROM centos:7
MAINTAINER this is php image <lnmp>
RUN yum install -y gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel \
gcc gcc-c++ make pcre-devel;useradd -M -s /sbin/nologin nginx
ADD php-7.1.10.tar.bz2 /usr/local/src/
WORKDIR /usr/local/src/php-7.1.10
RUN ./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip ; make -j 4 ; make install
ENV PATH /usr/local/php/bin:/usr/local/php/sbin:$PATH
ADD php.ini     /usr/local/php/lib/
ADD php-fpm.conf /usr/local/php/etc/
ADD www.conf /usr/local/php/etc/php-fpm.d/
EXPOSE 9000
CMD /usr/local/php/sbin/php-fpm -F

3.准备php.ini、php-fpm.conf和www.conf配置文件

3.1编写php.ini配置文件

该配置文件模板位于安装目录的 php-7.1.10/php.ini-development 位置

[root@localhost php]# vim php.ini
 
#939行,取消注释,修改
date.timezone = Asia/Shanghai
#1170行,修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
[root@localhost php]# egrep -v "^;" php.ini | egrep -v "^$"
[PHP]
engine = On
short_open_tag = Off
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = -1
disable_functions =
disable_classes =
zend.enable_gc = On
expose_php = On
max_execution_time = 30
max_input_time = 60
memory_limit = 128M
error_reporting = E_ALL
display_errors = On
display_startup_errors = On
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = On
html_errors = On
variables_order = "GPCS"
request_order = "GP"
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 8M
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
default_charset = "UTF-8"
doc_root =
user_dir =
enable_dl = Off
file_uploads = On
upload_max_filesize = 2M
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
[CLI Server]
cli_server.color = On
[Date]
date.timezone = Asia/Shanghai
[filter]
[iconv]
[intl]
[sqlite3]
[Pcre]
[Pdo]
[Pdo_mysql]
pdo_mysql.cache_size = 2000
pdo_mysql.default_socket=
[Phar]
[mail function]
SMTP = localhost
smtp_port = 25
mail.add_x_header = On
[SQL]
sql.safe_mode = Off
[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
[Interbase]
ibase.allow_persistent = 1
ibase.max_persistent = -1
ibase.max_links = -1
ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
ibase.dateformat = "%Y-%m-%d"
ibase.timeformat = "%H:%M:%S"
[MySQLi]
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3306
mysqli.default_socket = /usr/local/mysql/mysql.sock
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off
[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = On
[OCI8]
[PostgreSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0
[bcmath]
bcmath.scale = 0
[browscap]
[Session]
session.save_handler = files
session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.sid_length = 26
session.trans_sid_tags = "a=href,area=href,frame=src,form="
session.sid_bits_per_character = 5
[Assertion]
zend.assertions = 1
[COM]
[mbstring]
[gd]
[exif]
[Tidy]
tidy.clean_output = Off
[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit = 5
[sysvshm]
[ldap]
ldap.max_links = -1
[mcrypt]
[dba]
[opcache]
[curl]
[openssl]

3.2编写php-fpm.conf配置文件

该配置文件位于 /usr/local/php/etc/php-fpm.conf.default

[root@localhost php]# vim php-fpm.conf 
 
#17行,删除注释符号“;”
pid = run/php-fpm.pid
[root@localhost php]# egrep -v "^;" php-fpm.conf | egrep -v "^$"
[global]
pid = run/php-fpm.pid
include=/usr/local/php/etc/php-fpm.d/*.conf

3.3编写www.conf配置文件

该配置文件位于 usr/local/php/etc/php-fpm.d/www.conf.default

[root@localhost php]# vim www.conf 
 
#23、24行,修改用户和组
user = nginx
group = nginx
#36行,修改监听IP和端口为容器IP:9000端口
listen = 172.20.0.30:9000
[root@localhost php]# egrep -v "^;" www.conf | egrep -v "^$"
[www]
user = nginx
group = nginx
listen = 172.20.0.30:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

4.生成镜像

[root@localhost  php]# docker build -t php:lnmp .
[root@localhost php]#docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
php          lnmp      145c2632ddf3   3 minutes ago    1.4GB
mysql        lnmp      e27bd3614a1d   22 minutes ago   10.1GB
lnmp         nginx     a5c5710e1bf1   2 hours ago      895MB
centos       7         eeb6ee3f44bd   2 years ago      204MB

5.启动镜像容器

[root@localhost php]# docker run -itd --name php --net mynetwork --ip 172.20.0.30 -p 9000:9000 --volumes-from nginx --volumes-from mysql php:lnmp
02254fedc4e6976998b5a60083c28af6040cdfcd3d16b2cc3a6c5dc40b0c5972
[root@localhost php]#docker ps
CONTAINER ID   IMAGE        COMMAND                   CREATED             STATUS             PORTS                                        NAMES
02254fedc4e6   php:lnmp     "/bin/sh -c '/usr/lo…"   12 seconds ago      Up 11 seconds      0.0.0.0:9000->9000/tcp, :::9000->9000/tcp    php
d18533a527b1   mysql:lnmp   "/usr/sbin/init"          20 minutes ago      Up 20 minutes      3306/tcp                                     mysql
e0dbb5d14e79   lnmp:nginx   "/run.sh"                 About an hour ago   Up About an hour   0.0.0.0:80->80/tcp, :::80->80/tcp, 443/tcp   nginx

6.验证php

[root@localhost php]# docker exec -it php bash
[root@localhost php]#docker exec -it php bash
[root@02254fedc4e6 php-7.1.10]# ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.4 113028  7520 pts/0    Ss+  01:43   0:00 php-fpm: m
nginx         7  0.0  0.2 113028  3772 pts/0    S+   01:43   0:00 php-fpm: p
nginx         8  0.0  0.2 113028  3772 pts/0    S+   01:43   0:00 php-fpm: p
root          9  0.1  0.1  11828  1888 pts/1    Ss   01:44   0:00 bash
root         23  0.0  0.0  51732  1728 pts/1    R+   01:44   0:00 ps -aux

五、启动Wordpress服务

1.Mysql数据库授权

[root@localhost nginx]# docker exec -it mysql bash
[root@0a4ad94e00e8 bin]# mysql -u root -p
Enter password: 
#初始密码为空
mysql> create database wordpress;
Query OK, 1 row affected (0.00 sec)
 
mysql> grant all privileges on wordpress.* to 'wordpress'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
 
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

2.浏览器访问测试

访问http://192.168.241.11/wordpress/index.php

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1638640.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MathType打开的窗口太多 MathType说打开窗口太多无法复制怎么解决

在数学文档编辑中&#xff0c;MathType作为一款常用的数学公式编辑工具&#xff0c;使用过程中&#xff0c;我们常常会遇到一些问题&#xff0c;比如MathType打开的窗口过多导致软件运行缓慢甚至崩溃&#xff0c;以及在复制过程中出现“打开窗口太多&#xff0c;无法复制”的提…

2024年教你怎么将学浪视频保存到本地

你是否曾为无法将学浪视频保存到本地而烦恼&#xff1f;现在&#xff0c;我们将在2024年教给你如何解决这个问题&#xff01;只需简单几步操作&#xff0c;即可轻松将学浪视频保存到您的本地设备&#xff0c;随时随地想看就看&#xff01; 我已经将下载学浪的工具打包好了&…

使用FPGA实现并行乘法器

介绍 并行乘法器&#xff0c;那么它的输入输出就都是并行的数据了&#xff0c;相对来说&#xff0c;内部的结构就更复杂了&#xff0c;占用的资源就更多了。以后有需要完成这部分操作的话都可以调用IP核。 乘法器模块 这是一个纯组合逻辑电路&#xff0c;我们也知道&#xff0…

C++--const成员及const取地址操作符重载

前言 今天我们来了解一下const成员的基本使用,以及const取地址重载的运用 来开始今天的学习 const成员 1.基本定义, 将const修饰的“成员函数”称之为const成员函数&#xff0c;const修饰类成员函数&#xff0c;实际修饰该成员函数 隐含的*this指针&#xff0c;表明在该成员函…

队列以及信号量

什么是队列 队列又称消息队列&#xff0c;是一种常用于任务间通信的数据结构&#xff0c;队列可以在任务与任务间、中断和任 务间传递信息。 为什么不使用全局变量&#xff1f; 如果使用全局变量&#xff0c;兔子&#xff08;任务1&#xff09;修改了变量 a &#xff0c;等待树…

LeetCode LCR 179. 和为s的两个数字

原题链接&#xff1a;LCR 179. 查找总价格为目标值的两个商品 - 力扣&#xff08;LeetCode&#xff09; 题目的意思&#xff1a;通过给定的数组&#xff0c;找出两个值&#xff0c;相加并等于目标值。 第一种思路&#xff0c;暴力枚举&#xff0c;伪代码如下&#xff1a; for (…

【Linux】详解信号的保存信号屏蔽字的设置

一、信号处理的一些常见概念 实际执行信号的处理动作称为信号递达(Delivery)。信号从产生到递达之间的状态,称为信号未决(Pending)。进程可以选择阻塞 (block )某个信号。被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作。注意&#xff1a;阻…

传感器测试脉冲电源 —测试传感器性能的电源设备

传感器测试脉冲电源是一种专门用于测试传感器性能的电源设备。传感器测试脉冲电源可以输出不同幅值、频率和形状的脉冲信号&#xff0c;以模拟传感器在实际应用中可能遇到的各种电压和电流波形。通过这种电源&#xff0c;可以对传感器进行全面的性能测试&#xff0c;包括动态响…

信号,信号列表,信号产生方式,信号处理方式

什么是信号 信号在我们的生活中非常常见&#xff1b;如红绿灯&#xff0c;下课铃&#xff0c;游戏团战信号&#xff0c;这些都是信号&#xff1b;信号用来提示接收信号者行动&#xff0c;但接收信号的人接收到信号会进行一系列的行为&#xff0c;完成某个动作&#xff1b;这就…

qt学习篇---界面按键关联(信号和槽)

目录 1.qt基础 2.做一个界面 创建project UI界面设计 信号和槽 1.控件改名字 2.什么是信号和槽 3.怎么关联信号和槽 自动关联 手动关联 1.qt基础 qt可移植性强&#xff0c;不久会用到MCU。很有意义学习 2.做一个界面 创建project 不要中文路径 选择QWidget .pro文件…

字符串函数与字符函数运用(1)

字符串与字符函数介绍1 前言一、字符分类函数字符函数练习 二、字符函数转换1.引入库2.代码改进 字符串函数strlen函数strcpy 结尾 前言 字符串函数大概有以下这几种 strcpy、strcat 、strcmp、strncpy、strncat、strncmp、strstr、strtok、strerror 这些函数可以很好的解决你…

数据结构的队列(c语言版)

一.队列的概念 1.队列的定义 队列是一种常见的数据结构&#xff0c;它遵循先进先出的原则。类似于现实生活中排队的场景&#xff0c;最先进入队列的元素首先被处理&#xff0c;而最后进入队列的元素则要等到前面的元素都被处理完后才能被处理。 在队列中&#xff0c;元素只能…

什么,你的EasyExcel导出一万条数据就OOM了?

前言 前段时间在做一个导出的功能&#xff0c;本以为是平平无奇的一个功能。就用公司内部的一个导出工具类三下五除二就写完了&#xff0c;做法是直接查全量数据&#xff0c;然后直接往Excel里写。一开始没多少数据也没什么问题&#xff0c;但是当数据量逐渐多了起来后&#x…

【OpenCV • c++】图像平滑处理(2) —— 方框滤波 | 盒滤波 | 源码分析

文章目录 前言一、方框滤波代码演示 二、源码分析 前言 前文我们了解了什么是图像平滑处理、图像滤波、邻域算子与线性邻域滤波、以及如何使用方框滤波&#xff0c;本文我们来分析一下方框滤波的源码。 一、方框滤波 void boxFilter(InputArray src, OutputArray dst, int ddep…

面试常见 | 项目上没有亮点,如何包装?

很多技术人在公司用的老技术&#xff0c;而且很多都是搬业务代码且做枯燥乏味的CRUD&#xff0c;在面试提交简历或做自我介绍的时候并不突出&#xff0c;这种情况&#xff0c;如何破局&#xff1f; 首先不管你做的啥项目&#xff0c;全世界不可能只有你自己在做&#xff0c;比…

Android Handler用法

Android Handler用法 为什么要设计Handler机制&#xff1f;Handler的用法1、创建Handler2、Handler通信2.1 sendMessage 方式2.2 post 方式 Handler常用方法1、延时执行2、周期执行 HandlerThread用法主线程-创建Handler子线程-创建Handler FAQMessage是如何创建主线程中Looper…

Agent AI智能体的未来

未来社会中的智能使者&#xff1a;Agent AI智能体的可能性与挑战 随着科技的迅速进步&#xff0c;人工智能已深入我们生活的各个领域&#xff0c;而Agent AI智能体作为与人工智能紧密相关的一个分支&#xff0c;其未来发展无疑是值得期待的。Agent AI智能体&#xff0c;或称为…

JAVA Coding 规范

Coding 规范 文章目录 Coding 规范一.文件规范1.1 声明1.2 缩进1.3 空行1.4 空格1.5 对齐1.6 小括号1.7 花括号1.8 代码长度 二.命名规范2.1 命名总则2.2 命名空间2.3 类与接口2.4 方法命名2.5 属性命名2.6 常量命名2.7 变量命名 三.语句规范3.1 语句总则3.2 循环语句3.3 Switc…

【note3】linux驱动基础,

文章目录 1.互斥锁和自旋锁选择&#xff1a;自旋锁&#xff08;开销少&#xff09;的自旋时间和被锁住的代码执行时间成正比关系2.linux错误码&#xff1a;64位错误指针指向内核空间最后一页&#xff0c;对于 1.互斥锁和自旋锁选择&#xff1a;自旋锁&#xff08;开销少&#x…

QT:核心控件-QWidget

文章目录 控件enableobjectNamegeometrysetWindowTitleopacitycursorFonttooltipstyleSheet 控件 什么是控件&#xff1f; 如上所示&#xff0c;就是控件&#xff0c;而本篇要做的就是对于这些控件挑选一些比较有用的常用的进行讲解分析 在QT的右侧&#xff0c;会有对应的空间…