当前位置: 首页 > news >正文

移动网站跟pc网站域名和空间有什么区别开发流程和步骤

移动网站跟pc网站域名和空间有什么区别,开发流程和步骤,wordpress交易平台,威海哪里可以建设企业网站1. Linux 环境搭建 1.1 环境搭建方式 主要有 4 种#xff1a; 直接安装在物理机上。但是Linux桌面使用起来非常不友好#xff0c;所以不建议。[不推荐]。使用虚拟机软件#xff0c;将Linux搭建在虚拟机上。但是由于当前的虚拟机软件(如VMWare之类的)存在一些bug#xff…1. Linux 环境搭建 1.1 环境搭建方式 主要有 4 种 直接安装在物理机上。但是Linux桌面使用起来非常不友好所以不建议。[不推荐]。使用虚拟机软件将Linux搭建在虚拟机上。但是由于当前的虚拟机软件(如VMWare之类的)存在一些bug会导致环境上出现各种莫名其妙的问题比较折腾。[非常不推荐]。使用WSL (Windows Subsystem for Linux)。这个是Windows近几年开发的新功能在Windows系统内集成了一个Linux。但是目前这个技术还不够成熟。[暂时不推荐]。使用云服务器可以直接在 腾讯云、阿里云或华为云 等服务器厂商处直接购买一个云服务器。[推荐] 使用云服务器不仅环境搭建简单避免折腾同时还有一个最大的好处部署在云服务器上的项目可以直接被外网访问到这个时候就和一个公司发布一个正式的网站没有任何区别。也就能让我们自己写的程序真的去给别人去使用。 1.2 使用终端软件连接到 Linux 终端软件是一类工具软件可以和远程的主机建立网络链接从而对主机进行一些操作 常见的终端软件 XShell、Putty、MobaXTerm、Iterm2、SecureCRT... 下面使用的是 XShell 官网家庭/学校免费 - NetSarang Website 选择 家庭/教育 版即可上面链接就是 1.3 使用 XShell 登录主机 在 XShell 终端下输入 ssh 服务器外网ip地址 此处的 ip 即为云服务器后台看到的外网 ip 如果网络畅通将会提示输入用户名密码输入即可登录 关于 XShell 下的复制粘贴 复制Ctrl Insert有些电脑的 Insert 需要配合 Fn 来使用 粘贴Shift Insert 直接使用 CtrlC 和 CtrlV 是不可以的但是可以重新设置快捷键工具 - 选项 - 键盘和鼠标 - 编辑 2. Linux 常用命令 ls 语法ls [选项][目录或文件] 功能对于目录该命令列出该目录下的所有子目录与文件对于文件将列出文件名以及其他信息 常用选项 -a 列出目录下的所有文件包括以 . 开头的隐含文件-d 将目录像文件一样显示而不是显示其下的文件如ls -d 指定目录-k 以 k 字节的形式表示文件的大小如ls -alk 指定文件-l 列出文件的详细信息-r 对目录反向排序-t 以时间排序-R 列出所有子目录下的文件递归 可以使用 命令 --help 来查看帮助文档如下 这些命令也可以相互组合如下 pwd 语法pwd 功能显示用户当前所在的目录 cd Linux 系统中磁盘上的文件和目录被组成一棵目录树每个节点都是目录或文件 语法cd 目录名 功能改变工作目录将当前工作目录改变到指定的目录下 示例 # 返回上级目录 cd ..# 进入用户家目录 cd ~# 返回最近访问目录 cd - Linux 目录结构 Linux 是一个树形目录结构 几个特殊的目录 / 称为 根目录. 称为 当前目录.. 称为 当前目录的上级目录 绝对路径 相对路径 形如/user/share/tomcat/logs/ 以根目录开头的称为绝对路径 形如./logs 以 . 或者 .. 开头的称为相对路径 使用 Tab 键补全 我们敲的所有 Linux 命令都可以使用 Tab 键来尝试补全加快效率 例如 但是当有两个都是 a 开头的文件时按 Tab 键只能补充相同的部分不同的部分仍需自己打如 当双击 Tab 后它会将所有以 abc 为开头的文件显示出来 使用 Ctrl C 重新输入 如果命令或目录敲错了可以 Ctrl C 取消当前的命令 touch 语法touch [选项]...文件... 功能touch 命令参数可更改文档或目录的日期时间包括存取时间和更改时间或者新建一个不存在的文件 示例 touch test.txt rz sz rz 上传 sz 下载 有可能第一次使用会出现未安装这两个指令的情况提示如下 只需要将它提示的安装命令运行一下即可使用apt install lrzsz cat 语法cat [选项] [文件] 功能查看目标文件的内容 常用选项 -n 对输出的所有行编号 cat test.txt cat 命令会将该文件全部显示出来非常多 若想要进行分页查看可使用 more 命令 可以只显示当前页按空格往后翻页按 B 向上翻 想要结束查看按 Ctrl C 常用结束快捷键总结 Ctrl C两次 Ctrl Cexit:q!:q 当使用 less 来查看文件时Ctrl C 和 exit 就结束不了了 要使用 :q 来结束 使用 less 查看文件时PgUp 和 PgDn 来翻页 使用 less 看完文件后就消失了而 cat 和 more 看完文件后文件内容会留在屏幕上 使用 less 查看文件时可以使用 / [要查询的关键字] 来查询more 也是这样查找 head 命令 默认查看前 10 行 可以通过 head -数字 来设置查多少行 tail 命令从文件结尾查看默认 10 行 也可 tail -数字 来进行设置 mkdir 语法mkdir [选项] dirname... 功能在当前目录下创建一个名为“dirname”的目录 常用选项 -p, --parents 可以是一个路径名称此时若路径中的某些目录尚不存在加上此选项后系统将自动建立好那些尚不存在的目录即一次可以建立多级目录 示例 # 递归建立多个目录 mkdir -p test/test1 rm 语法rm [-f-i-r-v] [dirName/dir] 功能删除文件或目录 常用选项 -f 即使文件属性为只读即写保护也能直接删除-i 删除前逐一询问确认-r 删除目录及其下所有文件 示例 rm test.txt 重要注意事项 千万不要运行 rm -rf / 尤其是在公司的生产服务器上 删除文件可以直接删除 删文件夹不能直接删除需要加 -r cp 语法cp [选项] 源文件或目录 目标文件或目录 功能复制文件或目录 说明cp 指令用于复制文件或目录如同时指定两个以上的文件或目录且最后的目的地是一个已经存在的目录则它会把前面指定的所有文件或目录复制到此目录中若同时指定多个文件或目录而最后的目的地并非一个已经存在的目录则会出现错误信息 常用选项 -f 或 --force 强行复制文件或目录不论目的文件或目录是否已经存在-i 或 --interactive 覆盖文件之前先询问用户-r 递归处理将指定目录下的文件与子目录一并处理若源文件或目录的形态不属于目录或符号链接则一律视为普通文件处理-R 或 --recursive 递归处理将指定目录下的文件及其子目录一并处理 示例 cp test1.txt test2.txt mv 语法mv [选项] 源文件或目录 目标文件或目录 功能 视 mv 命令中的第二个参数类型的不同是目标文件还是目标目录mv 命令将文件重命名或将其移至一个新的目录中当第二个参数类型是文件时mv 命令完成文件重命名此时源文件只能有一个也可以是源目录名它将所给的源文件或目录重命名为给定的目标文件名当第二个参数是已经存在的目录名称时源文件或目录参数可以有多个mv 命令将各参数指定的源文件均移至目标目录中 常用选项 -fforce 强制的意思如果目标文件已经存在不会询问而直接覆盖-i若目标文件destination已经存在时就会询问是否覆盖 示例 mv test1.txt test2.txt tail 语法tail [必要参数] [选择参数] [文件] 功能用于显示指定文件末尾内容不指定文件时作为输入信息进行处理常用于查看日志文件 选项 -f 循环读取-n行数 显示行数 示例 tail -10 test1.txt vim / vi vim 是一个知名的文本编辑器使用 vim 可以进行文本编辑 其相当于 Windows 的记事本但功能比记事本要强大 1. 创建文件/打开文件 vim [文件名] 2. 进入插入模式 vim打开文件后默认是普通模式。普通模式下键盘的按键表示一些特殊功能的快捷键。(例如按下j并不 是输入字母j,而是表示光标往下移动一行)。需要进入插入模式才能进行文本编辑。 使用 i 键可以进入到插入模式。(左下角提示--INSERT--)然后就可以像记事本一样正常编辑了。 3. 保存 在插入模式下不能保存文件需要先回到 普通模式。按下 Esc 回到普通模式。 在普通模式下输入 :w再按下回车即可保存文件。 4. 退出 在插入模式下不能退出需要先回到 普通模式。 退出时分以下情况 ① 文件未修改输入 :q再按下回车即可退出 ② 文件修改并保存使用 :wq 同时执行保存和退出。 ③ 文件修改但不希望保存使用 :q! 进行强制退出 grep 语法grep [参数]...[文件]... 功能用于查找文件中是否包含指定字符串并显示对应的行 选项 -n行数 显示的行数-w 全字匹配要求整个单词都完全相同的结果才能匹配出来而不仅仅是一个单词的一部分-r 递归查找可以搜索多级目录下的所有文件--color 高亮查找到的结果--include 指定查找某些文件--exclude 指定排除某些文件 示例 grep hello Hello.java ps 语法ps [参数]... 功能用于查看当前系统上运行的进程 选项 a 显示一个终端的所有进程u 以用户为主的格式来显示程序状况x 显示所有程序不止是会话中的进程e 显示所有进程包括系统守护进程f 显示完成格式输出 示例 ps aux # 显示系统上所有的进程 ps aux | grep 进程名 ps aux | grep 进程idps -ef # 显示系统上所有的进程但没有上面查的全格式不一样 netstat 语法netstat [参数]... 功能查看系统上的网络状态 选项 -a 显示所有正在或不再侦听的套接字-n 显示数字形式地址而不是去解析主机、端口或用户名-p 显示套接字所属进程的 PID 和名称 示例 netstat -anp netstat -anp | grep 进程名 netstat -anp | grep 端口号 管道 管道是一种古老的“进程间通信”方式在 Linux 指令中可以使用 | 作为管道标记 意思是将前一个指令标准输出的内容作为第二个指令的标准输入内容 示例 ps -ef|grep java ps -ef|head -10 tail -f log.txt|grep Exception 3. 搭建 Java 部署环境 3.1 apt apt(Advanced Packaging Tool)Linux 软件包管理工具。用于在 Ubuntu、Debian 和相关 Linux 发行版上安装、更新、删除和管理 deb 软件包。 大多数 apt 命令必须以具有 sudo 权限的用户身份运行。 tip如果使用 CentOS 则使用 yum 软件包管理工具 apt 常用命令 列出所有软件包 sudo apt list 这个命令输出所有包的列表内容比较多可以使用 grep 命令过滤输出 sudo apt list|grep java 更新软件包数据库 sudo apt-get update apt 实际上在可用软件包的数据库上工作如果数据库没有更新系统将不知道是否有更新的软件包可用这就是为什么在安装任何 Linux 系统之后第一件事应该是更新 apt 数据库 运行此命令将会看到从各种服务器检索到的软件包信息 安装软件包 sudo apt install package_name 移除软件包 sudo apt remove package_name remove 命令将卸载给定的软件包但可能会留下一些配置文件如果要删除包含所有配置文件的软件包需使用 purge apt remove 和 apt purge 的区别 apt remove 删除包的二进制文件它留下了残留的配置文件apt purge 删除与包相关的所有内容包括配置文件 3.2 JDK 1. 更新软件包 sudo apt-get update 2. 安装 openjdk # 查找 jdk 包 apt list |grep openjdk-17# 安装 jdk sudo apt install openjdk-17-jdk 安装完成后输入 出现 jdk 版本即安装成功 tip此处安装的是 OpenJDK是一个开源版 JDK 卸载 OpenJDK # 检查安装的是哪个 OpenJDK dpkg --list | grep -i jdk# 移除 openjdk 包: apt-get purge openjdk*# 卸载 OpenJDK 相关包 apt-get purge icedtea-* openjdk-*# 检查所有 OpenJDK 包是否都已卸载完毕 dpkg --list | grep -i jdk 3.3 MySQL 1. 使用 apt 安装 MySQL # 查找安装包 apt list |grep mysql-server# 安装 mysql sudo apt install mysql-server 2. 安装完成后查看 MySQL 状态 sudo systemctl status mysql 执行结果 roothcss-ecs-55b8:~# sudo systemctl status mysql ● mysql.service - MySQL Community ServerLoaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)Active: active (running) since Mon 2024-12-23 16:42:03 CST; 25s agoProcess: 40526 ExecStartPre/usr/share/mysql/mysql-systemd-start pre (codeexited, statuMain PID: 40545 (mysqld)Status: Server is operationalTasks: 38 (limit: 4326)Memory: 364.3MCPU: 850msCGroup: /system.slice/mysql.service└─40545 /usr/sbin/mysqldDec 23 16:42:02 hcss-ecs-55b8 systemd[1]: Starting MySQL Community Server... Dec 23 16:42:03 hcss-ecs-55b8 systemd[1]: Started MySQL Community Server. lines 1-14/14 (END)3. MySQL 安装安全设置 默认的 MySQL 设置是不安全的MySQL 安装提供了一个安全脚本用于解决不太安全的默认选项运行以下命令 sudo mysql_secure_installation 接下来按照提示输入 4. 设置密码 连接 MySQL 服务器 sudo mysql 使用 alter user 命令修改密码 ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 此处是密码; 当再次连接服务器时需要使用 mysql -uroot -p 卸载 MySQL # 停⽌ mysql sudo systemctl stop mysql# 卸载 mysql sudo apt-get remove --purge mysql-server mysql-client mysql-common# 删除 MySQL 配置⽂件和数据 sudo rm -rf /etc/mysql /var/lib/mysql# 清理残留⽂件和⽬录 sudo apt-get autoremove sudo apt-get autoclean# 检查是否有残留 dpkg --list | grep -i mysql-*# 移除相关包 apt-get purge mysql*# 验证卸载结果 mysql --version 4. 部署 Web 项目到 Linux 4.1 环境配置 要想程序正常运行需要保证环境和程序都要正确我们需要先设置环境 数据准备 按照以下数据库建表脚本在服务器上运行建立表结构 -- 建表SQL create database if not exists java_blog_spring charset utf8mb4;use java_blog_spring; -- 用户表 DROP TABLE IF EXISTS java_blog_spring.user_info; CREATE TABLE java_blog_spring.user_info(id INT NOT NULL AUTO_INCREMENT,user_name VARCHAR ( 128 ) NOT NULL,password VARCHAR ( 128 ) NOT NULL,github_url VARCHAR ( 128 ) NULL,delete_flag TINYINT ( 4 ) NULL DEFAULT 0,create_time DATETIME DEFAULT now(),update_time DATETIME DEFAULT now() ON UPDATE now(),PRIMARY KEY ( id ), UNIQUE INDEX user_name_UNIQUE ( user_name ASC )) ENGINE INNODB DEFAULT CHARACTER SET utf8mb4 COMMENT 用户表;-- 博客表 drop table if exists java_blog_spring.blog_info; CREATE TABLE java_blog_spring.blog_info (id INT NOT NULL AUTO_INCREMENT,title VARCHAR(200) NULL,content TEXT NULL,user_id INT(11) NULL,delete_flag TINYINT(4) NULL DEFAULT 0,create_time DATETIME DEFAULT now(),update_time DATETIME DEFAULT now() ON UPDATE now(),PRIMARY KEY (id)) ENGINE InnoDB DEFAULT CHARSET utf8mb4 COMMENT 博客表;-- 新增用户信息 insert into java_blog_spring.user_info (user_name, password,github_url)values(zhangsan,123456,https://gitee.com/bubble-fish666/class-java45); insert into java_blog_spring.user_info (user_name, password,github_url)values(lisi,123456,https://gitee.com/bubble-fish666/class-java45);insert into java_blog_spring.blog_info (title,content,user_id) values(第一篇博客,111我是博客正文我是博客正文我是博客正文,1); insert into java_blog_spring.blog_info (title,content,user_id) values(第二篇博客,222我是博客正文我是博客正文我是博客正文,2); 程序配置文件修改 实际工作中开发环境测试环境以及生产环境的配置都是不一样的 比如 mysql 的用户名和密码 我们可以针对不同的环境设置不同的配置 多平台文件配置 针对不同平台创建不同的配置文件要求名字为 application-XXX.yml 或 application-XXX.properties 以下以 application-XXX.yml 为例 固定格式只有后面的字母可以改 在配置文件里写不同内容 application-dev.yml spring:application:name: spring-boot-blogdatasource:url: jdbc:mysql://127.0.0.1:3306/java_blog_spring?characterEncodingutf8useSSLfalseusername: rootpassword: 本地数据库密码driver-class-name: com.mysql.cj.jdbc.Driver mybatis-plus:configuration:map-underscore-to-camel-case: truelog-impl: org.apache.ibatis.logging.stdout.StdOutImpl logging:file:name: spring-blog.log application-prod.yml spring:application:name: spring-boot-blogdatasource:url: jdbc:mysql://127.0.0.1:3306/java_blog_spring?characterEncodingutf8useSSLfalseusername: rootpassword: 云服务器数据库密码driver-class-name: com.mysql.cj.jdbc.Driver mybatis-plus:configuration:map-underscore-to-camel-case: true # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl logging:file:name: spring-blog.log 在主配置文件 application.yml 中指定配置文件并删除数据库相关配置 spring:profiles:active: prod tip三种 application 生效情况 当把主配置文件注释掉后 只会生效主配置文件因此需要生效 dev 或 prod 时需要在主配置文件中设置 这样很麻烦每次需求变更都需要改代码因此可以使用 Maven 将其变成一个变量通过传递的方式来更改需求 从 Maven 中读取环境变量 profilesprofileiddev/id!--自定义的属性--propertiesprofile.namedev/profile.namemysql.password开发环境数据库密码/mysql.password/propertiesactivation!--默认使用 dev--activeByDefaulttrue/activeByDefault/activation/profileprofileidprod/id!--自定义的属性--propertiesprofile.nameprod/profile.namemysql.password生产环境数据库密码/mysql.password/properties/profile/profiles 4.2 构建项目并打包 在本地使用 maven 进行打包 tip如果 Test 代码中有与环境配置相关的操作比如数据库相关的操作打包可能会失败此时可点击下图红框处跳过测试 点击上图中的 package 运行如下 4.3 上传 jar 包到服务器并运行 1. 上传 jar 包 直接拖动打好的 jar 包到 XShell 窗口即可完成文件的上传上传速度取决于网络速度 2. 运行程序 java -jar blog.jar 上面命令可以启动程序但是当 XShell 窗口关掉后博客系统也被关闭了无法再登录 因此想要在后台运行程序需要用到下面命令 nohup java -jar blog.jar 此时就算将电脑关掉只要云服务器不关就可以一直访问 nohup后台运行程序用于在系统后台不挂断的运行命令退出终端不会影响程序的运行 语法格式 nohup Command [Arg...] [] 参数说明 Command要执行的命令 Arg一些参数可以指定输出文件 让命令在后台执行终端退出后命令仍旧执行 例子 nuhup java -jar blog.jar /logs Linux 可以通过 把需要输出的内容写到指定文件中这样的操作称为“重定向” 3. 开放端口号 如果外网需要访问该服务需要先从服务器防火墙开放对应的端口号 本着服务器安全的原则云服务器上的端口非必要不开启 比如常见端口号数据库3306Redis 6379尽可能不要开放而是采用其他方式来连接比如配置隧道的方式 以华为云服务器举例 1) 进入 安全组 / 防火墙 管理页面 2) 添加规则 端口号写需要开放的端口号多个端口号以逗号分隔 4.4 验证程序 使用 tail -f 来查看滚动日志 当尝试登录时会发现密码错误这是因为数据库的密码还没有加密下面生成一些密文放到数据库中 4.5 常见问题 服务不能正常访问的原因 1. 确认程序是否启动 使用下面两个命令查看程序是否在运行 ps -ef|grep java netstat -nltp|grep 8080 2. 确认端口号是否开放 3. 使用 curl http://127.0.0.1:8080/blog_login.html 看一下是否有返回 html 页面如果有返回说明程序启动成功了应该考虑端口是否已开放 4. 确认防火墙是否打开默认是关闭 如果防火墙打开了还需要再打开防火墙的端口号如上面的 8080 4.6 杀掉进程 如果需要重启服务或者重新部署等都需要先停止之前的服务 1. 查看当前服务的进程 ps -ef|grep java 上图中 46947 就是该服务的进程 2. 杀掉进程 kill -9 PID
http://www.dnsts.com.cn/news/42173.html

