day22:lamp项目部署

一,lamp概述

lamp概述

LAMP 是一组开源软件的缩写,用于搭建动态网站或Web应用程序的基础环境。LAMP 代表了四个主要的组成部分:

  1. Linux:操作系统,LAMP 环境的基础。通常使用的是 Linux 发行版,如 CentOS、Ubuntu 等。
  2. Apache:Web 服务器软件,用于处理客户端请求和响应,是 LAMP 堆栈中的服务器组件。
  3. MySQLMariaDB:数据库管理系统,用于存储和管理数据。MySQL 是最常见的选择,但 MariaDB 是 MySQL 的一个分支,功能和兼容性较高。
  4. PHPPerlPython:编程语言,用于开发Web应用的动态内容。最常用的是 PHP。

组件作用

  • Linux:提供操作系统和基础环境。它为所有其他组件提供支持,管理硬件资源,处理任务和进程,是整个堆栈的运行平台。

  • Apache:作为 Web 服务器,负责接收和处理客户端请求(如 HTTP 请求),并根据请求返回网页或数据。它可以处理静态内容(如 HTML 文件)和动态内容(由 PHP 等语言生成)。它还支持多种认证和安全配置,确保网站的正常运行。

  • MySQL/MariaDB:数据库管理系统,负责存储和管理应用程序的数据(如用户信息、产品目录、文章等)。MySQL 和 MariaDB 都使用 SQL(结构化查询语言)来与数据库进行交互,执行增删改查等操作。

  • PHP/Python/Perl:用于开发动态网页的脚本语言,主要处理用户的交互请求,生成动态内容。例如,PHP 脚本可以从数据库中提取信息,并将其格式化后返回给用户的浏览器。PHP 是 LAMP 堆栈中最常用的语言,但 Python 和 Perl 也可以在不同场景中使用。

构建顺序

  • 安装 Linux 操作系统:首先,必须在服务器上安装一个 Linux 发行版。常见的选择有 CentOS、Ubuntu、Debian 等。

  • 安装 Apache Web 服务器:在 Linux 上安装 Apache,配置并启动 Web 服务器。这通常包括设置虚拟主机、配置端口等。

  • 安装 MySQL 或 MariaDB:安装数据库服务器,配置用户和权限。数据库用于存储应用程序的数据。

  • 安装 PHP/Python/Perl:选择一种服务器端语言(如 PHP),并配置与 Apache 和 MySQL 的集成。安装所需的库和模块(如 PHP 的 MySQL 扩展)。

  • 配置和优化:安装完组件后,通常需要进行一些基本的配置和性能调优,如调整 Apache 配置文件、数据库优化、启用缓存等。

  • 开发和部署应用程序:完成环境搭建后,可以开始开发 Web 应用或将现有的应用程序部署到服务器上。

其他形式

LAMP 组合有一些不同的变体,通常是基于 LAMP 的某个组件替换为其他流行的技术。常见的替代形式包括:

  • LEMP:替代 Apache 为 Nginx(发音为 "Engine-X")作为 Web 服务器。Nginx 是一个轻量级、高效的 Web 服务器,常用于高并发的环境。

    • L: Linux
    • E: Nginx (pronounced "Engine-X")
    • M: MySQL / MariaDB
    • P: PHP
  • LAPP:替代 MySQL 为 PostgreSQL(一个功能更强大的开源关系型数据库管理系统)。

    • L: Linux
    • A: Apache
    • P: PostgreSQL
    • P: PHP
  • LEPP:将数据库改为 PostgreSQL,同时使用 Nginx 作为 Web 服务器。

    • L: Linux
    • E: Nginx
    • P: PostgreSQL
    • P: PHP
  • MEAN:替代传统的 LAMP 组件为基于 JavaScript 的全栈技术,用于构建现代化的 Web 应用。

    • M: MongoDB(NoSQL 数据库)
    • E: Express.js(Node.js 框架)
    • A: Angular(前端框架)
    • N: Node.js(后端 JavaScript 环境)
  • WAMP:使用 Windows 操作系统而非 Linux。

    • W: Windows
    • A: Apache
    • M: MySQL
    • P: PHP
  • MAMP:类似 WAMP,但是搭建环境是在 macOS 系统上。

    • M: macOS
    • A: Apache
    • M: MySQL
    • P: PHP

