web平台—apache

web平台—apache

      • 1. 学apache前需要知道的知识点
      • 2. apache详解
        • 2.1 概述
        • 2.2 工作模式
        • 2.3 启动apache网站整体流程
        • 2.4 相关文件保存位置
        • 2.5 配置文件详解
      • 3. apache配置实验
        • 实验1:设置apache的目录别名
        • 实验2:apache的用户认证
        • 实验3:虚拟主机 (重点)
        • 实验4:域名跳转(重点)
        • 实验5:apache+openssl实现https(重点)
        • 实验6:apache日志轮替
        • 实验7:不记录指定文件类型的日志
        • 实验8:apache配置静态缓存
        • 实验9:禁止解析php

1. 学apache前需要知道的知识点

HTML语言:超文本标记语言,使用html语言编写的文本叫超文本,“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。

HTTP协议:超文本传输协议

HTTP使用统一资源标识符(URL)来建立连接和传输数据。是一个基于TCP/IP通信协议来传递数据的协议,属于应用层协议。

URL:统一资源定位符

统一资源定位符是一些数据或文件在互联网上的地址,以及客户需要访问的地址。是标准资源的地址。http://www.kernel.com:80/image/a.jpg

知识拓展:

**URI:**统一资源标志符,URI与URL都是定位资源位置的,就是表示这个资源的位置信息,就像经纬度一样可以表示你在世界的哪个角落。URI是一种宽泛的含义更广的定义,而URL则是URI的一个子集,就是说URL是URI的一部分。

虚拟机:通过创建虚拟硬件,完成系统安装环境部署的方式,必须依托宿主机完成

虚拟主机:web 服务器上的网站平台构建方式,一个网站平台可以同时独立运行多个网站的部署方式

实现虚拟主机的三种方式:

(1)基于 IP 地址(不推荐,因为 IPv4 不够用)

(2)基于 port 地址(不推荐,因为使用不方便)

(3)基于域名的虚拟主机(推荐使用)

2. apache详解

2.1 概述

​ apache具有跨平台和安全性被企业广泛使用,可以通过Perl、python和php等解释器快速编译到服务器中。

​ apache支持SSL技术、多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。现在web服务器市场使用率最高的是apache的60%,然后是nginx的28%,其次就是tomcat

2.2 工作模式

​ Apache一共有3种稳定的MPM模式(MPM:多进程处理模块),它们分别是prefork、worker、event

在这里插入图片描述

    apache启动之前就已经预先fork(在apache中是创建)一些子进程,等待请求进来。
    做这样的原因就是为了减少频繁创建进程和销毁进程。每个子进程只有一个线程,在一个时间点内,只能处理一个请求。
------------------------------------------------------------------
优点:这种模式相对来说是成熟稳定,可以兼容所有新老项目,是这几个模式最安全的
缺点:一个进程长期不销毁会占用更多的系统资源,消耗更多的内存。也不支持高并发请求

在这里插入图片描述

采用多进程和多线程模式混合。
这个也是预先创建几个子进程,然后每个子进程创建了监听线程和工作线程。
当每个用户在请求的时候,会被分配到一个线程来服务。
线程比进程更加轻量,线程是会共享父进程的内存空间,内存负重也会减少一些。
它比prefork更适合高并发的场景下
----------------------------------------------------------------
优点:每个线程占据了更少的内存,总体内存利用率提高了,高并发下表现更优秀。
缺点:必须考虑线程安全的问题。

在这里插入图片描述

    它和worker模式很像,最大的区别在于,它解决了keep-alive场景下,长期被占用的线程的资源浪费问题。
    event MPM中,会有一个专门的线程来管理这些keep-alive类型的线程,当有真实请求过来的时候,将请求传递给服务线程,执行完毕后,又允许它释放。这样增强了高并发场景下的请求处理能力。
    HTTP采用keepalive方式减少TCP连接数量,但是由于需要与服务器线程或进程进行绑定,导致一个繁忙的服务器会消耗完所有的线程。
    Event MPM是解决这个问题的一种新模型,它把工作进程从连接中分离出来。在服务器处理速度很快,同时具有非常高的点击率时,可用的线程数量就是关键的资源限制,此时Event MPM方式是最有效的。

