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 本地仓库

相关推荐
帅得不敢出门10 分钟前
Gradle命令编译Android Studio工程项目并签名
android·ide·android studio·gradlew
我要洋人死17 分钟前
导航栏及下拉菜单的实现
前端·css·css3
科技探秘人29 分钟前
Chrome与火狐哪个浏览器的隐私追踪功能更好
前端·chrome
科技探秘人30 分钟前
Chrome与傲游浏览器性能与功能的深度对比
前端·chrome
JerryXZR35 分钟前
前端开发中ES6的技术细节二
前端·javascript·es6
七星静香37 分钟前
laravel chunkById 分块查询 使用时的问题
java·前端·laravel
q24985969340 分钟前
前端预览word、excel、ppt
前端·word·excel
小华同学ai1 小时前
wflow-web:开源啦 ,高仿钉钉、飞书、企业微信的审批流程设计器,轻松打造属于你的工作流设计器
前端·钉钉·飞书
problc1 小时前
Flutter中文字体设置指南:打造个性化的应用体验
android·javascript·flutter
Gavin_9151 小时前
【JavaScript】模块化开发
前端·javascript·vue.js