orangepi部署web环境

orangepi web环境搭建

mysql安装

查看MySQL安装包

接下来可以使用以下命令安装MySQL服务器:

  1. 安装MySQL 8.0
bash 复制代码
# 安装最新版本
sudo apt install -y mysql-server
# 安装指定版本
sudo apt install -y mysql-server-8.0
  1. 初始化配置信息

    bash 复制代码
    sudo mysql_secure_installation
  • VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security Would you like to setup VALIDATE PASSWORD component?(使用密码强校验组件)-> n

    • (如果输入y 之后会让你选level 0/1/2,跳过为root设置密码,因为默认情况下使用auth_socket进行身份验证)
    • 输入n、不使用校验组件,请你直接设置密码、之后用sudo mysql -u root -p进行登录
  • New Password:(设置新密码,并重复一遍)

  • Remove anonymous users (删除匿名用户) n

  • Disallow root login remotely(拒绝远程root账号登录) n

  • Remove test database and access to it(移除test数据库) n

  • Reload privilege tables now (现在就重新载入权限表) y

之前没有设置密码

使用sudo mysql -u root登录

  1. 设置密码(该步骤适用 启动密码校验组件)
sql 复制代码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
 # 密码必须8位

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

查看密码策略

sql 复制代码
show variables like 'validate_password%';

修改策略

是因为之前设置的等级为medium,要求长度>= 8、数字、混合大小写和特殊字符

sql 复制代码
SET GLOBAL validate_password.policy = 'LOW';
# 设置密码策略为低

查看当前密码长度

select @@validate_password_length;

sql 复制代码
select @@validate_password_length;

±---------------------------+

| @@validate_password.length |

±---------------------------+

| 8 |

±---------------------------+

1 row in set (0.00 sec)

设置密码长度

sql 复制代码
# -- 密码长度
set global validate_password.length=6;
 
#-- 密码至少要包含的小写字母个数和大写字母个数
set global validate_password.mixed_case_count=0;

#-- 密码至少要包含的数字个数。
set global validate_password.number_count=0; 

#-- 密码至少要包含的特殊字符数
set global validate_password.special_char_count=0; 

 
  1. 更改默认 root 用户的认证方法(如有必要)
    默认情况下,MySQL 使用 auth_socket 组件对 root 进行身份验证,这可能会阻止远程登录。要改为使用密码认证,请执行以下命令:
sql 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'SSKS#dd';
FLUSH PRIVILEGES;

查看当前mysql的用户

sql 复制代码
SELECT User, Host FROM mysql.user;

mysql> SELECT User, Host FROM mysql.user;

±-----------------±----------+

| User | Host |

±-----------------±----------+

| debian-sys-maint | localhost |

| mysql.infoschema | localhost |

| mysql.session | localhost |

| mysql.sys | localhost |

| root | localhost |

±-----------------±----------+

5 rows in set (0.00 sec)

  1. 创建一个允许远程访问的 root 用户

    接下来,创建一个与您的 root 用户相同权限的用户,但允许从任何主机连接。

    6.1 不再另外创建root,直接使用mysql创建的root用户

    开启访问权限

    sql 复制代码
    update user set Host='%' where User='root';

    授予权限

    sql 复制代码
    GRANT ALL ON *.* TO 'root'@'%';
    FLUSH PRIVILEGES; # 刷新权限

    创建自己的root用户

sql 复制代码
CREATE USER 'root'@'%' IDENTIFIED BY 'SSKS#dd';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

mysql> CREATE USER 'root'@'%' IDENTIFIED BY '123456';

Query OK, 0 rows affected (0.10 sec)

mysql> GRANT ALL PRIVILEGES ON . TO 'root'@'%' WITH GRANT OPTION;

Query OK, 0 rows affected (0.11 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.01 sec)

mysql> SELECT User, Host FROM mysql.user;

±-----------------±----------+

| User | Host |

±-----------------±----------+

| root | % |

| debian-sys-maint | localhost |

| mysql.infoschema | localhost |

| mysql.session | localhost |

| mysql.sys | localhost |

| root | localhost |

±-----------------±----------+

6 rows in set (0.00 sec)

  1. 修改 MySQL 配置以允许远程连接

编辑 MySQL 配置文件,通常在 /etc/mysql/mysql.conf.d/mysqld.cnf` 或 /etc/mysql/my.cnf`。