每种变体的选择取决于应用场景、性能需求、开发语言偏好等因素。

二,discuz论坛系统部署

环境准备

1,做好网络准备(要可以连通外网,最好是静态ip但是可以不是)
#关闭无线网卡(有时候打开可能会导致网络无法访问)
systemctl stop NetworkManager
systemctl disable NetworkManager

#测试连通性
ping www.baidu.com
2,设置主机名
hostnamectl set-hostname lamp
3,关闭防火墙
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux
getenforce
setenforce 0
#永久关闭selinux
vim /etc/selinux/config
#修改SELINUX=disabled即可
4,配置yum源

【Linux】CentOS更换国内阿里云yum源(超详细)_centos换源-CSDN博客

#安装拓展源
yum install -y epel-release

安装apache

1,检测apache是否已经安装
rpm [选项] [命令] [软件包]
-i:安装软件包
-U:升级或安装软件包
-e:卸载软件包
-q:查询软件包
-qa:查询所有已安装的软件包
-qi:查询已安装软件包的详细信息
-ql:列出已安装软件包的所有文件
-qf:查询文件属于哪个已安装软件包
-V:验证已安装软件包的完整性
-R:列出包的依赖关系
-p:查看 .rpm 包文件内容
--force:强制安装或卸载软件包

rpm -qa |grep httpd
2,yum安装apache(软件叫httpd)
yum install -y httpd
3,修改配置文件
#配置/etc/httpd/conf/httpd.conf
vim  /etc/httpd/conf/httpd.conf
#添加或者修改为ServerName localhost:80
#(80是指定访问端口)(localhost,表示主机地址到时候写ip或者域名都可以)
# 这个时候如果已经启动就可以重启进行生效,没有启动直接启动就可以了
systemctl start httpd
systemctl enable httpd #(建议开机启动)
 
4,查看监听端口
netstat -ntlp |grep httpd

安装mysql

1,检测mysql是否安装
rpm -q mysql
2,下载mysql的yum
wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
3,安装mysql扩展源与服务端
rpm -ivh mysql80-community-release-el7-5.noarch.rpm
#(这是安装扩展源)
yum install mysql-community-server -y
#如果验证报错就输入这条命令(etc/yum.repos.d/下)
sed -i 's/check=1/check=0/g' *.repo
4,启动mysql
systemctl start mysqld
systemctl enable mysqld
#或者
systemctl enable mysqld --now
5,查看监听端口
netstat -tulpn | grep mysql
netstat [选项]
-a: 显示所有连接和监听的端口
-t: 显示 TCP 协议的连接
-u: 显示 UDP 协议的连接
-l: 显示正在监听的端口
-n: 以数字格式显示地址和端口号(不进行域名解析)
-p: 显示与每个连接相关的进程 PID 和程序名称
-r: 显示路由表信息
-i: 显示网络接口的统计信息
-s: 显示每个协议的统计信息
-c: 持续输出网络连接信息(实时更新)
-tuln: 显示 TCP 和 UDP 协议正在监听的端口,并以数字格式显示
-g: 显示所有组播连接
-v: 显示详细信息
-A: 显示指定类型的套接字(如 UNIX 套接字)
-h: 显示帮助信息
6,初始化数据库(建议使用下面中间的)
命令(MySQL 8.0 版本及以上):
sudo mysqld --initialize
说明:
--initialize:用于初始化 MySQL 数据库。该命令会创建系统数据库、数据目录和临时文件等。
默认情况下,它会为 root 用户生成一个临时的随机密码,并将该密码存储在 MySQL 的错误日志中。

执行初始化命令后,你可以通过查看错误日志文件(通常在 /var/log/mysqld.log)来查找 root 用户的临时密码。

查看错误日志:
sudo cat /var/log/mysqld.log | grep 'temporary password'
通过临时密码登录 MySQL 并修改密码:
mysql -u root -p
输入刚刚找到的临时密码,然后修改 root 用户的密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
------------------------------------------------------
对于 MySQL 5.7 及以下版本
sudo mysqld --initialize-insecure
这个命令会创建一个没有密码的 root 用户,适用于不想使用临时密码的情况。