在apache中什么是keep-alive场景

	在Apache中,keep-alive场景是指当HTTP请求和响应在单个TCP连接上进行多次传输时的情况。
	这种情况下,客户端和服务器之间的TCP连接在请求完成后不会立即关闭,而是保持打开状态,以便后续请求可以继续在该连接上进行传输。
----------------------------------------------------------------- 
具体来说,keep-alive场景的特点和优势包括:
    1.减少TCP连接建立和关闭的开销:
        对于每个HTTP请求,如果都需要建立一个新的TCP连接,那么在网络传输和服务器资源消耗上都会带来额外的开销。
        而keep-alive允许在同一个TCP连接上进行多次请求和响应,从而减少了这种开销。

    2.提高性能和响应速度:
        由于减少了TCP连接的建立和关闭,服务器可以更快速地响应客户端的请求。
        此外,在包含大量图片的HTML文档中,使用keep-alive可以显著提高加载速度,减少等待时间。
查看方式:
httpd -V | grep -i "server mpm"

指定方式:
在编译时,在选项中指定,--with-mpm=xxx
./configure --help | grep mpm
2.3 启动apache网站整体流程

在这里插入图片描述

在这里插入图片描述

2.4 相关文件保存位置

配置文件位置

源码包安装:	PREFIX(安装路径)/etc/httpd.conf(主配置文件)
			PREFIX/etc/extra/*.conf(子配置文件)
rpm包安装:  /etc/httpd/conf/httpd.conf
		   /etc/httpd/conf.d/*.conf
		   /usr/share/doc/httpd-*.*.*
			复制上述文件到/etc/httpd/conf.d/

网页文件位置

源码包安装:	PREFIX/htdocs/
rpm包安装:	 /var/www/html/

日志文件位置

源码包安装:	PREFIX/logs/
rpm包安装:	 /var/log/httpd/
2.5 配置文件详解

针对主机环境的基本配置参数

ServerRoot		/usr/local/apache2 	#apache主目录
Listen			80		#监听端口{Listen 192.168.99.135:80}
LoadModule		php7				#加载的相关模块
User						#用户
Group						#组
ServerAdmin					#管理员邮箱
ServerName		#服务器名(没有域名解析时,使用临时解析。默认不开启)
ErrorLog "logs/error_log					#服务器错误日志
CustomLog "logs/access_log" common			#访问记录日志
DirectoryIndex index.html index.php		#默认网页文件名,优先级顺序
Include  etc/extra/httpd-vhosts.conf    #子配置文件中内容也会加载生效

主页目录即权限

DocumentRoot "/usr/local/apache2/htdocs"   #网页文件存放目录(默认)
<Directory "/usr/local/apache2/htdocs">    #定义指定目录的权限
	#定义指定目录没有任何额外权限
	Options Indexes FollowSymLinks None	
    #定义指定目录拥有所有权限(除去MultiViews以外)
	Options Indexes FollowSymLinks	All		
    #定义指定目录浏览权限(当此目录下没有默认网页文件时,显示目录内容)
	Options Indexes FollowSymLinks	Indexes				
	#没有Indexes这个选项,当被访问目录下没有首页文件时禁止显示文件列表
	
	#准许软链接到其他目录
	Options Indexes FollowSymLinks		
	#准许文件名泛匹配(需要手动开启模块才有效negotiation)
	Options Indexes MultiViews
    
    #定义是否允许目录下.htaccess文件中的权限生效
    #.htaccess中权限不生效
	AllowOverride None  
	#文件中所有权限都生效						
	AllowOverride	All	
    #文件中,只有网页认证的权限生效
	AllowOverride	AuthConfig					
	#设置用户访问控制列表
	Require all granted(denied)
</Directory>
	
<IfModule dir_module>	#此标签用来指定访问到指定目录的首页
    DirectoryIndex index.html index.php	#可以写多个,但是有优先级之分
</IfModule>

httpd三种方法实现资源共享

1.将目录声明为默认网页目录:Document
2.软连接:FollowSymLinks
3.目录别名:alias_module
注意:不管哪种方式将目录作为网页共享目录,都要使用<Directory /dir>声明该目录的权限

3. apache配置实验

实验1:设置apache的目录别名

实验需求:如果想将一个不在DocumentRoot目录中的文件共享到网站上,并能够让它们留在本来位置而不需要进行移动的话,处理这种情况可以通过建立别名的方式将URL指向特定的目录

​ 编辑主配置文件

[root@localhost ~]# vim /usr/local/apache2/etc/httpd.conf

在这里插入图片描述

​ 编辑子配置文件

[root@localhost ~]# vim /usr/local/apache2/etc/extra/httpd-autoindex.conf

在这里插入图片描述

实验2:apache的用户认证

实验需求:一般情况下网站都是有一个管理后台的网页,而且管理后台就有密码,为了更加安全,可以添加用户认证

​ 1.编辑主配置文件

vim /usr/local/apache2/etc/httpd.conf

在这里插入图片描述

​ 2.指定目录下创建权限文件

cd /usr/local/apache2/htdocs/typecho/admin 
#切换该目录下创建.htaccess,并添加以下内容

在这里插入图片描述

​ 3.建立密码文件,加入允许访问的用户(这个用户和系统用户无关)

#建立密码文件,只有添加第一个用户时,采用-c
[root@localhost admin]#  htpasswd  -c  /usr/local/apache2/htdocs/typecho/admin/apache.passwd  type
#添加多个用户使用-m参数
[root@localhost admin]#  htpasswd  -m  /usr/local/apache2/htdocs/typecho/admin/apache.passwd  type

​ 4.重启apache服务

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start

在这里插入图片描述

实验3:虚拟主机 (重点)

实验需求:在一台服务器上实现多个多个虚拟主机(网站空间),来完成一个服务器上实现多个网站

实验准备

​ 1.准备两个域名 (www.typechoblog.com | www.discurz.com)

​ 2.网站主页目录规划 (htdocs目录下的typecho和discurz )

实验步骤

​ 1.修改主配置文件开启文件关联

[root@localhost ~]# vim /usr/local/apache2/etc/httpd.conf

在这里插入图片描述

​ 2.编辑子配置文件,编写虚拟主机标签

[root@localhost htdocs]# vim /usr/local/apache2/etc/extra/httpd-vhosts.conf 

在这里插入图片描述

在这里插入图片描述

​ 3.重启服务,验证结果

[root@localhost htdocs]# /usr/local/apache2/bin/apachectl stop
[root@localhost htdocs]# /usr/local/apache2/bin/apachectl start
#注意在windows需要修改本机hosts文件,linux也是
192.168.99.135      www.typechoblog.com
192.168.99.135      www.discurz.com
实验4:域名跳转(重点)

实验需求:一个服务器难免会有多个域名,多个域名要分出主次,不管使用哪个域名最后都要回到主域名,这样就是域名跳转,状态码301是永久跳转,302是临时跳转

实验条件:虚拟主机能正常访问;打开主配置文件开启重写模块

实验步骤

​ 1.开启重写模块

[root@localhost htdocs]# vim /usr/local/apache2/etc/httpd.conf
#打开重写模块
LoadModule rewrite_module modules/mod_rewrite.so

​ 2.修改虚拟主机配置文件

<Directory "/usr/local/apache2/htdocs/typecho/">
        Options Indexes FollowSymLinks   ##准许软链接到其他目录
        AllowOverride All         #开启权限认证文件
        Require all granted        #设置用户访问列表
</Directory>
<VirtualHost 192.168.99.135:80>                  #虚拟主机标签
        ServerAdmin blog@typecho.com             #管理员邮箱    
        DocumentRoot "/usr/local/apache2/htdocs/typecho/"  #网站主目录
        ServerName www.typechoblog.com			#网站域名
        ServerAlias blog.lcy.com				#网站别名
        ErrorLog "logs/blog-error.log"			#错误日志
        CustomLog "logs/blog-access_log" common   #访问日志
</VirtualHost>

<Directory "/usr/local/apache2/htdocs/discurz/">
        Options Indexes FollowSymLinks     
        AllowOverride All
        Require all granted
</Directory>
<VirtualHost 192.168.99.135:80>
        ServerAdmin luntan@discurz.com
        DocumentRoot "/usr/local/apache2/htdocs/discurz/"
        ServerName www.discurz.com
        ServerAlias discurz.lcy.com
        ErrorLog "logs/tan-error.log"
        CustomLog "logs/tan-access_log" common
</VirtualHost>

​ 3.创建规则匹配文件

[root@localhost ~]# vim /usr/local/apache2/htdocs/typecho/.htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} ^blog.lcy.com
RewriteRule  ^(.*)$   http://www.typechoblog.com/$1 [R=permanent]
[root@localhost ~]# vim /usr/local/apache2/htdocs/discurz/.htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} ^discurz.lcy.com
RewriteRule  ^(.*)$   http://www.discurz.com/$1 [R=permanent,L]

​ 4.重启服务器并测试

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
实验5:apache+openssl实现https(重点)

实验需求:https是密文传输协议,比http安全的多。现在使用http+ssl实现https加密功能

实验条件:检查apache是否支持ssl,还有ssl是否安装,已安装就将ssl启动

模块存放目录:/usr/local/apache2/modules
检查模块是否启用:[root@localhost modules]# /usr/local/apache2/bin/apachectl -M | grep ssl

实验步骤

​ 1.开启ssl模块功能

[root@localhost ~]# vim /usr/local/apache2/etc/httpd.conf
LoadModule ssl_module modules/mod_ssl.so #取消注释
Include etc/extra/httpd-ssl.conf	#取消注释

​ 2.ca证书申请

[root@localhost ~]# cd /usr/local/apache2/etc/
[root@localhost etc]# mkdir ssl
[root@localhost etc]# cd ssl
[root@localhost ssl]# openssl genrsa -out blog.key 1024
#建立服务器私钥,生成RSA私钥
	
[root@localhost ssl]# openssl req -new -key blog.key -out blog.csr
#需要依次输入国家,地区,城市,组织,组织单位,Email等信息。最重要的是有一个common name,可以写你的名字或者域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。生成的csr文件交给CA签名后形成服务端自己的证书

[root@localhost ssl]#  openssl x509 -req -days 365 -sha256 -in blog.csr -signkey blog.key -out blog.crt
#使用CA服务器签发证书,设置证书的有效期等信息

​ 3.修改etc/extra/httpd-ssl子配置文件

[root@localhost ~]# vim /usr/local/apache2/etc/extra/httpd-ssl.conf
    <VirtualHost _default_:443>
    DocumentRoot "/usr/local/apache2/htdocs"
    ServerName www.typechoblog.com
    ServerAdmin you@example.com
    ErrorLog "/usr/local/apache2/logs/type_ssl_error_log"
    TransferLog "/usr/local/apache2/logs/type_ssl_access_log"
    SSLCertificateFile "/usr/local/apache2/etc/ssl/blog.crt"
    SSLCertificateKeyFile "/usr/local/apache2/etc/ssl/blog.key"

#开启调用mod_socache_shmcb模块
[root@localhost ~]# vim /usr/local/apache2/etc/httpd.conf
    LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

​ 4.重启验证

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start

​ 5.强制跳转(只允许https访问,不允许http访问)

[root@localhost ~]# vim /usr/local/apache2/htdocs/typecho/.htaccess
    RewriteEngine on						#开启转发规则
    RewriteCond %{SERVER_PORT} !^443$		#检查访问端口只要目标不是443的
    RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [R=301,L]	#301永久跳转,302临时跳转,  L:当前行规则执行完,不在继续执行新的规则
#当使用旧域名访问时,规则会自动跳转到加密的新域名来访问
#若不是通过旧域名访问,会自动跳转到下一条规则
#若不是通过443端口进行访问,那么规则会自动添加https协议使其通过,如果是443端口,则继续使用原域名访问

#重启验证
/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
实验6:apache日志轮替

实验需求: 设置成(每小时|每天|每周|每月)一个日志文件

实验步骤

​ 1.设置博客的ssl错误记录和博客的ssl访问记录

[root@localhost ssl]# vim /usr/local/apache2/etc/extra/httpd-ssl.conf
	ErrorLog "/usr/local/apache2/logs/type_ssl_error_log"
	TransferLog "/usr/local/apache2/logs/type_ssl_access_log"

​ 2.设置apache分割

[root@localhost ssl]# vim /usr/local/apache2/etc/extra/httpd-ssl.conf
#错误日志
ErrorLog "/usr/local/apache2/logs/type_ssl_error_log"
#访问日志
TransferLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/type_ssl_access_%Y%m%d.log 86400"

​ 3.重启服务并验证

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
实验7:不记录指定文件类型的日志

实验需求:当一个网站访问量特别大,访问日志就很多,通常是图片、html、css比较占资源,通过配置忽略、不记录一些不必要的日志文件

实验步骤

​ 配置日志不记录图片的访问

vim /usr/local/apache2/etc/httpd.conf
    SetEnvIf Request_URI ".*\.gif$" image-request
    SetEnvIf Request_URI ".*\.jpg$" image-request
    SetEnvIf Request_URI ".*\.png$" image-request
    SetEnvIf Request_URI ".*\.bmp$" image-request
    SetEnvIf Request_URI ".*\.swf$" image-request
    SetEnvIf Request_URI ".*\.js$"  image-request
    SetEnvIf Request_URI ".*\.css$" image-request
    CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/access_%Y%m%d.log 86400" combined env=!image-request

#将指定的文件标记成image-request,然后在访问日志记录后面加上env=!image-request,表示每次日志轮替的时候都会过滤这些image-request标记好的文件

#重启验证
实验8:apache配置静态缓存

实验需求:为了提高用户访问速度,只有进行第一次访问加载网站是调用网站服务器,第二次在加载,是调用本地电脑缓存

实验步骤

1、配置静态缓存

vim /usr/local/apache2/etc/httpd.conf
<IfModule mod_expires.c>		#此模块默认未启用,请手动启用
  ExpiresActive on
  ExpiresByType image/gif "access plus 1 days"
  ExpiresByType image/jpeg "access plus 24 hours"
  ExpiresByType image/png "access plus 24 hours"
  ExpiresByType text/css "now plus 2 hours"
  ExpiresByType application/x-javascript "now plus 2 hours"
  ExpiresByType application/javascript "now plus 2 hours"
  ExpiresByType application/x-shockwave-flash "now plus 2 hours"
  ExpiresDefault "now plus 0 min"
</IfModule>

#或者使用 mod_headers 模块实现:该模块默认启用
<IfModule mod_headers.c>
  #htm,html,txt 类的文件缓存一个小时
  <filesmatch "\.(html|htm|txt)$">
     header set cache-control "max-age=3600"
  </filesmatch>
  #css, js, swf 类的文件缓存一个星期
  <filesmatch "\.(css|js|swf)$">
     header set cache-control "max-age=604800"
  </filesmatch>
  #jpg,gif,jpeg,png,ico,flv,pdf 等文件缓存一年
  <filesmatch "\.(ico|gif|jpg|jpeg|png|flv|pdf)$">
     header set cache-control "max-age=29030400"
  </filesmatch>
</IfModule>

说明: 上面使用的是mod_expires,而下面用的是 mod_headers,要想使用这些模块,必须要事先已经支持。如何查看是否支持,使用命令: /usr/local/apache2/bin/apachectl -M | grep mod_expires

2、重启服务器并验证

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
#验证:
curl  'http://www.typechoblog.com/image/a.jpg' -I
HTTP/1.1 200 OK
Date: Wed, 26 Oct 2016 03:51:26 GMT
Server: Apache/2.2.31 (Unix) PHP/5.5.38
Last-Modified: Tue, 31 May 2016 03:08:36 GMT
ETag: "46891b-16b-5341ab0597500"
Accept-Ranges: bytes
Content-Length: 363
Cache-Control: max-age=86400
Expires: Thu, 27 Oct 2016 03:51:26 GMT
Content-Type: image/jpg
实验9:禁止解析php

实验需求:做网站安全的时候,比如上传某些文件,避免上传的文件有木马或者遭到黑客攻击的时候,就可以执行禁止解析php

实验步骤

vim /usr/local/apache2/etc/httpd.conf
#配置禁止解析php
<Directory /usr/local/apache2/htdocs/data>
    php_admin_flag engine off 
    <filesmatch "(.*)\.php$">
        Order deny,allow
        Deny from all 
    </filesmatch>
</Directory>
#重启验证

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

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

相关文章

基于Arduino平台开源小车的初步使用体验

创作原因&#xff1a;偶然有机会接触到基于Arduino平台的开源智能小车&#xff0c;初步使用后与大家分享。因使用时间不常&#xff0c;可以纯当个乐子看看&#xff0c;感谢大家的阅读&#xff01; 图&#xff1a;一款基于Arduino平台的开源小车 一、开发环境 Misly&#xff1…

明星代言方式8种助力品牌占领市场-华媒舍

1. 明星代言的重要性和市场价值 明星代言是一种常见的品牌推广方式&#xff0c;通过联系知名度高的明星来推广产品或服务&#xff0c;从而提升品牌的知名度和美誉度。明星代言能够借助明星的影响力和粉丝基础&#xff0c;将品牌信息传达给更广泛的受众&#xff0c;从而提高销量…

Linux:ollama大模型部署

目录 Ollama 是一个能在本地机器上轻松构建和运行大型语言模型的轻量级、可扩展框架&#xff0c;适用于多种场景&#xff0c;具有易于使用、资源占用少、可扩展性强等特点。 1.安装下载ollama 2.为 Ollama 创建一个用户 3.为ollama创建服务文件 4.启动ollama服务 5.拉取语…

6月28日华为云数据库斯享会上海站,NineData技术总监薛晓乐受邀并带来主题分享

6月28日&#xff08;周五&#xff09;&#xff0c;华为云数据库斯享会即将在上海举办&#xff0c;将与的开发者朋友们一起进行数据库技术交流&#xff01;NineData 技术总监薛晓乐受邀参会&#xff0c;并将带来《企业级数据库 DevOps 最佳实践》的主题分享。 本次活动议程&…

2024年第十四届亚太地区大学生数学建模竞赛(中文赛项)B题洪水灾害的数据分析与预测论文和代码分析

经过不懈的努力&#xff0c; 2024年第十四届亚太地区大学生数学建模竞赛&#xff08;中文赛项&#xff09;B题洪水灾害的数据分析与预测论文和代码已完成&#xff0c;代码为C题全部问题的代码&#xff0c;论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求…

uniapp+vue3+echarts编写微信小程序

uniappvue3echarts编写微信小程序 记录一下自己uniapp使用echarts开发图表&#xff0c;之前网上找了很多&#xff0c;本以为应该是挺常见的使用方式&#xff0c;没想到引入之路居然这么坎坷&#xff0c;在Dcloud插件市场&#xff0c;使用最多的&#xff1a;echarts-for-wx 但是…

用for语句实现九九乘法表

① #define _CRT_SECURE_NO_WARNINGS #include <stdio.h>int main() {for (int i 1; i < 9; i){for (int j 1; j < i; j){printf("%d*%d%d\t", j, i, i * j);}printf("\n");}return 0; } ② #define _CRT_SECURE_NO_WARNINGS #include &…

山西车间应用LP-LP-SCADA系统的好处有哪些

关键字:LP-SCADA系统, 传感器可视化, 设备可视化, 独立SPC系统, 智能仪表系统,SPC可视化,独立SPC系统 LP-SCADA&#xff08;监控控制与数据采集&#xff09;系统是工业控制系统的一种&#xff0c;主要用于实时监控、控制和管理工业生产过程。 在车间应用LP-SCADA系统&#xf…

克隆gitee仓库,在vs2022创建文件夹开发项目操作步骤

git网站 git知识大全 git教程&#xff1a;廖雪峰的官方网站 git菜鸟教程 gitee之创建项目步骤 同步源仓库 2. 克隆命令 3. 右击git Bash Here>粘贴命令行 4. 选中项目文件夹》创建本人文件夹&#xff08;ZYY&#xff09; 5. 打开vs2022》新建项目》选择Framework》下…

LLaMA-Factory安装

安装代码 https://github.com/echonoshy/cgft-llm/blob/master/llama-factory/README.md https://github.com/hiyouga/LLaMA-Factory/tree/mainLLaMA-Factoryhttps://github.com/hiyouga/LLaMA-Factory/tree/main 【大模型微调】- 使用Llama Factory实现中文llama3微调_哔哩…

Java WebService记

Web Services开发 常用的 Web Services 框架有 Apache Axis1 、 Apache Axis2 、 Apache CXF &#xff0c;而 Apache Axis1 已经逐渐被淘汰所以本文不会讨论&#xff0c;重点关注 Apache Axis2 及 Apache CXF 。 Apache Axis2 在IDEA中新建 Axis2Demo 项目后右键选择 添加框架…

欧洲杯:高精度定位技术,重塑体育赛事新体验

随着科技的飞速发展&#xff0c;体育赛事的观赏体验与竞技水平正被不断推向新的高度。在即将到来的2024年欧洲杯赛场上&#xff0c;一项革命性的技术——高精度定位&#xff0c;正悄然改变着比赛的每一个细节&#xff0c;为球迷们带来前所未有的观赛享受&#xff0c;同时也为运…

CSS 背景效果

目录 一、CSS背景属性 二、准备工作 三、background-color 四、background-image 五、background-repeat 六、background-position 七、background-size 八、background-attachment 九、background-clip 十、background-origin 十一、background 一、CSS背景属性 在…

PyFluent入门之旅(3)网格划分

在通过前两期熟悉了PyFluent的基础操作后&#xff0c;本期介绍如何通过PyFluent在Fluent Meshing中使用密闭几何&#xff08;watertight&#xff09;工作流进行网格划分。 开门见山&#xff0c;我先开启PyFluent的gui显示功能展示一下最终效果。 在通过前两期熟悉了PyFluent的…

Appium自动化测试框架1

电脑的浏览器 手机的浏览器 手机上的app 原生的应用 纯java 手机上的app apk 移动网页应用 纯HTML CSS 手机的浏览器上 电脑的浏览器上 混合应用 java html css python代码 Appium python库 Appium 手机 都是代表本机 0.0.0.0 127.0.0.1 localhost 如何启动app 启动参…

UE插件与云渲染:10个提升效率的选择

Unreal Engine&#xff08;虚幻引擎&#xff09;的插件生态丰富多样&#xff0c;从提升视觉效果到优化工作流程&#xff0c;为开发者提供了无限扩展的可能。本文推荐10款备受欢迎的插件&#xff0c;助你激发创意&#xff0c;提升开发效率. 一、地牢建筑师&#xff1a;程序化关…

【论文速读】|FuzzAug:探索模糊测试作为神经网络测试生成的数据增强

本次分享论文&#xff1a;FuzzAug: Exploring Fuzzing as Data Augmentation for Neural Test Generation 基本信息 原文作者&#xff1a;Yifeng He, Jicheng Wang, Yuyang Rong, Hao Chen 作者单位&#xff1a;University of California, Davis 关键词&#xff1a;软件测试…

Dungeonborne联机失败、延迟高、卡顿的解决方法

Dungeonborne将第一人称动作的即时性与经典的西幻RPG职业设计巧妙融合&#xff0c;为玩家带来了一场前所未有的游戏体验。在这款沉浸式第一人称PvPvE地下城探险游戏中&#xff0c;我们可以独自深入探索&#xff0c;也可以与值得信赖的伙伴并肩作战&#xff0c;共同揭开地下城的…

汽车电子工程师入门系列——AUTOSAR通信服务框架(下)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

使用微信开发者工具连接gitee

编写代码 打开微信开发者工具 编写小程序代码 提交代码 在微信开发者工具提交代码到gitee仓库的步骤&#xff1a; 1.在gitee创建仓库&#xff0c;得到仓库url 2.微信开发者工具设置远程仓库 点击版本管理-->点击设置-->网络和认证-->认证方式选择 使用用户名和…