bash 复制代码
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

找到 bind-address 和mysqlx-bind-address项,把127.0.0.1更改为 0.0.0.0 或注释掉这两行,以允许从任何 IP 地址连接。

sql 复制代码
bind-address = 0.0.0.0
mysqlx-bind-address     = 0.0.0.0  # 这个步骤也不不设置

使用Navicat 17登录

连接成功

设置密码

# 登录mysql,在默认安装时如果没有让我们设置密码,则直接回车就能登录成功。
mysql -uroot -p
# 设置密码 mysql8.0
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
# 设置密码 mysql5.7
set password=password('新密码');

# 配置IP 5.7
grant all privileges on *.* to root@"%" identified by "密码";
# 刷新缓存
flush privileges;

详细

bash 复制代码
# 8.将root用户设置为所有地址可登录,原来是localhost表示只用本机可登录
use mysql;
update user set host='%' where user='root';
flush privileges;
# 9.将用户root密码设置123456并且为永不过期
alter user 'root'@'%' identified by '123456' password expire never;
# 10.将root用户密码加密方式改为mysql_native_password 
alter user 'root'@'%' identified with mysql_native_password by '123456';
flush privileges;

退出命令行

exit

注意:配置8.0版本参考:我这里通过这种方式没有实现所有IP都能访问;我是通过直接修改配置文件才实现的,MySQL8.0版本把配置文件 my.cnf 拆分成mysql.cnf 和mysqld.cnf,我们需要修改的是mysqld.cnf文件:

bash 复制代码
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
datadir         = /var/lib/mysql
log_error       = /var/log/mysql/error.log

使用tail命令查看日志文件
tail -f /var/log/syslog
Ctrl + C 退出

修改 bind-address,保存后重启MySQL即可。

bind-address            = 0.0.0.0

重启MySQL重新加载一下配置:

bash 复制代码
sudo systemctl restart mysql
mysql卸载

停止 MySQL 服务:

首先,停止 MySQL 服务以确保所有 MySQL 进程都已终止。

sudo systemctl stop mysql

卸载 MySQL 软件包:

使用 apt-get 命令卸载 MySQL 服务器及其相关软件包。

bash 复制代码
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean

这将卸载 MySQL 服务器、客户端以及所有相关的依赖包,并清除安装包缓存。

删除配置和数据文件:

删除 MySQL 的配置文件和数据目录。这一步是必要的,因为 apt-get remove --purge 可能不会删除所有文件。

/etc/mysql 存放 debian.cnf存放的是密码

/var/lib/mysql这个目录通常是 MySQL 数据库的默认数据目录,保存了数据库的数据文件、日志文件和其他相关文件

sudo rm -rf /etc/mysql /var/lib/mysql

sudo rm -rf /var/log/mysql

删除 MySQL 用户和组(可选):

如果您希望删除 MySQL 用户和组,可以执行以下命令:

sudo deluser mysql
sudo delgroup mysql

检查是否还有遗留文件:

您还可以使用 find 命令来查找系统中可能遗留的与 MySQL 相关的其他文件,并手动删除它们。

bash 复制代码
sudo find / -iname 'mysql*' -exec rm -rf {} \;

改错

查看mydql状态

bash 复制代码
systemctl status mysql

The designated data directory /var/lib/mysql/ is unusable

查看mysql日志

tail -f /var/log/mysql/error.log

tail: cannot open '/var/log/mysql/error.log' for reading: No such file or directory

tail: no files remaining

也就是说,用户没有error的读写权限,需要就目录的所有者设置为mysql

第一次执行

sudo mysqld --initialize

这个命令将:

  • 创建一个新的 MySQL 数据目录(通常是 /var/lib/mysql/var/log/mysqld.log或 你在 MySQL 配置文件中指定的其他路径)。
  • 在数据目录中初始化数据库文件。
  • 创建一个默认的 mysql 数据库。
  • 生成一个随机的根用户密码,并将其写入错误日志文件中。
  • 权限和目录:确保 MySQL 数据目录的权限设置正确。数据目录应该由 MySQL 用户拥有
  1. 常见选项
    --initialize-insecure:如果你不希望生成根用户密码,可以使用这个选项。这会初始化数据库而不设置 root 密码,允许你之后通过手动设置密码来配置 root 用户。
