Apache 网站服务基础

Apache 网站服务基础

目录

Apache 网站服务基础

1.1:apache简介

1:Apache 的起源

2:Apache 的主要特点

1.2:安装 httpd 服务器

1:准备工作

2:源码编译及安装

3:确认安装结果

4:优化执行路径

5:添加 httpd 系统服务

二:httpd 服务器的基本配置

2.1:Web 站点的部署过程

1:确定网站名称、IP 地址

2:配置并启动 httpd 服务

3:部署网页文档

4:在客户机中访问 Web 站点

5:查看 Web 站点的访问情况

2.2:httpd.conf 配置文件

1:全局配置项

2:区域配置项

三:构建虚拟 Web 主机

3.1:基于域名的虚拟主机

1:为虚拟主机提供域名解析(两个域名)

2:为虚拟主机准备网页文档(两个网站)

3:添加虚拟主机配置

4:在客户机中访问虚拟 Web 主机

3.2:基于 IP 地址、基于端口的虚拟主机

1:为主机设置多个IP地址

2:基于 IP 地址的虚拟主机

3:基于端口的虚拟主机

四:MySQL 的编译安装

1:准备工作

2:源码编译及安装

3:安装后的其他调整

4:启动并访问 MySQL 服务

五:构建 PHP 运行环境

5.1:安装 PHP 软件包

1:准备工作

2:安装扩展工具库

3:编译安装 PHP

5.2:设置 LAMP 组件环境

1:php.ini 配置调整

2:httpd.conf 配置调整

5.3:测试 LAMP 协同工作

1:测试 PHP 网页能否正确显示

2:测试 PHP 网页能否访问 MySQL 数据库

六:LAMP 架构应用实例

6.1:部署 phpMyAdmin 系统

1:解包并复制到网站目录

2:建立配置文件 config.inc.php

3:访问 phpMyAdmin 的 Web 管理界面

6.2:使用 phpMyAdmin 系统


1.1:apache简介

1:Apache 的起源
2:Apache 的主要特点

1.2:安装 httpd 服务器

1:准备工作

检查是否用rpm方式安装有httpd,如果有,卸载使用 RPM 方式安装的 httpd,并且编译安装之前需要先安装依赖软件。

[root@www ~]# systemctl stop firewalld

[root@www ~]# systemctl disable firewalld

[root@localhost ~]# rpm -qa httpd

#检查是否已经安装有httpd

[root@localhost ~]# rpm -e httpd --nodeps

注意:

如果提示错误,证明没有rpm安装的httpd

[root@localhost ~]# yum install -y apr-util-devel pcre-devel gcc* lrzsz

2:源码编译及安装

(1)解包

[root@localhost ~]# tar zxvf httpd-2.4.25.tar.gz

[root@localhost ~]# cd httpd-2.4.25

(2)配置