相关文章:

  • 东莞专业微网站建设价格国外服装设计师网站
  • 云南省建设工程网站ps网站头部图片
  • 成都网站建设托管校园网站设计
  • 如何建立一个好的网站网店代运营排名
  • 极简建站整合营销网络推广
  • 番禺网站制作价格股票网站开发
  • 注册公司查名字哪个网站中国医院建设协会网站
  • 做陶瓷的公司网站赣州建设监督网站
  • 做网站公司法人还要拍照吗小程序做一个要多少钱
  • 做网站需要流程wordpress 订阅推送
  • 前端网站论文网站系统运行环境
  • 城阳区规划建设局网站网站建设邀请函
  • 管理网站怎么做的济宁建设工程信息网站
  • wordpress 网站统计插件淘宝推广网站怎么建设
  • 快速建网站的软件wordpress邮箱内容更改
  • 做全国性的app网站推广多少快速建设企业门户网站
  • 手机网站调用分享google登录入口
  • 常州网站制作市场微信精准推广
  • 三网合一网站建设是指什么中国人事建设部网站
  • 南京做网站费用常平东莞网站建设
  • 漯河网站建设费用石家庄网红打卡地
  • 湖南建设局网站一个人单干暴利项目
  • 建设百度网站多少钱改成 响应式 网站
  • 顺德网站建设哪家好微信搜一搜排名优化
  • 背景做网站公司wordpress4.5 下拉菜单
  • 免费的网站软件正能量推荐网站用单页面框架做
  • 网站建设小说毕业设计wordpress生成16位名称
  • 东莞网站建设需要多少钱网站设计搜索栏怎么做
  • 网站建设包含哪些建设阶段网站底部显示百度站点地图
  • 试玩平台网站开发郑州网站建设丶汉狮网络