bash 复制代码
sudo mysqld --initialize-insecure

--datadir:指定数据库数据目录的路径。如果你希望将数据存储在不同的位置,可以使用此选项。

bash 复制代码
sudo mysqld --initialize --datadir=/path/to/your/datadir

--user:指定运行 mysqld 的用户。默认情况下,这个命令会以 mysql 用户运行。如果需要以其他用户身份运行,可以使用此选项。

bash 复制代码
sudo mysqld --initialize --user=mysql

打不开该文件

Could not open file '/var/log/mysql/error.log' for error logging: No such file or directory

创建error.log

发现没有该文件

bash 复制代码
 cd /var/log
mkdir /var/log/mysql
 cd /var/log/mysql
 touch error.log
# 更改权限、
chmod 777 error.log

设置开机自启

shell 复制代码
systemctl enable mysql
# Synchronizing state of mysql.service with SysV service script with /lib/systemd/systemd-sysv-install.
# Executing: /lib/systemd/systemd-sysv-install enable mysql

/lib/systemd/systemd-sysv-install 是一个系统工具,用于在 System V 初始化脚本(SysV init scripts)和 systemd 之间进行转换和兼容性处理。当您运行 systemctl enable mysql 命令时,系统会调用 /lib/systemd/systemd-sysv-install 这个脚本来处理将 SysV 初始化脚本转换为 systemd 服务的操作。

具体来说,在这种情况下,/lib/systemd/systemd-sysv-install 脚本会做以下事情:

  1. 执行检测:检查是否存在 SysV 初始化脚本(例如 /etc/init.d/mysql)以确保能够进行转换和设置。
  2. 创建符号链接:在 systemd 的服务目录下创建一个符号链接,将 SysV 初始化脚本连接到 systemd 服务单元文件(例如 /etc/systemd/system/mysql.service)。
  3. 启用服务:启用新创建的 systemd 服务,使其在系统启动时自动启动。

查看正在启动的服务

netstat -tunlp
netstat -tunlp | grep mysql

再次执行

bash 复制代码
sudo mysqld --initialize
没有报错

尝试启动,还是报错

查看日志cat /var/log/mysqld.log

这是另外一个日志信息,还是没有该文件

cat: /var/log/mysqld.log: No such file or directory

bash] 复制代码
touch mysqld.log
 chmod 777  /var/log/mysqld.log

现在的日志信息

/var/log/mysql/error.log

/var/log/mysqld.log

查看上次创建error.log文件之后,initialize的错误信息

数据目录从未使用

删除

