Linux操作系统:基于Linux的个人Web服务器搭建与自动化运维实践
基于Linux的个人Web服务器搭建与自动化运维实践
摘要
在互联网的海洋中,每个人都想拥有一艘属于自己的小船——一个个人Web服务器。Linux作为开源界的“老大哥”,无疑是搭建Web服务器的最佳选择。本文通过幽默风趣的方式,详细介绍了在Linux环境下搭建个人Web服务器的全过程,包括安装配置Apache/Nginx、部署Web应用、搭建个人博客或论坛、配置数据库、优化性能与安全性,以及使用自动化运维工具进行项目管理。同时,探讨了参与开源项目的意义和方法,旨在为初学者提供一份实用且有趣的实践指南。
关键词
Linux;Web服务器;Apache;Nginx;自动化运维;Ansible;开源项目
引言
在互联网时代,拥有一台自己的Web服务器就像拥有一片属于自己的小天地。你可以在这里写博客、建论坛,甚至搭建一个小型的在线商店。而Linux,这个开源界的“老大哥”,无疑是搭建Web服务器的最佳选择。它不仅免费,而且功能强大、安全性高。那么,如何在Linux上搭建一个功能完备、性能卓越且安全可靠的Web服务器呢?别急,让我们一步步来探索这个充满乐趣的过程。
第一部分:搭建个人Web服务器
1.1 安装和配置Apache或Nginx
1.1.1 选择你的“武器”:Apache vs Nginx
在Web服务器的世界里,Apache和Nginx就像两个武林高手,各有绝招。Apache历史悠久,功能强大,配置灵活,就像一个“万金油”,适合各种场景。而Nginx则是后起之秀,以高性能、低资源消耗著称,就像一个“速度型选手”,特别适合处理高并发的场景。
那么,到底该选哪一个呢?别急,我们先来对比一下:
特性 | Apache | Nginx |
---|---|---|
性能 | 中等,适合中小规模网站 | 高,特别适合高并发场景 |
资源消耗 | 较高 | 低 |
配置复杂度 | 中等,配置文件较直观 | 较高,需要一定学习成本 |
社区支持 | 非常强大,文档丰富 | 也很强大,但文档相对复杂 |
适用场景 | 通用,适合各种类型的Web应用 | 高并发、静态资源服务 |
如果你的网站流量不大,或者你更喜欢简单直观的配置,Apache是个不错的选择。如果你的网站需要处理大量并发请求,或者你对性能要求很高,那么Nginx可能更适合你。当然,你也可以两者都学,毕竟技多不压身嘛!
1.1.2 安装Apache
Apache是Web服务器界的“老大哥”,安装它就像在超市里买一包薯片一样简单。以Ubuntu为例,只需运行以下命令:
sudo apt update
sudo apt install apache2
安装完成后,打开浏览器访问http://localhost
,如果看到Apache的欢迎页面,恭喜你,第一步成功了!
接下来,我们来配置Apache。Apache的配置文件位于/etc/apache2/apache2.conf
,但通常我们不需要直接修改这个文件。相反,我们可以通过创建虚拟主机(Virtual Hosts)来管理不同的网站。虚拟主机就像一个个独立的小房间,每个房间都可以有自己的网站。
假设你想创建一个名为myblog.com
的虚拟主机,可以按照以下步骤操作:
-
创建网站目录:
sudo mkdir -p /var/www/myblog.com/html sudo chown -R $USER:$USER /var/www/myblog.com/html sudo chmod -R 755 /var/www/myblog.com
-
创建虚拟主机配置文件: 在
/etc/apache2/sites-available/
目录下创建一个名为myblog.com.conf
的文件:<VirtualHost *:80>ServerAdmin webmaster@myblog.comServerName myblog.comServerAlias www.myblog.comDocumentRoot /var/www/myblog.com/htmlErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
-
启用虚拟主机:
sudo a2ensite myblog.com.conf sudo systemctl restart apache2
-
测试网站: 在
/var/www/myblog.com/html
目录下创建一个index.html
文件:<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>My Blog</title> </head> <body><h1>Welcome to My Blog</h1><p>This is my personal blog.</p> </body> </html>
然后在浏览器中访问
http://myblog.com
,你会看到“Welcome to My Blog”的页面。
1.1.3 安装Nginx
如果你选择了Nginx,安装过程同样简单。Nginx是Web服务器界的“速度型选手”,特别适合处理高并发的场景。以Ubuntu为例,运行以下命令:
sudo apt update
sudo apt install nginx
安装完成后,访问http://localhost
,你会看到Nginx的欢迎页面,是不是很有成就感?
接下来,我们来配置Nginx。Nginx的配置文件位于/etc/nginx/nginx.conf
,但通常我们也会通过创建虚拟主机来管理不同的网站。假设你想创建一个名为myforum.com
的虚拟主机,可以按照以下步骤操作:
-
创建网站目录:
sudo mkdir -p /var/www/myforum.com/html sudo chown -R $USER:$USER /var/www/myforum.com/html sudo chmod -R 755 /var/www/myforum.com
-
创建虚拟主机配置文件: 在
/etc/nginx/sites-available/
目录下创建一个名为myforum.com
的文件:server {listen 80;server_name myforum.com www.myforum.com;root /var/www/myforum.com/html;index index.html;location / {try_files $uri $uri/ =404;} }
-
启用虚拟主机:
sudo ln -s /etc/nginx/sites-available/myforum.com /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx
-
测试网站: 在
/var/www/myforum.com/html
目录下创建一个index.html
文件:<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>My Forum</title> </head> <body><h1>Welcome to My Forum</h1><p>This is my personal forum.</p> </body> </html>
然后在浏览器中访问
http://myforum.com
,你会看到“Welcome to My Forum”的页面。
1.2 部署简单的Web应用
1.2.1 PHP应用
PHP是Web开发界的“老江湖”,许多知名的网站都基于PHP构建。WordPress是全球最受欢迎的博客平台,它基于PHP和MySQL开发。如果你想搭建一个个人博客,WordPress绝对是你的不二之选。
安装WordPress的过程非常简单,就像在花园里种下一朵花一样轻松。以下是详细步骤:
-
安装PHP和MySQL:
sudo apt update sudo apt install php libapache2-mod-php php-mysql sudo apt install mysql-server
-
下载WordPress:
cd /tmp wget https://wordpress.org/latest.tar.gz tar -xzf latest.tar.gz sudo cp -a wordpress/. /var/www/myblog.com/html/
-
配置WordPress: 在
/var/www/myblog.com/html
目录下创建一个wp-config.php
文件:<?php define('DB_NAME', 'wordpress'); define('DB_USER', 'root'); define('DB_PASSWORD', 'your_mysql_password'); define('DB_HOST', 'localhost'); define('DB_CHARSET', 'utf8'); define('DB_COLLATE', ''); $table_prefix = 'wp_'; define('WP_DEBUG', false); if ( !defined('ABSPATH') ) {define('ABSPATH', dirname(__FILE__) . '/'); } require_once(ABSPATH . 'wp-settings.php');
-
创建MySQL数据库:
sudo mysql -u root -p
输入密码后,执行以下SQL语句:
CREATE DATABASE wordpress; GRANT ALL PRIVILEGES ON wordpress.* TO 'root'@'localhost'; FLUSH PRIVILEGES; EXIT;
-
访问WordPress安装页面: 在浏览器中访问
http://myblog.com
,按照提示完成WordPress的安装。你可以设置网站标题、管理员用户名和密码等信息。
1.2.2 Python Flask应用
Python Flask是一个轻量级的Web框架,适合快速开发小型Web应用。它就像一个“小精灵”,灵活且强大。以下是一个简单的Flask应用示例:
-
安装Flask:
sudo apt update sudo apt install python3-pip pip3 install Flask
-
编写Flask应用代码: 创建一个名为
app.py
的文件:from flask import Flask app = Flask(__name__)@app.route('/') def hello_world():return 'Hello, World!'if __name__ == '__main__':app.run(host='0.0.0.0', port=5000)
-
运行Flask应用:
python3 app.py
-
访问应用: 在浏览器中访问
http://localhost:5000
,你会看到“Hello, World!”的问候。
如果你的Flask应用需要部署到生产环境,可以使用Gunicorn作为WSGI服务器,Nginx作为反向代理。以下是部署步骤:
-
安装Gunicorn:
pip3 install gunicorn
-
启动Gunicorn:
gunicorn -w 4 app:app
-
配置Nginx反向代理: 修改
/etc/nginx/sites-available/myflaskapp.com
配置文件:server {listen 80;server_name myflaskapp.com;location / {proxy_pass http://127.0.0.1:8000;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;} }
-
启用配置并重启Nginx:
sudo ln -s /etc/nginx/sites-available/myflaskapp.com /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx
-
测试应用: 在浏览器中访问
http://myflaskapp.com
,你会看到“Hello, World!”的页面。
第二部分:配置数据库
2.1 选择数据库:MySQL vs MariaDB
MySQL和MariaDB是数据库界的“双胞胎”,它们都非常流行。MySQL是商业产品,而MariaDB是它的开源分支。两者在功能上几乎没有区别,选择哪一个取决于你的喜好。
2.2 安装MySQL
在Linux上安装MySQL就像在公园里散步一样轻松。以Ubuntu为例,运行以下命令:
sudo apt update
sudo apt install mysql-server
安装完成后,运行以下命令进行安全配置:
sudo mysql_secure_installation
按照提示完成配置,你的MySQL数据库就安全了。
2.3 安装MariaDB
如果你选择了MariaDB,安装过程同样简单:
sudo apt update
sudo apt install mariadb-server
运行以下命令进行安全配置:
sudo mysql_secure_installation
完成配置后,你的MariaDB数据库就准备好了。
第三部分:优化网站性能和安全性
3.1 性能优化
3.1.1 静态资源缓存
通过配置Web服务器,可以将静态资源(如图片、CSS文件等)缓存到客户端,减少服务器的负载。例如,在Nginx中,可以通过以下配置实现:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {expires 30d;
}
这将使静态资源在客户端缓存30天,大大提高了网站的响应速度。
3.1.2 使用CDN
CDN(内容分发网络)可以将网站的内容缓存到全球各地的服务器上,用户访问时可以从最近的服务器获取内容,从而提高访问速度。有许多免费的CDN服务可供选择,如Cloudflare。
3.2 安全性优化
3.2.1 配置防火墙
防火墙是保护服务器安全的第一道防线。在Linux上,可以使用ufw
(Uncomplicated Firewall)来配置防火墙。例如,允许HTTP和HTTPS流量:
sudo ufw allow 'Apache Full'
sudo ufw enable
或者,如果你使用的是Nginx:
sudo ufw allow 'Nginx Full'
sudo ufw enable
3.2.2 使用HTTPS
HTTPS可以加密网站的流量,保护用户数据的安全。可以使用Let's Encrypt提供的免费SSL证书来实现HTTPS。安装Certbot(Let's Encrypt的客户端工具):
sudo apt install certbot python3-certbot-nginx
然后运行以下命令获取证书并配置Nginx:
sudo certbot --nginx -d yourdomain.com
按照提示完成操作后,你的网站就支持HTTPS了。
第四部分:自动化运维项目
4.1 使用Ansible进行自动化运维
Ansible是一个强大的自动化运维工具,可以通过编写Playbook来实现服务器配置管理、软件部署等任务。
4.1.1 安装Ansible
在Linux上安装Ansible就像在花园里种下一朵花一样简单。以Ubuntu为例,运行以下命令:
sudo apt update
sudo apt install ansible
安装完成后,你可以通过ansible --version
命令查看Ansible的版本。
4.1.2 编写Ansible Playbook
以下是一个简单的Ansible Playbook示例,用于安装Apache并部署一个简单的HTML页面:
---
- name: Install Apache and deploy a simple HTML pagehosts: webserversbecome: yestasks:- name: Install Apacheapt:name: apache2state: presentupdate_cache: yes- name: Copy HTML file to /var/www/htmlcopy:src: index.htmldest: /var/www/html/index.htmlowner: www-datagroup: www-datamode: '0644'
将上述代码保存为site.yml
,然后运行以下命令执行Playbook:
ansible-playbook site.yml
只要你的目标服务器在hosts
文件中正确配置,Ansible就会自动完成Apache的安装和HTML页面的部署。
4.2 使用Puppet进行自动化运维
Puppet是另一个流行的自动化运维工具,通过编写Puppet代码来管理服务器配置。
4.2.1 安装Puppet
在Linux上安装Puppet就像在厨房里煮一杯咖啡一样简单。以Ubuntu为例,运行以下命令:
sudo apt update
sudo apt install puppet-agent
安装完成后,你可以通过puppet --version
命令查看Puppet的版本。
4.2.2 编写Puppet代码
以下是一个简单的Puppet代码示例,用于安装Apache并配置一个简单的HTML页面:
class apache {package { 'apache2':ensure => installed,}service { 'apache2':ensure => running,enable => true,require => Package['apache2'],}file { '/var/www/html/index.html':content => "Hello, World!\n",owner => 'www-data',group => 'www-data',mode => '0644',require => Package['apache2'],}
}
将上述代码保存为apache.pp
,然后运行以下命令应用配置:
puppet apply apache.pp
Puppet会自动完成Apache的安装和HTML页面的配置。
第五部分:参与开源项目
5.1 学习如何贡献代码到开源项目
开源项目是程序员的天堂,你可以在这里学习、交流、贡献代码。参与开源项目不仅可以提升你的编程技能,还可以结交志同道合的朋友。
5.1.1 找到感兴趣的项目
GitHub是开源项目的宝库,你可以在这里找到各种各样的项目。通过搜索关键词,找到你感兴趣的项目。
5.1.2 了解项目的贡献指南
每个开源项目都有自己的贡献指南,通常在项目的README.md
或CONTRIBUTING.md
文件中。仔细阅读这些文件,了解项目的开发流程和规范。
5.1.3 提交你的第一个Pull Request
当你对项目有了一定的了解后,可以尝试提交你的第一个Pull Request(PR)。PR是开源项目中的一种协作方式,你可以通过它向项目提交你的代码更改。
5.2 理解开源社区的协作模式和开发流程
开源社区是一个充满活力和创新的地方,它的协作模式和开发流程与其他项目有所不同。
5.2.1 分布式版本控制
开源项目通常使用Git作为版本控制系统,采用分布式版本控制的方式。每个开发者都有自己的代码仓库,可以通过Pull Request将代码合并到主仓库。
5.2.2 代码审查
在开源项目中,代码审查是一个非常重要的环节。当你提交PR后,项目的维护者会对你的代码进行审查,提出意见和建议。这是一个学习和交流的好机会。
5.2.3 社区文化
开源社区有着独特的文化,强调合作、分享和尊重。在这里,你可以结交来自世界各地的朋友,共同为开源事业贡献力量。
结论
通过本文的介绍,我们详细探讨了在Linux环境下搭建个人Web服务器的全过程,包括安装配置Web服务器、部署Web应用、配置数据库、优化性能与安全性,以及使用自动化运维工具进行项目管理。同时,我们还探讨了参与开源项目的意义和方法。希望本文能够为你在Linux世界中的探索提供帮助和启发。记住,技术的世界是充满乐趣的,只要你敢于尝试,就一定能收获满满的成就感。
相关文章:

Linux操作系统:基于Linux的个人Web服务器搭建与自动化运维实践
基于Linux的个人Web服务器搭建与自动化运维实践 摘要 在互联网的海洋中,每个人都想拥有一艘属于自己的小船——一个个人Web服务器。Linux作为开源界的“老大哥”,无疑是搭建Web服务器的最佳选择。本文通过幽默风趣的方式,详细介绍了在Linux…...
[创业之路-321]:创新开拓思维和经营管理思维的比较
目录 一、概述 1.1、定义与内涵 1、创新开拓思维: 2、经营管理思维: 1.2、特点与优势 1、创新开拓思维的特点与优势: 2、经营管理思维的特点与优势: 3、应用场景与限制 4、总结 二、创新开拓思维与经营管理思维…...

vivado修改下载器下载速率
Error Launching Program X Error while launching program: fpga configuration failed. DONE PIN is not HIGH 原因是下载器速度太快了。先从任务管理器中关闭hw_server.exe试一下,要是不行就按下面三种方法解决。 第一种方法可以不用修改下载速度,直接先从vivado中将bit流…...
运维基线方案说明
1. 总体思路 建立运维基线的核心目标是保障系统稳定性、提升安全性、及时响应异常事件并不断优化系统性能。初创公司资源有限,方案应尽可能简单、易用,同时具备一定的自动化和标准化能力。建议从以下几个层面入手: 标准化文档:制…...

pycharm中配置PyQt6详细教程
PyQt6 是 Qt 框架的 Python 绑定库,基于 Qt 6 开发,专为创建跨平台图形用户界面(GUI)应用程序设计。 本章教程,主要记录在pycharm中配置使用PyQt6的流程。 一、安装基础环境 在此之前,你需要提前安装好Python解释器,推荐使用anaconda创建虚拟环境。 conda create -n pyt…...
大湾区经济网报道:2025春运收官 全国跨区流动90亿,大湾区12亿人次
(原标题:2025年春运收官:全国跨区流动超90亿人次 大湾区贡献12亿人次) 大湾区经济网2月23日电(记者 余芳)2025年春运昨日(2月22日)正式结束,全国跨区域人员流动量达90.2…...
Docker用户的困境:免费项目的减少与成本的增加
摘要 在生产环境中,Docker用户正面临新的挑战:免费项目逐渐减少,收费服务成为主流趋势。表面上免费的选项,由于缺乏必要的支持和及时更新,反而可能导致更高的隐性成本。对于依赖Docker进行开发和部署的企业而言&#x…...
1.4 嵌入式系统的软件
嵌入式系统的开发流程中,硬件和固件设计完成后,嵌入式软件承担起实现功能、用户交互、系统集成和性能优化等任务;嵌入式系统软件分为设备驱动、操作系统和应用程序三个层面。 因此嵌入式系统软件开发工程师通常分为三类:嵌入式系统…...

PHP2(WEB)
##解题思路 打开页面什么线索都没有,目录扫描只是扫出来一个index.php,而源代码没有东西,且/robots.txt是不允许访问的 于是一番查询后发现,有个index.phps的文件路径,里头写着一段php的逻辑,对url的id参数…...

【精调】LLaMA-Factory 快速开始1: Meta-Llama-3.1-8B-Instruct
llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml llamafactory-cli chat examples/inference/llama3_lora_sft.yaml llamafactory-cli export examples/merge_lora/llama3_lora_sft.yaml模型下载 git clone https://www.modelscope.cn/LLM-Research/Meta-Lla…...

一、计算机等级考试——题库
(1)选择题 (2)基本操作题 (3)上网题 (4)文字题 (5)表格题 (6)演示文稿 二、计算机等级考试——标准评分 (1)选…...
Android系统开发 给system/app传包报错
一、现象 adb 命令推送apk到system/app下提示 remote couldnt create file: Read-only file system demo /oem/appsystem app 在Android设备上,/system 分区通常是只读的(Read-only file system),这意味着普通用户或应用程序…...

libxls库的编译以及基于Visual studio的配置
最近有一个需求在windows处理xls,所以就需要libxls这个库,调查了一下,基于C的库的解析情况如下: 所以最理想的就是Libxlsd个开源的方案 基于历史整理的 libxls 在 MinGW 下的编译步骤 前提条件 系统:Windows&#…...

OpenHarmony构建系统-GN与子系统、部件、模块理论与实践
理论 OpenHarmony源码体系 OpenHarmony的源码架构基于模块化设计,为了方便系统的功能的增加和裁剪,设计了基于GN构建的模块系统。整个模块可从大到小划分为产品(product)、领域/子系统集(domain)、子系统(sub system)、部件(component)、模块/组件(modu…...
kafka+spring cloud stream 发送接收消息
方案 1:使用旧版 StreamListener(适用于 Spring Cloud Stream < 2.x) 1. 添加依赖(pom.xml) <!-- Spring Cloud Stream Kafka Binder --> <dependency> <groupId>org.springframework.clo…...

使用ArcGIS Pro自动矢量化水系
在地理信息系统(GIS)领域,自动矢量化是一项至关重要的技术,它能够将栅格图像中的要素转换为矢量数据,从而方便后续的分析和处理。本文将详细介绍如何使用ArcGIS Pro自动矢量化水系,适用于那些颜色相对统一、…...

在PyCharm中运行Jupyter Notebook的.ipynb文件及其pycharm软件的基础使用
(注意需使用PyCharm专业版,学生、教师可以申请免费使用:https://www.jetbrains.com/shop/eform/students) 1. pycharm2024版汉化 https://blog.csdn.net/m0_74103046/article/details/144560999 2. pycharm中的python控制台和J…...

实验 Figma MCP + Cursor 联合工作流
开源项目 Figma-Context-MCP 介绍 使用此 Model Context Protocol 服务器授予 Cursor 对 Figma 文件的访问权限。 当 Cursor 可以访问 Figma 设计数据时,它比粘贴屏幕截图等其他方法更能准确地进行代码转化。 开源仓库: GLips/Figma-Context-MCP 具体…...
移植live555 上的 rtsp
一、V4L2视频采集模块(完整示例) #include <linux/videodev2.h> #include <sys/ioctl.h> #include <fcntl.h>// 初始化V4L2摄像头 int init_v4l2_camera(const char* dev_path, int width, int height) {int fd open(dev_path, O_RD…...
Web Worker终极优化指南:4秒卡顿→0延迟的实战蜕变
💡 导读:从4秒卡顿到丝滑响应 真实痛点场景:当斐波那契数列计算量达10亿次时,页面完全冻结4.2秒!通过Web Worker优化后,UI响应时间降至16ms以内。本文手把手带您实现性能蜕变! 一、Web Worker核…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...