确保在初始化数据库前,/var/lib/mysql 或你指定的数据目录已经存在并具有正确的权限。
#补充(建议使用这个)
mysql_secure_installation 是 MySQL 提供的一个脚本,用于对 MySQL 数据库进行初始安全配置,包括设置 root 密码、删除匿名用户、禁用远程 root 登录、删除测试数据库等。这是提高 MySQL 安全性的一个常见步骤。

1运行 mysql_secure_installation 脚本——》运行以下命令启动 MySQL 安全配置脚本:
    sudo mysql_secure_installation
2脚本流程
    Enter current password for root (enter for none):
        输入当前 root 用户的密码。如果是第一次安装,默认没有密码(或者是你在初始化时生成的临时密码)。如果你没有设置密码,按回车键继续。(有些版本直接跳过)

    Set root password? [Y/n]:
        是否设置 root 用户的密码。如果选择 Y,将提示你输入并确认新的 root 密码。
        建议设置一个强密码。密码:Ly123456|

    Remove anonymous users? [Y/n]:
        是否删除匿名用户。建议选择 Y,因为匿名用户存在安全风险。

    Disallow root login remotely? [Y/n]:
        是否禁用 root 用户的远程登录。建议选择 Y,这样只有本地可以登录 root 用户,增加安全性。

    Remove test database and access to it? [Y/n]:
        是否删除 test 数据库及其访问权限。建议选择 Y,因为 test 数据库是一个默认存在的测试数据库,通常不需要使用。

    Reload privilege tables now? [Y/n]:
        是否重新加载权限表以使配置生效。选择 Y

3完成配置

    一旦你完成上述步骤,mysql_secure_installation 脚本将配置好你的 MySQL 安全设置,包括密码、权限和不必要的用户和数据库。
登录 MySQL:
mysql -u root -p'密码'
查看当前密码政策
SHOW VARIABLES LIKE 'validate_password%';
修改密码策略
validate_password.check_user_name
    默认值: ON
    功能: 如果启用(ON),则密码不能与用户名相同。
    修改: 可以保持为 ON,因为这通常是一个安全设置。也可以将其设置为 OFF,允许密码与用户名相同。
    SET GLOBAL validate_password.check_user_name = OFF;
validate_password.length
    默认值: 8
    功能: 设置密码的最小长度。
    修改: 如果你想允许非常短的密码,可以将其设置为 1,这将允许密码长度为 1 个字符。
    SET GLOBAL validate_password.length = 1;
validate_password.mixed_case_count
    默认值: 1
    功能: 要求密码中包含至少一个大写字母和一个小写字母。
    修改: 你可以将此值设置为 0,以允许密码中没有大小写字母的混合。
    SET GLOBAL validate_password.mixed_case_count = 0;
validate_password.number_count
    默认值: 1
    功能: 要求密码中包含至少一个数字。
    修改: 你可以将此值设置为 0,以允许密码中不包含数字。
    SET GLOBAL validate_password.number_count = 0;
validate_password.policy
    默认值: MEDIUM
    功能: 控制密码策略的强度。
        LOW: 仅要求密码长度大于等于 8 个字符。
        MEDIUM: 需要密码包含大写字母、小写字母、数字、特殊字符,并且长度至少为 8 个字符(默认值)。
        STRONG: 更严格的密码复杂性要求。
        0(禁用):完全禁用密码策略,允许任何密码。
    SET GLOBAL validate_password.policy = 0;