[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi

备注:

--prefix:制定程序的安装目录

--enable-so:启用动态加载模块DSO的支持,使httpd具备进一步扩展功能的能力

--enable-rewrite:启用网页地址重写功能,用于网站优化

--enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网页

--enable-cgi:启用cgi脚本程序支持,扩展网站的应用访问能力

DSO是Dynamic SharedObjects(动态共享目标)的缩写,它是现代Unix派生出来的操作系统都存在着的一种动态连接机制。它提供了一种在运行时将特殊格式的代码,在程序运行需要时,将需要的部分从外存调入内存执行的方法。

(3)编译及安装

[root@localhost httpd-2.4.25]# make && make install

3:确认安装结果

[root@localhost httpd-2.4.25]# ls /usr/local/httpd/

4:优化执行路径

[root@localhost ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin

[root@localhost ~]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl

[root@localhost ~]# httpd -v

Server version: Apache/2.4.25 (Unix)

Server built:   Jun  6 2022 20:42:04

5:添加 httpd 系统服务

[root@localhost ~]# cd /lib/systemd/system

[root@localhost system]# vim httpd.service

[Unit]

Description=The Apache HTTP Server

After=network.target

[Service]

Type=forking

PIDFile=/usr/local/httpd/logs/httpd.pid

ExecStart= /usr/local/bin/apachectl $OPTIONS

ExecReload= /bin/kill -HUP $MAINPID

[Install]

WantedBy=multi-user.target

注释:

After=network.target

Before/After:要是一个服务 Before 另一个服务,那么在并行启动时(Systemd 总是用进程 0 并行启动所有东西,然后通过这两个标记来二次等待排序),那另一个服务这时就会等这个服务先启动并返回状态,注意是先启动而不是启动成功,因为失败也是一种状态,一定要成功才启动另一个服务是通过依赖关系定义的。反之 After 亦然。After=network.target 指的是后于network服务启动。

Type=forking

服务的启动方式,有fork方式和simple方式

forking的方式在启动程序后会调用 fork() 函数,把必要的通信频道都设置好之后父进程退出,留下守护精灵的子进程。你要是使用的这种方式,最好也指定下 PIDFILE=,不要让 Systemd 去猜,非要猜也可以,设置 GuessMainPID 为 yes。

ExecReload= /bin/kill -HUP $MAINPID

$ MAINPID是服务的systemd变量,它指向主应用程序的PID

WantedBy=multi-user.target

指定运行级别

[root@localhost system]# systemctl daemon-reload

[root@localhost system]# systemctl enable httpd.service

[root@localhost system]# systemctl start httpd

[root@localhost system]# netstat -anpt | grep httpd

二:httpd 服务器的基本配置

2.1:Web 站点的部署过程
1:确定网站名称、IP 地址

[root@localhost ~]# hostnamectl set-hostname www.benet.com

[root@localhost ~]# bash

2:配置并启动 httpd 服务

(1)配置 httpd 服务

[root@www ~]# vim /usr/local/httpd/conf/httpd.conf

修改网站名称:

ServerName www.benet.com

[root@www ~]# httpd -t

Syntax OK

(2)启动 httpd 服务

[root@www ~]# systemctl restart httpd

[root@www ~]# netstat -anpt | grep httpd

3:部署网页文档

[root@www ~]# echo "it works" > /usr/local/httpd/htdocs/index.html

4:在客户机中访问 Web 站点

[root@localhost ~]# vim /etc/hosts

添加域名解析:

192.168.10.101 www.benet.com

[root@localhost ~]# curl www.benet.com

5:查看 Web 站点的访问情况

[root@www ~]# tail /usr/local/httpd/logs/access_log

注意:

在此处为httpd服务器做个快照,为后续章节提供实验环境

2.2:httpd.conf 配置文件

1:全局配置项
2:区域配置项

三:构建虚拟 Web 主机

3.1:基于域名的虚拟主机

1:为虚拟主机提供域名解析(两个域名)

[root@www ~]# vim /etc/hosts

192.168.10.101 www.benet.com

192.168.10.101 www.accp.com

2:为虚拟主机准备网页文档(两个网站)

[root@www ~]# mkdir -p /var/www/html/benetcom

[root@www ~]# mkdir -p /var/www/html/accpcom

[root@www ~]# echo "<h1>www.benet.com</h1>"> /var/www/html/benetcom/index.html

[root@www ~]# echo "<h1>www.accp.com</h1>"> /var/www/html/accpcom/index.html

3:添加虚拟主机配置

[root@www ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

<Directory "/var/www/html">

Require all granted

</Directory>

<VirtualHost *:80>

    DocumentRoot "/var/www/html/benetcom"

    ServerName www.benet.com

    ErrorLog "logs/www.benet.com.error_log"

    CustomLog "logs/www.benet.com.access_log" common

</VirtualHost>

<VirtualHost *:80>

    DocumentRoot "/var/www/html/accpcom"

    ServerName www.accp.com

    ErrorLog "logs/www.accp.com.error_log"

    CustomLog "logs/www.accp.com.access_log" common

</VirtualHost>

[root@www ~]# vim /usr/local/httpd/conf/httpd.conf

去掉注释符号:

Include conf/extra/httpd-vhosts.conf

[root@www ~]# systemctl restart httpd

4:在客户机中访问虚拟 Web 主机

[root@node2 ~]# cat /etc/hosts

192.168.10.101 www.benet.com

192.168.10.101 www.accp.com

[root@node2 ~]# curl www.benet.com

<h1>www.benet.com</h1>

[root@node2 ~]# curl www.accp.com

<h1>www.accp.com</h1>

3.2:基于 IP 地址、基于端口的虚拟主机

1:为主机设置多个IP地址

[root@www ~]# cd /etc/sysconfig/network-scripts/

[root@www network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0

[root@www network-scripts]# cp ifcfg-ens33 ifcfg-ens33:1

[root@www network-scripts]# vim ifcfg-ens33:0

IPADDR=192.168.10.210

NETMASK=255.255.255.0

GATEWAY=192.168.10.254

NAME=ens33:0

DEVICE=ens33:0

[root@www network-scripts]# vim ifcfg-ens33:1

IPADDR=192.168.10.220

NETMASK=255.255.255.0

GATEWAY=192.168.10.254

NAME=ens33:1

DEVICE=ens33:1

[root@www network-scripts]# systemctl restart network

[root@www network-scripts]# ip address

2:基于 IP 地址的虚拟主机

[root@www ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

<Directory "/var/www/html">

Require all granted

</Directory>

<VirtualHost 192.168.10.210:80>

    DocumentRoot "/var/www/html/benetcom"

    ServerName www.benet.com

    ErrorLog "logs/www.benet.com.error_log"

    CustomLog "logs/www.benet.com.access_log" common

</VirtualHost>

<VirtualHost 192.168.10.220:80>

    DocumentRoot "/var/www/html/accpcom"

    ServerName www.accp.com

    ErrorLog "logs/www.accp.com.error_log"

    CustomLog "logs/www.accp.com.access_log" common

</VirtualHost>

[root@www ~]# systemctl restart httpd

客户端测试

[root@node2 ~]# curl 192.168.10.210

<h1>www.benet.com</h1>

[root@node2 ~]# curl 192.168.10.220

<h1>www.benet.com</h1>

3:基于端口的虚拟主机

[root@www ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

<Directory "/var/www/html">

Require all granted

</Directory>

Listen 80

Listen 8080

<VirtualHost 192.168.10.101:80>

    DocumentRoot "/var/www/html/benetcom"

    ServerName www.benet.com

    ErrorLog "logs/www.benet.com.error_log"

    CustomLog "logs/www.benet.com.access_log" common

</VirtualHost>

<VirtualHost 192.168.10.101:8080>

    DocumentRoot "/var/www/html/accpcom"

    ServerName www.accp.com

    ErrorLog "logs/www.accp.com.error_log"

    CustomLog "logs/www.accp.com.access_log" common

</VirtualHost>

[root@www ~]# systemctl restart httpd

[root@www ~]# netstat -anpt | grep httpd

客户端测试

[root@node2 ~]# curl 192.168.10.101:80

<h1>www.benet.com</h1>

[root@node2 ~]# curl 192.168.10.101:8080

<h1>www.accp.com</h1>

恢复前面做的快照,继续后面的实验

四:MySQL 的编译安装

1:准备工作

(1)检查安装环境

[root@www ~]# rpm -q mysql-server mysql

未安装软件包 mysql-server

未安装软件包 mysql

[root@www ~]# yum install -y ncurses-devel autoconf

备注:

初始化mysql需要autoconf,它是自动化配置脚本生成工具,安装自动化脚本生成工具

(2)安装cmake

[root@www ~]# tar zxf cmake-2.8.6.tar.gz

[root@www ~]# cd cmake-2.8.6

[root@www cmake-2.8.6]# ./configure

[root@www cmake-2.8.6]# gmake && gmake install

备注:

此步骤可以用yum的方法安装cmake

yum -y install cmake

2:源码编译及安装

(1)创建运行用户

[root@www ~]# useradd -M -s /sbin/nologin mysql

(2)解包

[root@www ~]# tar zxf mysql-5.6.36.tar.gz

(3)配置

[root@www ~]# cd mysql-5.6.36

[root@www mysql-5.6.36]# cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DSYSCONFDIR=/etc \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all

-DDEFAULT_COLLATION:用于指定数据集如何排序,以及字符串的比对规则

(4)编译并安装

[root@www mysql-5.6.36]# make && make install

3:安装后的其他调整

1)对数据库目录进行权限设置

[root@www mysql-5.6.36]# chown -R mysql:mysql /usr/local/mysql

2)建立配置文件

[root@www mysql-5.6.36]# rm -rf /etc/my.cnf

备注:

系统原来已经有这个文件了,该文件是由mariadb-libs包生成的

[root@www mysql-5.6.36]# cp support-files/my-default.cnf /etc/my.cnf

(3)初始化数据库

[root@www mysql-5.6.36]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/

(4)设置环境变量

[root@www mysql-5.6.36]# echo "PATH=$PATH:/usr/local/mysql/bin">> /etc/profile

[root@www mysql-5.6.36]# . /etc/profile

4:启动并访问 MySQL 服务

[root@www mysql-5.6.36]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

[root@www mysql-5.6.36]# chmod +x /etc/rc.d/init.d/mysqld

[root@localhost mysql-5.6.36]# chkconfig --add mysqld

[root@localhost mysql-5.6.36]# chkconfig mysqld on

[root@localhost mysql-5.6.36]# systemctl start mysqld

[root@www mysql-5.6.36]# netstat -anpt | grep mysqld

[root@www ~]# mysql -u root -p

注意:

此时的mysql是空密码

mysql>set password =password('123456');

mysql>EXIT

[root@www ~]#mysql -u root -p123456

五:构建 PHP 运行环境

5.1:安装 PHP 软件包
1:准备工作

为了避免发生程序冲突等现象,建议先将 RPM 方式安装的 PHP 及相关依赖包

[root@www ~]# rpm -e php php-cli php-ldap php-common php-mysql --nodeps

[root@www ~]# yum -y install zlib-devel libxml2 libxml2-devel lxz-devel

2:安装扩展工具库

1)安装 libmcrypt

[root@www ~]# tar zxf libmcrypt-2.5.8.tar.gz

[root@www ~]# cd libmcrypt-2.5.8/

[root@www libmcrypt-2.5.8]# ./configure

[root@www libmcrypt-2.5.8]# make && make install

[root@www libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.* /usr/lib/

2)安装 mhash

[root@www ~]# tar zxf mhash-0.9.9.9.tar.gz

[root@www ~]# cd mhash-0.9.9.9/

[root@www mhash-0.9.9.9]# ./configure

[root@www mhash-0.9.9.9]# make && make install

[root@www mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash* /usr/lib/

3)安装 mcrypt

[root@www ~]# tar zxf mcrypt-2.6.8.tar.gz

[root@www ~]# cd mcrypt-2.6.8/

[root@www mcrypt-2.6.8]# ./configure

[root@www mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

[root@www mcrypt-2.6.8]# ./configure

[root@www mcrypt-2.6.8]# make && make install

备注:

上述三个扩展工具库,可以设置好阿里的yum仓库,用yum安装

yum -y install libmcrypt libmcrypt-devel mcrypt mhash

3:编译安装 PHP

1)解包

[root@www ~]# tar zxf php-5.5.38.tar.gz

[root@www ~]# cd php-5.5.38

2)配置

[root@www php-5.5.38]# ./configure --prefix=/usr/local/php5 \

--with-mcrypt \

--with-apxs2=/usr/local/httpd/bin/apxs \

--with-mysql=/usr/local/mysql \

--with-mysqli=/usr/local/mysql/bin/mysql_config \

--with-config-file-path=/usr/local/php5 \

--enable-mbstring

注意:

不能用192.168.10.101连接。

想用主机IP连接需要在安装php时指定mysql函数集为mysqlnd

--with-mysqli=mysqlnd

如果使用本地函数集,php连接mysql数据库可以使用localhost、127.0.0.1、本机主机名

,但不能用本机IP地址192.168.10.101

--with-apxs2=/usr/local/httpd/bin/apxs

整合apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到apache,要求apache要打开SO模块

(3)编译及安装

[root@www php-5.5.38]# make && make install

备注:

这一步时间很长

备注:

./configure --prefix=/usr/local/php5 \

--with-apxs2=/usr/local/httpd/bin/apxs \

--with-mysql=mysqlnd \

--with-mysqli=mysqlnd \

--with-config-file-path=/usr/local/php5 \

--enable-mbstring

5.2:设置 LAMP 组件环境

1:php.ini 配置调整

1php.ini 的建立及基本设置

[root@www php-5.5.38]# cp php.ini-development /usr/local/php5/php.ini

[root@www php-5.5.38]# vim /usr/local/php5/php.ini

default_charset = "UTF-8"               #去掉前面的注释

file_uploads = On

upload_max_filesize = 2M

max_file_uploads = 20

post_max_size = 8M

short_open_tag = On              ##修改值

extension=php_mysqli.dll                ##去掉前面的注释

(2)添加 ZendGuardLoader 优化模块

[root@www~]#tar zxf zend-loader-php5.5-linux-x86_64_update1.tar.gz

[root@www~]#cd zend-loader-php5.5-linux-x86_64/

[root@www zend-loader-php5.5-linux-x86_64]#cp ZendGuardLoader.so /usr/local/php5/lib/php

[root@www ~]# vim /usr/local/php5/php.ini

[PHP]下面添加:

[PHP]

zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so

zend_loader.enable=1

2:httpd.conf 配置调整

[root@www ~]# vim /usr/local/httpd/conf/httpd.conf

Listen *:80

…… //省略部分内容

LoadModule php5_module modules/libphp5.so

<IfModule mime_module>

AddType application/x-httpd-php .php

</IfModule>

DirectoryIndex index.html index.php

#Include conf/extra/httpd-vhosts.conf

[root@www ~]# apachectl -t

Syntax OK

[root@www ~]# systemctl restart httpd

5.3:测试 LAMP 协同工作

1:测试 PHP 网页能否正确显示

[root@www ~]# vim /usr/local/httpd/htdocs/test1.php

<?php

phpinfo( );

?>

2:测试 PHP 网页能否访问 MySQL 数据库

[root@www ~]# vim /usr/local/httpd/htdocs/test2.php

<?php

$link=mysqli_connect('localhost','root','123456');

if($link) echo "恭喜你,数据库连接成功啦!!";

mysqli_close($link);

?>

注意:

对数据库的连接授权,授权后可以使用主机名连接

mysql> grant all on *.* to root@'www.benet.com' identified by '123456';

注意:

如果用的是mysqlnd,要用IP地址进行连接,127.0.0.1192.168.10.101都可以

六:LAMP 架构应用实例

6.1:部署 phpMyAdmin 系统
1:解包并复制到网站目录

[root@www ~]# tar zxf phpMyAdmin-4.7.2-all-languages.tar.gz

[root@www ~]# mv phpMyAdmin-4.7.2-all-languages/ /usr/local/httpd/htdocs/phpMyAdmin

2:建立配置文件 config.inc.php

[root@www ~]# cd /usr/local/httpd/htdocs/phpMyAdmin

[root@www phpMyAdmin]# cp config.sample.inc.php config.inc.php

备注:

用msqlnd,需要修改文件

[root@www phpMyAdmin]# vim config.inc.php

$cfg['Servers'][$i]['host'] = '192.168.10.101';

3:访问 phpMyAdmin 的 Web 管理界面

6.2:使用 phpMyAdmin 系统

1:创建新的库、新的表

2:表及数据记录的管理

3:直接执行 MySQL 查询语句

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭秘银行外汇业务:投资与交易的全面指南

银行外汇业务是指银行为客户提供的与外币相关的金融服务。这些业务涉及多个方面&#xff0c;主要包括&#xff1a; 1.外汇存款&#xff1a; 银行接受个人和企业存入的外币资金&#xff0c;并为其提供利息收益。这包括定期和活期存款&#xff0c;以及可能的特殊存款产品。 2.外…

车载网络安全指南 概述(一)

返回总目录->返回总目录<- 目录 前言 参考文档 术语 前言 汽车电子系统网络安全指南给出汽车电子系统网络安全活动框架,以及在此框架下的汽车电子系统网络安全活动、组织管理和支持保障等方面的建议。 汽车电子系统网络安全指南适用于指导整车厂、零部件供应商、软…

借助ServiceDesk Plus,更接近ISO 27001变更管理标准

如果实施不当&#xff0c;变更支持可能会中断业务流程并导致停机。许多组织尚未建立不同的阶段来记录整个变更过程。这通常会导致 IT 环境&#xff0c;在这种环境中&#xff0c;实施变更的成功依赖于单个主题专家。这并不高效&#xff0c;并且对 IT 团队来说可能难以管理和压力…

航天科技集团与SPACEX公司的思考与分析

近期&#xff0c;中国航天科技集团正式发文与SPACEX对标的认识结果&#xff0c;包括发展理念上、科研生产模式上、关键核心技术上、质量效率效益上存在明显差距与不足。真诚的态度&#xff0c;赢得了社会上的广泛关注和积极评价。真心为老东家能够保持这份清醒而高兴。 从对标管…

Python多继承机制及方法解析顺序(MRO)深度解析

Python多继承机制及方法解析顺序&#xff08;MRO&#xff09;深度解析 在Python中&#xff0c;面向对象编程的一个强大特性就是支持多继承&#xff0c;即一个类可以继承自多个父类。这种特性为代码的重用和扩展提供了极大的灵活性&#xff0c;但同时也带来了方法冲突和调用顺序…

web前端开发和前端开发区别

web前端开发和前端开发区别 在数字化时代&#xff0c;web前端开发和前端开发成为了热门的职业领域。然而&#xff0c;对于许多人来说&#xff0c;这两者之间的界限似乎有些模糊。本文将深入探讨web前端开发和前端开发之间的区别&#xff0c;并从四个方面、五个方面、六个方面和…

安装台式电脑网卡驱动

安装电脑网卡驱动 1. 概述2. 具体方法2.1 先确定主板型号2.2 详细操作步骤如下2.2.1 方法一2.2.2 方法二2.2 主流主板官网地址 结束语 1. 概述 遇到重装系统后、或者遇到网卡驱动出现问题没有网络时&#xff0c;当不知道怎么办时&#xff0c;以下的方法&#xff0c;可以作为一…

Unity 设置默认字体(支持老版及新版TMP)

普通UI-Text设置 &#xff08;同一unity版本设置一次即可&#xff09; 1.首先工程的Resources目录下创建Fonts文件夹用于存放字体 如下图所示 2.找到Unity的安装目录下的Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.ugui\Runtime\UI\Core\Text.cs文件 …

【AI应用探讨】— Meta Llama-3模型应用场景

目录 一、智能对话系统 聊天机器人 虚拟助手 二、内容创作与生成 文本生成 代码生成 三、自然语言处理&#xff08;NLP&#xff09;任务 文本分类 问答系统 四、教育与培训 智能辅导 虚拟教师 五、企业智能 客户服务 内部沟通 六、创意与设计 广告创意 产品设…

Android shell 常用 debug 命令

目录 1、查看版本2、am 命令3、pm 命令4、dumpsys 命令5、sed命令6、log定位查看APK进程号7、log定位使用场景 1、查看版本 1.1、Android串口终端执行 getprop ro.build.version.release #获取Android版本 uname -a #查看linux内核版本信息 uname -r #单独查看内核版本 1.2、…

Java进阶工具: BigInteger, BigDecimal, 正则表达式 Arrays 实战指南

在Java编程的世界里&#xff0c;处理大数据运算、精确的财务计算、复杂的文本匹配以及高效数组操作是开发者的日常挑战。本文将深入剖析 BigInteger、BigDecimal 类的高级运算功能&#xff0c;揭秘正则表达式的强大与灵活性&#xff0c;并介绍 Arrays 类这一数组操作的利器&…

常见报错及程序框架图

程序框架图 程序流程图又称程序框图&#xff0c;是用统一规定的标准符号描述程序运行具体步骤的图形表示。程序框图的设计是在处理流程图的基础上&#xff0c;通过对输入输出数据和处理过程的详细分析&#xff0c;将计算机的主要运行步骤和内容标识出来。程序框图是进行程序设…

【安装笔记-20240612-Linux-内网穿透服务之cpolar极点云】

安装笔记-系列文章目录 安装笔记-20240612-Linux-内网穿透服务之 cpolar 极点云 文章目录 安装笔记-系列文章目录安装笔记-20240612-Linux-内网穿透服务之 cpolar 极点云 前言一、软件介绍名称&#xff1a;cpolar极点云主页官方介绍 二、安装步骤测试版本&#xff1a;openwrt-…

java多线程临界区介绍

在Java多线程编程中&#xff0c;"临界区"是指一段必须互斥执行的代码区域。当多个线程访问共享资源时&#xff0c;为了防止数据不一致或逻辑错误&#xff0c;需要确保同一时刻只有一个线程可以进入临界区。Java提供了多种机制来实现这一点&#xff0c;例如synchroniz…

理解 GPIO 的推挽与开漏

在日常的嵌入式开发过程当中&#xff0c;GPIO可以说是接触最多的外设了。小到点亮一个LED灯&#xff0c;大到模拟总线通讯&#xff0c;都必不可少地需要用到GPIO资源。而对于GPIO的两大输出模式 ——推挽输出和开漏输出&#xff0c;你是否真正理解了呢&#xff1f; 首先我们看…

CPI降温仍猛砍降息预期!美联储继续按兵不动,预计今年仅降息一次

要点&#xff1a; 美联储继续保持利率不变&#xff0c;符合市场预期。 决议声明不再说降通胀缺乏进一步进展&#xff0c;改称取得适度的进... 要点&#xff1a; 美联储继续保持利率不变&#xff0c;符合市场预期。 决议声明不再说降通胀缺乏进一步进展&#xff0c;改称取得适度…

linux开发过程

Linux开发过程可以大致分为以下几个阶段&#xff1a; 一、需求分析阶段 与客户或利益相关者合作&#xff0c;明确产品的需求和目标。确定产品的功能、性能要求、用户界面设计等。 二、架构设计阶段 制定产品的整体架构设计&#xff0c;确定各个模块的功能和接口。包括硬件架…

【中间件】Pulsar集群安装

目录 一、Pulsar介绍 1.1 Pulsar基本介绍 1.2 Pulsar架构 Producer & Consumer Apache Zookeeper Pulsar Brokers Apache Bookkeeper 二、Zookeeper集群安装 三、Pulsar集群安装 3.1 bookie与broker配置 3.1.1 修改bookie配置文件 3.1.2 修改broker配置文件 3…

渗透测试工具NMAP

nmap是一个网络连接端扫描软件&#xff0c;用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端&#xff0c;并且推断计算机运行哪个操作系统&#xff08;这是亦称 fingerprinting&#xff09;。它是网络管理员必用的软件之一&#xff0c;以及用以评估网络系统安全…

java.lang.reflect.Type是什么

Java 中的 java.lang.reflect.Type 在 Java 中&#xff0c;java.lang.reflect.Type 是一个接口&#xff0c;代表所有类型的通用超类型。它包括原始类型、参数化类型、数组类型、类型变量和基本类型。在反射机制中&#xff0c;Type 接口用于提供对 Java 类型系统的抽象表示&…