bash 复制代码
 rm -rf /var/lib/mysql/*

第三次

再次执行sudo mysqld --initialize

mysql用户无法写入

修改权限

sudo chmod -R 755 /var/log/mysql/
递归的将/var/log/mysql/目录下的所有文件和子目录权限设置为755

再次启动sudo mysqld --initialize

无问题

再次启动

bash 复制代码
 systemctl start mysql

总结一波

ERROR 2 NO such file or directory

原因是没有创建日志目录 /var/log/mysql/error.log虽然之前安装的时候能使用,但是后来改了默认配置vim /etc/mysql/mysql.conf.d/mysqld.cnf增加了日志目录log_error,但是没有创建目录,导致启动失败。

创建完目录

mysql服务启动失败

bash 复制代码
systemctl list-units --type=service # 命令列出所有服务单元

查·看mysql安装信息

dpkg -l | grep mysql

检查 MySQL 进程:

bash 复制代码
ps -ef | grep mysql

卸载mysql

  1. 停止 MySQL 服务:打开终端,并以管理员权限执行以下命令来停止 MySQL 服务:
bash 复制代码
sudo systemctl stop mysql
  1. 使用 APT 卸载 MySQL 软件包:执行以下命令来卸载 MySQL 软件包:
bash 复制代码
sudo apt-get remove --purge mysql-server mysql-client mysql-common

这将卸载 MySQL 服务器、客户端和共享组件。

  1. 清理残留文件:执行以下命令来清理残留文件:
bash 复制代码
sudo apt-get autoremove
sudo apt-get autoclean
  1. 删除 MySQL 数据目录 :MySQL 数据目录通常位于 /var/lib/mysql,可以执行以下命令删除它:
bash 复制代码
sudo rm -rf /var/lib/mysql

请务必在删除之前备份任何重要的数据。

  1. 清理配置文件和日志文件:执行以下命令来清理配置文件和日志文件:
bash 复制代码
sudo rm -rf /etc/mysql /var/log/mysql
FTP安装
sudo apt-get install vsftpd
 
# 设置开机启动并启动ftp服务
systemctl enable vsftpd
systemctl start vsftpd

启动

#查看其运行状态
systemctl  status vsftpd
#重启服务
systemctl  restart vsftpd

修改配置文件

#修改配置
sudo nano /etc/vsftpd.conf

存在的修改成酱紫:

listen=NO # 阻止 vsftpd 在独立模式下运行
listen_ipv6=YES # vsftpd 将监听 ipv6 而不是 IPv4,你可以根据你的网络情况设置
anonymous_enable=NO # 关闭匿名登录
local_enable=YES # 允许本地用户登录
write_enable=YES # 启用可以修改文件的 FTP 命令
local_umask=022 # 本地用户创建文件的 umask 值
dirmessage_enable=YES # 当用户第一次进入新目录时显示提示消息
xferlog_enable=YES # 一个存有详细的上传和下载信息的日志文件
connect_from_port_20=YES # 在服务器上针对 PORT 类型的连接使用端口 20(FTP 数据)
xferlog_std_format=YES # 保持标准日志文件格式
pam_service_name=vsftpd # vsftpd 将使用的 PAM 验证设备的名字

最后添加:

userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.allowed_users

创建传输文件夹

bash 复制代码
sudo useradd -d /home/ftp/ftp_root -m ftpadmin 
#创建新用户,home目录设置为/home/ftp/ftp_root
sudo passwd ftpadmin 
#新用户设置密码
输入密码:
再次输入密码:
chmod -R 777 /home/ftp/ftp_root
# 将"/home/ftp/ftp_root"目录下的所有文件和子目录的权限都设置为最大权限
# 即所有用户都可以读取、写入和执行这些文件
777表示文件/文件夹的所有者,所有组,其他用户设置为可读,可写,可执行的权限

查看文件的权限

ls -ld /opt
drwxr-xr-x 6 root root 4096 Jun  5 22:01 /opt

用户 HwHiAiUser 的用户 ID(UID)为 1000,用户组 ID(GID)也为 1000

此用户还属于 HwDmUser 用户组(GID 为 1101)和 HwBaseUser 用户组(GID 为 1102)。

如果你想给用户 HwHiAiUser 添加写权限,你可以使用 chmod 命令,例如:

chmod u+w /opt  # 为HwHiAiUser添加写入权限

这将为 HwHiAiUser 用户添加 /opt 目录的写权限。如果你想给 HwHiAiUser 用户组添加写权限,你可以执行以下命令:

bash 复制代码
chmod g+w /opt
java安装

下载地址

https://www.oracle.com/java/technologies/[javase](https://so.csdn.net/so/search?q=javase&spm=1001.2101.3001.7020)/javase8u211-later-archive-downloads.html

下载之后

上传/opt

解压缩

bash 复制代码
sudo tar -zxvf jdk-8u401-linux-aarch64.tar.gz

更改环境变量

bash 复制代码
vim /etc/profile

最后一行添加

bash 复制代码
export JAVA_HOME=/usr/local/jdk1.8.0_401 #这里写自己的路径	
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib # 设置了 Java 的类路径,. 表示当前目录,${JAVA_HOME}/lib 和 ${JRE_HOME}/lib 分别添加了 JDK 和 JRE 的库文件路径
export PATH=.:${JAVA_HOME}/bin:$PATH # PATH 设置了可执行文件的搜索路径,${JAVA_HOME}/bin 将 Java 可执行文件的路径添加到了系统路径中


export JAVA_HOME=/usr/local/jdk1.8.0_401
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # CLASSPATH 指定了特定的 JAR 文件,通常是项目所需的依赖库文件
export PATH=$JAVA_HOME/bin:$PATH

激活环境变量

bash 复制代码
source /etc/profile

测试java

java -version
tomcat安装

下载地址

Index of /dist/tomcat/tomcat-7/v7.0.96/bin (apache.org)

选择bin目录下的tar包

配置tomcat

cd /usr/local/apache-tomcat-7.0.96/conf
 vim server.xml
打开vim server.xml配置文件,找到配置8080端口的位置,在节点末尾添加URIEncoding="UTF-8"
:wq退出保存

启动

bash 复制代码
/usr/local/java/apache-tomcat-7.0.96/bin 
./startup.sh # 执行

通过内网地址加端口访问

http://192.168.43.224:8080/

添加开机自启

首先,使用 root 权限登录到系统,并切换到 /etc/systemd/system 目录:

bash 复制代码
 cd /etc/systemd/system

然后创建一个名为 tomcat.service 的文件并编辑它:

bash 复制代码
sudo nano tomcat.service
[Unit]
Description=Tomcat Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking

Environment="JAVA_HOME=/usr/local/jdk1/8.0_401"
Environment="CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"

Environment="CATALINA_HOME=/usr/local/apache-tomcat-7.0.96"

ExecStart=/usr/local/apache-tomcat-7.0.96/bin/catalina.sh start
ExecStop=/usr/local/apache-tomcat-7.0.96/bin/catalina.sh stop

RestartSec=3

[Install]
WantedBy=multi-user.target

保存并关闭文件后,重新加载 systemd 管理的单元文件,使新的 Tomcat 服务配置生效:

bash 复制代码
sudo systemctl daemon-reload

现在你可以使用以下命令来启动、停止和管理 Tomcat 服务:

bash 复制代码
sudo systemctl start tomcat
sudo systemctl stop tomcat
sudo systemctl restart tomcat
sudo systemctl enable tomcat  # 设置开机自启
sudo systemctl disable tomcat  # 取消开机自启
sudo systemctl status tomcat  # 查看服务状态

查看端口占用

bash 复制代码
ps aux | grep tomcat
kill -9 33446 # -9是指定的信号编号,代表SIGKILL信号

删掉还是没用

systemctl status tomcat

查看日志信息

bash 复制代码
more /usr/local/apache-tomcat-7.0.96/logs/catalina.out 

发现java环境配置错了

重新配置

systemctl daemon-reload
systemctl start tomcat
systemctl staus tomcat
Maven配置

maven下载

https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/

maven配置

bash 复制代码
vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.8.8
export PATH=${MAVEN_HOME}/bin:$PATH
source /etc/profile

测试

bash 复制代码
mvn -v

快速安装脚本

bash 复制代码
# 检查是否已安装 Maven
if ! command -v mvn &> /dev/null; then
    # 如果未安装,则下载、安装并设置环境变量
    cd /home/zenglg
    wget https://dlcdn.apache.org/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz --no-check-certificate
    tar vxf apache-maven-3.9.5-bin.tar.gz 
    rm -rf /usr/local/maven3
    mv apache-maven-3.9.5 /usr/local/maven3

    # 设置环境变量
    MAVEN_HOME="/usr/local/maven3"
    echo "export MAVEN_HOME=${MAVEN_HOME}" >> /etc/profile
    echo "export PATH=${PATH}:${MAVEN_HOME}/bin" >> /etc/profile
    source /etc/profile

    # 检查是否成功设置环境变量
    if [[ ":$PATH:" == *":${MAVEN_HOME}/bin:"* ]]; then
        echo "Maven 已安装并设置环境变量成功."
    else
        echo "设置 Maven 环境变量失败."
    fi
else
    echo "Maven 已安装."
fi

maven 本地仓库

相关推荐
一个处女座的程序猿O(∩_∩)O1 小时前
小型 Vue 项目,该不该用 Pinia 、Vuex呢?
前端·javascript·vue.js
hackeroink4 小时前
【2024版】最新推荐好用的XSS漏洞扫描利用工具_xss扫描工具
前端·xss
迷雾漫步者6 小时前
Flutter组件————FloatingActionButton
前端·flutter·dart
向前看-6 小时前
验证码机制
前端·后端
燃先生._.7 小时前
Day-03 Vue(生命周期、生命周期钩子八个函数、工程化开发和脚手架、组件化开发、根组件、局部注册和全局注册的步骤)
前端·javascript·vue.js
拭心8 小时前
Google 提供的 Android 端上大模型组件:MediaPipe LLM 介绍
android
高山我梦口香糖8 小时前
[react]searchParams转普通对象
开发语言·前端·javascript
m0_748235248 小时前
前端实现获取后端返回的文件流并下载
前端·状态模式
m0_748240259 小时前
前端如何检测用户登录状态是否过期
前端