validate_password.special_char_count   
    默认值: 1
    功能: 要求密码中包含至少一个特殊字符(如 !, @, # 等)。
    修改: 你可以将此值设置为 0,以允许密码中没有特殊字符。
    SET GLOBAL validate_password.special_char_count = 0;
--------------------------copy版
SET GLOBAL validate_password.check_user_name = OFF;
SET GLOBAL validate_password.length = 1;
SET GLOBAL validate_password.mixed_case_count = 0;
SET GLOBAL validate_password.number_count = 0;
SET GLOBAL validate_password.policy = 0;
SET GLOBAL validate_password.special_char_count = 0;

更改 用户 密码
    ALTER USER '用户名'@'localhost' IDENTIFIED BY 'ly';   -- 设置为简单密码
    -- 或者设置为空密码(不推荐用于生产环境)
    ALTER USER '用户'@'localhost' IDENTIFIED BY '';
在进行密码设置后,记得刷新权限,以使修改立即生效:
    FLUSH PRIVILEGES;
------------------------------------------------还有一方法就是登录后
UNINSTALL PLUGIN validate_password;
禁用密码验证插件=SET GLOBAL validate_password.special_char_count = 0;

安装php

1,检测PHP是否安装
rpm -q php
或者
php -v
2,yum安装PHP
sudo yum install php php-cli php-common php-mysql php-fpm -y
3,重启httpd服务
安装或更新 PHP 后,需要重启 httpd 服务,使得新的 PHP 设置生效。
sudo systemctl restart httpd
如果你使用的是 Nginx,则需要重启 Nginx 服务:
sudo systemctl restart nginx
4,测试lamp环境是否可用
创建测试 PHP 文件
    在 Apache 的默认 Web 根目录(通常是 /var/www/html)下创一个 PHP文件
例如:
    sudo echo "<?php phpinfo(); ?>" > /var/www/html/info.php
    确保 Apache 具有该文件的适当权限
    sudo chmod 644 /var/www/html/info.php
访问测试页面
    打开浏览器:
        访问 http://your_server_ip/info.php
        http://localhost/info.php(如果在本机上测试)。
    

部署discuz论坛

https://gitee.com/Discuz/DiscuzX
按照自己会的来,下载zip可以,用git也可以,使用git命令要先安装git。
解压文件要安装zip与unzip,如果是git下来的就不用解压。
(对了让我们先删除之前的info.php吧)
cp -r DiscuzX/upload/* /var/www/html
upload内全是源文件,-r表示复制目录和文件,而且会递归
刷新之前链接的网址就可以了,对了去掉/info.php的后缀

这里开始就是图形化操作了:————————{ ^t^ }————————

默认进入是这样的:一次确定,一次取消

这里有错误,是因为php版本不够,虽然是一样的,但是要高一些才可以:

安装 EPEL 和 Remi 仓库:
sudo yum install -y epel-release
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm

启用 Remi 仓库:
sudo yum install -y yum-utils
sudo yum-config-manager --enable remi-php74  # 启用 PHP 7.4 仓库,或选择其他版本
你可以替换 remi-php74 为你想要的 PHP 版本。例如:

remi-php80(PHP 8.0)
remi-php81(PHP 8.1)

安装 PHP 新版本
sudo yum install -y php php-cli php-common php-mysqlnd php-fpm php-xml php-mbstring php-json php-zip php-opcache php-intl

确认 PHP 版本
php -v
重启 Apache 或 Nginx 服务
sudo systemctl restart httpd【nginx】

完成后就是这样,还是报错:没有权限怎么办,给他(复制我的命令吧,chmod -R a+w /var/www/html)

(刷新一下就好了)

点击下一步继续吧,对了因为httpd默认作为网站,当然只可以读了,要是对所有人都可读可写那不是太low了吗,所以(drwxr-xr-x. 13 root root 4096 12月  1 17:09 html
),而这个论坛要变就要有写,所以才要该权限。

安装全新的独立模式

下一步:如图:(记录一下我的admin密码是ly怕忘了)

下一步就完成了:

访问测试

三,wordpress博客系统部署(可以略过)

环境准备

1,关闭无线网卡
systemctl stop NetworkManager
2,设置主机名
hostnamectl set-hostname wordpress
3,关闭防火墙
systemctl disable firewalld --now
4,配置yum源

【Linux】CentOS更换国内阿里云yum源(超详细)_centos换源-CSDN博客

(csdn找:下载源码安装包)

编译安装mysql

安装编译 MySQL 所需的开发工具和库
sudo yum groupinstall "Development Tools" -y
sudo yum install -y cmake ncurses-devel bison gcc-c++ libaio-devel libssl-devel

下载 MySQL 源代码
    访问 MySQL 官方下载页面(选择你需要的版本):https://dev.mysql.com/downloads/mysql/
    使用 wget 下载 MySQL 源代码:
    cd /opt
    sudo wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.27.tar.gz
解压源代码
    sudo tar -zxvf mysql-8.0.27.tar.gz
    cd mysql-8.0.27
创建 MySQL 用户和组
    sudo groupadd mysql
    sudo useradd -r -g mysql mysql
创建安装目录
    选择一个目录来存放 MySQL 数据和文件。例如,使用 /usr/local/mysql 作为安装目录。
    sudo mkdir /usr/local/mysql
    sudo mkdir /var/lib/mysql(数据目录)
    sudo mkdir /var/log/mysql(日志目录)
    设置相应的权限:
    sudo chown -R root:root /usr/local/mysql
    sudo chown -R mysql:mysql /var/lib/mysql
    sudo chown -R mysql:mysql /var/log/mysql
配置编译选项(到达源码目录)
    下面直接复制执行,斜杠表示换行,注释去掉
    cmake . \
    -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR \       # 设置安装路径
    -DMYSQL_DATADIR=$DATA_DIR \                  # 设置数据目录
    -DSYSCONFDIR=$CONFIG_DIR \                   # 设置配置文件目录
    -DWITH_SSL=$ENABLE_SSL \                     # 启用 SSL 支持
    -DWITH_ZLIB=$ENABLE_ZLIB \                   # 启用 Zlib 支持
    -DDEFAULT_CHARSET=$DEFAULT_CHARSET \         # 设置默认字符集
    -DDEFAULT_COLLATION=$DEFAULT_COLLATION \     # 设置默认字符序
    -DWITH_INNOBASE_STORAGE_ENGINE=$ENABLE_INNODB \    # 启用 InnoDB 存储引擎
    -DWITH_ARCHIVE_STORAGE_ENGINE=$ENABLE_ARCHIVE \     # 启用 Archive 存储引擎
    -DWITH_PARTITION_STORAGE_ENGINE=$ENABLE_PARTITION \  # 启用 Partition 存储引擎
    -DWITH_FAM=$ENABLE_FAM \                     # 启用文件监控(FAM)
    -DWITH_BOOST=$ENABLE_BOOST                   # 启用 Boost 库支持(根据需要)
编译 MySQL
    sudo make
安装 MySQL
    sudo make install
初始化 MySQL 数据目录
    cd /usr/local/mysql
    sudo ./bin/mysqld --initialize --user=mysql --datadir=/var/lib/mysql --            basedir=/usr/local/mysql
    sudo cat /var/log/mysqld.log | grep 'temporary password'
设置系统服务
    nano /etc/systemd/system/mysql.service
    添加以下内容:
        [Unit]
        Description=MySQL Community Server
        Documentation=https://dev.mysql.com/doc/refman/en/
        After=network.target

        [Service]
        Type=forking
        ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-                file=/var/run/mysqld/mysqld.pid
        ExecStartPost=/usr/local/mysql/bin/mysqladmin -u root -p$MYSQL_ROOT_PASSWORD shutdown
        ExecStop=/usr/local/mysql/bin/mysqladmin -u root -p$MYSQL_ROOT_PASSWORD shutdown
        User=mysql
        Group=mysql
        LimitNOFILE=65535

        [Install]
        WantedBy=multi-user.target
    重新加载 systemd 配置并启用 MySQL 服务:
    sudo systemctl daemon-reload
    sudo systemctl enable mysql
启动 MySQL 服务
    sudo systemctl start mysql
安全配置
    sudo /usr/local/mysql/bin/mysql_secure_installation
配置 MySQL 允许远程连接(可选)
    sudo nano /etc/my.cnf
    在 [mysqld] 部分添加以下内容,允许 MySQL 从任何 IP 地址进行远程连接:
    bind-address = 0.0.0.0
重启 MySQL 服务:
    sudo systemctl restart mysql
验证 MySQL 安装
    /usr/local/mysql/bin/mysql -u root -p
#!/bin/bash

# MySQL 编译配置脚本
# 在 CentOS 7 上编译安装 MySQL,配置选项注释详解。

# 创建 MySQL 系统用户和组
# MySQL 安装后需要创建专用的用户和组
sudo groupadd mysql
sudo useradd -r -g mysql mysql

# 设置安装路径
INSTALL_DIR="/usr/local/mysql"
# 设置数据目录
DATA_DIR="/var/lib/mysql"
# 设置系统配置文件目录
CONFIG_DIR="/etc"

# 启用或禁用存储引擎
ENABLE_INNODB="1"        # 启用 InnoDB 存储引擎
ENABLE_ARCHIVE="1"       # 启用 Archive 存储引擎
ENABLE_PARTITION="1"     # 启用 Partition 存储引擎(根据需求选择)

# 启用 SSL 加密支持
ENABLE_SSL="system"     # 启用 SSL 支持,使用系统的 SSL 库
# 启用 Zlib 支持
ENABLE_ZLIB="system"    # 启用 Zlib 支持,使用系统的 Zlib 库
# 默认字符集和字符序设置
DEFAULT_CHARSET="utf8mb4"        # 设置默认字符集为 utf8mb4
DEFAULT_COLLATION="utf8mb4_unicode_ci"  # 设置默认字符序为 utf8mb4_unicode_ci
# 设置文件监控(FAM)支持
ENABLE_FAM="system"  # 启用文件监控(FAM)支持,使用系统的 FAM 库
# 启用 Boost 库支持(如果需要)
ENABLE_BOOST="/path/to/boost"  # 设置 Boost 库路径(如果需要 Boost 库支持)
# 设置编译类型
BUILD_TYPE="Release"  # 设置为 Release 模式,适用于生产环境
# 启用 MySQL 客户端和服务端的相关功能
ENABLE_CLIENT="1"    # 启用 MySQL 客户端
ENABLE_SERVER="1"    # 启用 MySQL 服务端

# 创建 MySQL 编译所需的目录
mkdir -p $INSTALL_DIR
mkdir -p $DATA_DIR
mkdir -p $CONFIG_DIR

# 执行 cmake 配置命令
echo "开始配置 MySQL 编译选项..."
cmake . \
    -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR \
    -DMYSQL_DATADIR=$DATA_DIR \
    -DSYSCONFDIR=$CONFIG_DIR \
    -DWITH_SSL=$ENABLE_SSL \
    -DWITH_ZLIB=$ENABLE_ZLIB \
    -DDEFAULT_CHARSET=$DEFAULT_CHARSET \
    -DDEFAULT_COLLATION=$DEFAULT_COLLATION \
    -DWITH_INNOBASE_STORAGE_ENGINE=$ENABLE_INNODB \
    -DWITH_ARCHIVE_STORAGE_ENGINE=$ENABLE_ARCHIVE \
    -DWITH_PARTITION_STORAGE_ENGINE=$ENABLE_PARTITION \
    -DWITH_FAM=$ENABLE_FAM \
    -DWITH_BOOST=$ENABLE_BOOST

echo "配置完成,可以开始编译 MySQL..."

# 执行 make 编译命令
make

# 安装 MySQL
sudo make install

echo "MySQL 编译安装完成!"

# 初始化 MySQL 数据目录
# 初始化数据目录,并生成一个临时的 root 密码
sudo $INSTALL_DIR/bin/mysqld --initialize --user=mysql --datadir=$DATA_DIR --basedir=$INSTALL_DIR

# 提示用户查看临时 root 密码
echo "MySQL 初始化完成,请查看临时 root 密码:"
sudo cat /var/log/mysqld.log | grep 'temporary password'

# 安装并启用 systemd 服务
# 创建 MySQL 的 systemd 服务文件,确保 MySQL 可以随系统启动
echo "创建 MySQL 服务文件..."
sudo bash -c 'cat > /etc/systemd/system/mysql.service <<EOF
[Unit]
Description=MySQL Community Server
After=network.target

[Service]
Type=forking
ExecStart=$INSTALL_DIR/bin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
ExecStartPost=$INSTALL_DIR/bin/mysqladmin -u root -p$MYSQL_ROOT_PASSWORD shutdown
ExecStop=$INSTALL_DIR/bin/mysqladmin -u root -p$MYSQL_ROOT_PASSWORD shutdown
User=mysql
Group=mysql
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF'

# 重新加载 systemd 服务并启用 MySQL
sudo systemctl daemon-reload
sudo systemctl enable mysql
sudo systemctl start mysql

echo "MySQL 服务已启动!"

编译安装apache

配置php

启动测试环境

部署web应用

测试验证

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

通俗易懂:序列标注与命名实体识别(NER)概述及标注方法解析

目录 一、序列标注&#xff08;Sequence Tagging&#xff09;二、命名实体识别&#xff08;Named Entity Recognition&#xff0c;NER&#xff09;**命名实体识别的作用****命名实体识别的常见实体类别** &#xff1a; 三、标签类型四、序列标注的三种常见方法1. **BIO&#xf…

01-Ubuntu24.04LTS上安装PGSQL

目录 一、准备工作 1.1、系统要求 1.2 、更新 Ubuntu 系统 1.3 、安装依赖 1.4 、添加 PostgreSQL 16 软件源 二、安装 PostgreSQL 16 数据库 三、管理 PostgreSQL 服务 四、PostgreSQL 管理操作 4.1 、访问 Postgres 超级用户账户 4.2 、创建数据库并设置管理权限 4…

利用阿里云镜像仓库和 Github Action 同步镜像

利用阿里云镜像仓库和 Github Action 同步镜像 由于某些未知原因,国内无法直接从 DockerHub 拉取镜像,在不使用 VPN 等违法工具的情况下,可以利用 GitHub 的 Action 流水线功能,将镜像推送到阿里云的个人镜像仓库中。 这种方式相较于其他方式虽然相对麻烦,但好在免费,且实…

iOS与Windows间传文件

想用数据线从 windows 手提电脑传文件入 iPhone&#xff0c;有点迂回。 参考 [1]&#xff0c;要在 windows 装 Apple Devices。装完、打开、插线之后会检测到手机&#xff0c;界面&#xff1a; 点左侧栏「文件」&#xff0c;不是就直接可以传&#xff0c;而是要通过某个应用传…

如何使用Python解析从淘宝API接口获取到的JSON数据?

基本的 JSON 解析 当从淘宝 API 接口获取到数据后&#xff08;假设数据存储在变量response_data中&#xff09;&#xff0c;首先要判断数据类型是否为 JSON。如果是&#xff0c;就可以使用 Python 内置的json模块进行解析。示例代码如下&#xff1a; import json # 假设respon…

Cesium K-means自动聚合点的原理

Cesium K-means自动聚合点的原理 Cesium 是一个开源的 JavaScript 库&#xff0c;用于在 Web 环境中创建 3D 地球和地图应用。它能够处理地理空间数据&#xff0c;并允许开发者对大规模的地理数据进行可视化展示。在一些应用中&#xff0c;尤其是当处理大量地理坐标点时&#…

入门数据结构JAVADS——如何构建一棵简单二叉排序树

目录 前言 什么是二叉排序树 二叉排序树的特点 二叉排序树示意图 构建二叉排序树 插入元素 搜索元素 删除元素 完整代码 结尾 前言 在整个十一月,笔者因为一些原因停笔了,但马上迈入12月进而进入2025年,笔者决定不再偷懒了,继续更新以促进学习的积极性.闲话说到这,今天…

【深度学习】四大图像分类网络之AlexNet

AlexNet是由Alex Krizhevsky、Ilya Sutskever&#xff08;均为Hinton的学生&#xff09;和Geoffrey Hinton&#xff08;被誉为”人工智能教父“&#xff0c;首先将反向传播用于多层神经网络&#xff09;在2012年ImageNet图像分类竞赛中提出的一种经典的卷积神经网络。AlexNet在…

基于 Python、OpenCV 和 PyQt5 的人脸识别上课打卡系统

大家好&#xff0c;我是Java徐师兄&#xff0c;今天为大家带来的是基于 Python、OpenCV 和 PyQt5 的人脸识别上课签到系统。该系统采用 Python 语言开发&#xff0c;开发过程中采用了OpenCV框架&#xff0c;Sqlite db 作为数据库&#xff0c;系统功能完善 &#xff0c;实用性强…

DevOps工程技术价值流:Jenkins驱动的持续集成与交付实践

一、Jenkins系统概述 Jenkins&#xff1a;开源CI/CD引擎的佼佼者 Jenkins&#xff0c;作为一款基于Java的开源持续集成&#xff08;CI&#xff09;与持续交付&#xff08;CD&#xff09;系统&#xff0c;凭借其强大的插件生态系统&#xff0c;成为DevOps实践中不可或缺的核心…

亚马逊开发视频人工智能模型,The Information 报道

根据《The Information》周三的报道&#xff0c;电子商务巨头亚马逊&#xff08;AMZN&#xff09;已开发出一种新的生成式人工智能&#xff08;AI&#xff09;&#xff0c;不仅能处理文本&#xff0c;还能处理图片和视频&#xff0c;从而减少对人工智能初创公司Anthropic的依赖…

mac下安装Ollama + Open WebUI + Llama3.1

本文介绍mac下安装Ollama Open WebUI Llama3.1 8b具体步骤。 目录 推荐配置Ollama Open WebUI Llama3.1简介安装Ollama安装Open WebUI 推荐配置 m1以上芯片&#xff0c;16g内存&#xff0c;20g以上硬盘空间 Ollama Open WebUI Llama3.1简介 Ollama: 下载&#xff0c;管理…

Swift实现高效链表排序:一步步解读

文章目录 前言摘要问题描述题解解题思路Swift 实现代码代码分析示例测试与结果 时间复杂度空间复杂度总结关于我们 前言 本题由于没有合适答案为以往遗留问题&#xff0c;最近有时间将以往遗留问题一一完善。 148. 排序链表 不积跬步&#xff0c;无以至千里&#xff1b;不积小流…

小程序-基于java+SpringBoot+Vue的校园快递平台系统设计与实现

项目运行 1.运行环境&#xff1a;最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境&#xff1a;IDEA&#xff0c;Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境&#xff1a;Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…

网页开发的http基础知识

请求方式-GET&#xff1a;请求参数在请求行中&#xff0c;没有请求体&#xff0c;如&#xff1a;/brand/findAll?nameoPPo&status1。GET请求大小在浏览器中是有限制的请求方式-POST&#xff1a;请求参数在请求体中&#xff0c;POST请求大小是没有限制的 HTTP请求&#xf…

Qt自定义 Qt Designer 插件

创建 Qt Designer 插件项目 Qt 提供两种设计插件的 API&#xff0c;可以用于扩展 Qt 的功能。高级 API 用于设计插件以扩展 Qt 的功能&#xff0c;例如定制数据库驱动、图像格式、文本编码、定制样式等。Qt Designer 里大量采用了插件&#xff0c;点击 Qt Creator 的“Help”-…

周鸿祎再次“创业”,盯上百度

周鸿祎特地拍了部短剧来推广的新产品&#xff0c;终于上线了。 11月27日晚间&#xff0c;360正式发布多模态内容创作引擎“纳米搜索”。 作为当前AI应用最红的赛道之一&#xff0c;AI搜索已经有腾讯、秘塔、商汤、抖音等公司入局。传统搜索老大百度也在发力。竞争不妨碍有搜索…

003 MATLAB基础计算

01 方程组的求解 多项式及其运算 多项式在MATLAB中以向量形式存储。 即n次多项式用一个长度为n1的系数向量来表示&#xff0c;且按降幂&#xff0c;缺少的幂次对应的向量元素为0。 多项式的运算主要包括多项式的四则运算、求导、求值和求根运算 多项式的四则运算&#xff1a…

金蝶云苍穹:个人上传授权文件

金蝶云苍穹开发者门户--下载文件地址。

解决windows下php8.x及以上版本,在Apache2.4中无法加载CURL扩展的问题

本文已首发于&#xff1a;秋码记录 若你也想搭建一个个人博客&#xff0c;可参考&#xff1a;国内 gitee.com Pages 下线了&#xff0c;致使众多站长纷纷改用 github、gitlab Pages 托管平台 在日新月异的信息化下&#xff0c;软件也在跟随着互联网的脚步&#xff0c;逐步推进…