apache編譯安裝

来源:https://www.cnblogs.com/helong-123/archive/2022/07/18/16489585.html
-Advertisement-
Play Games

鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 源碼包編譯實例 下麵通過編譯安裝httpd來深入理解源碼包安裝(httpd-2.4.54) 下載編譯工具,httpd以及其兩個依賴包的源碼包 //源碼包建議到官方網站下載 [root@lnh ~]# mkdir xbz [root@lnh ~]# ...


鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站

源碼包編譯實例

下麵通過編譯安裝httpd來深入理解源碼包安裝(httpd-2.4.54)

下載編譯工具,httpd以及其兩個依賴包的源碼包

//源碼包建議到官方網站下載

[root@lnh ~]# mkdir xbz
[root@lnh ~]# cd xbz/
[root@lnh xbz]# dnf -y install gcc gcc-c++ make wget
[root@lnh xbz]# wget https://mirrors.aliyun.com/apache/httpd/httpd-2.4.54.tar.gz
[root@lnh xbz]# wget https://mirrors.aliyun.com/apache/apr/apr-1.7.0.tar.gz
[root@lnh xbz]# wget https://mirrors.aliyun.com/apache/apr/apr-util-1.6.1.tar.gz
[root@lnh xbz]# ls
apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.54.tar.gz

安裝apr

[root@lnh xbz]# ls
apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.54.tar.gz
[root@lnh xbz]# tar -xf apr-1.7.0.tar.gz 
[root@lnh xbz]# ls 
apr-1.7.0  apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.54.tar.gz
//將apr解壓到當前目錄
[root@lnh xbz]# cd apr-1.7.0/
[root@lnh apr-1.7.0]# ls
apr-config.in  build-outputs.mk  helpers       misc           strings
apr.dep        CHANGES           include       mmap           support
apr.dsp        CMakeLists.txt    libapr.dep    network_io     tables
apr.dsw        config.layout     libapr.dsp    NOTICE         test
apr.mak        configure         libapr.mak    NWGNUmakefile  threadproc
apr.pc.in      configure.in      libapr.rc     passwd         time
apr.spec       docs              LICENSE       poll           tools
atomic         dso               locks         random         user
build          emacs-mode        Makefile.in   README
build.conf     encoding          Makefile.win  README.cmake
buildconf      file_io           memory        shmem
//進入這個源碼包可以看見裡面被解壓出來的東西
[root@lnh apr-1.7.0]# ./configure --prefix=/usr/local/src/apr
...
configure: creating ./config.status
config.status: creating Makefile
config.status: creating include/apr.h
config.status: creating build/apr_rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating apr-1-config
config.status: creating apr.pc
config.status: creating test/Makefile
config.status: creating test/internal/Makefile
config.status: creating include/arch/unix/apr_private.h
config.status: executing libtool commands
rm: cannot remove 'libtoolT': No such file or directory
config.status: executing default commands
//生成Makefile
一般常用的有 --prefix=PREFIX 這個選項的意思是定義軟體包安裝到哪裡
建議,源碼包都是安裝在/opt/目錄下或者/usr/local/src目錄下麵
[root@lnh apr-1.7.0]# make
...
gcc -E -DHAVE_CONFIG_H  -DLINUX -D_REENTRANT -D_GNU_SOURCE   -I./include -I/root/xbz/apr-1.7.0/include/arch/unix -I./include/arch/unix -I/root/xbz/apr-1.7.0/include/arch/unix -I/root/xbz/apr-1.7.0/include -I/root/xbz/apr-1.7.0/include/private -I/root/xbz/apr-1.7.0/include/private  export_vars.c | sed -e 's/^\#[^!]*//' | sed -e '/^$/d' >> apr.exp
sed 's,^\(location=\).*$,\1installed,' < apr-1-config > apr-config.out
sed -e 's,^\(apr_build.*=\).*$,\1/usr/local/src/apr/build-1,' -e 's,^\(top_build.*=\).*$,\1/usr/local/src/apr/build-1,' < build/apr_rules.mk > build/apr_rules.out
make[1]: Leaving directory '/root/xbz/apr-1.7.0'
//編譯生成Makefile,此處雖然出現了make[1]: Leaving directory '/root/xbz/apr-1.7.0',但是沒關係可以繼續進行下一步安裝
[root@lnh apr-1.7.0]# make install
...
/usr/bin/install -c -m 755 /root/xbz/apr-1.7.0/build/mkdir.sh /usr/local/src/apr/build-1
for f in make_exports.awk make_var_export.awk; do \
    /usr/bin/install -c -m 644 /root/xbz/apr-1.7.0/build/${f} /usr/local/src/apr/build-1; \
done
/usr/bin/install -c -m 644 build/apr_rules.out /usr/local/src/apr/build-1/apr_rules.mk
/usr/bin/install -c -m 755 apr-config.out /usr/local/src/apr/bin/apr-1-config
//進行安裝
[root@lnh apr-1.7.0]# cd /usr/local/src/apr/
[root@lnh apr]# ls
bin  build-1  include  lib
//進入apr的路徑進行查看,預設情況下,系統搜索庫文件的路徑只有/lib,/usr/lib,我們需要進行修改在/etc/ld.so.conf.d/中創建以.conf為尾碼名的文件,而後把要增添的路徑直接寫至此文件中。此時庫文件增添的搜索路徑重啟後有效,若要使用增添的路徑立即生效則要使用ldconfig命令
[root@lnh apr]# cd /etc/ld.so.conf.d/
[root@lnh ld.so.conf.d]# echo /usr/local/src/apr/lib/ >apr.conf
[root@lnh ld.so.conf.d]# cd -
/usr/local/src/apr
//切換到前一個工作目錄
[root@lnh apr]# ldconfig 
//使命令生效
[root@lnh apr]# ln -s /usr/local/src/apr/include/ /usr/include/apr
[root@lnh apr]# ll /usr/include/apr                       
lrwxrwxrwx. 1 root root 27 Jul 12 20:31 /usr/include/apr -> /usr/local/src/apr/include/
//將頭文件軟鏈接到/usr/include目錄下

安裝apr-util

[root@lnh xbz]# dnf -y install expat-devel libxml2-devel pcre-devel
//需要先安裝這個依賴
[root@lnh xbz]# ls
apr-1.7.0  apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.54.tar.gz
[root@lnh xbz]# tar -xf apr-util-1.6.1.tar.gz 
[root@lnh xbz]# ls
apr-1.7.0         apr-util-1.6.1         httpd-2.4.54.tar.gz
apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz
//解壓到當前目錄
[root@lnh xbz]# cd apr-util-1.6.1/
[root@lnh apr-util-1.6.1]# ls
aprutil.dep       CHANGES            include         NWGNUmakefile
aprutil.dsp       CMakeLists.txt     ldap            README
aprutil.dsw       config.layout      libaprutil.dep  README.cmake
aprutil.mak       configure          libaprutil.dsp  README.FREETDS
apr-util.pc.in    configure.in       libaprutil.mak  redis
apr-util.spec     crypto             libaprutil.rc   renames_pending
apu-config.in     dbd                LICENSE         strmatch
buckets           dbm                Makefile.in     test
build             docs               Makefile.win    uri
build.conf        encoding           memcache        xlate
buildconf         export_vars.sh.in  misc            xml
build-outputs.mk  hooks              NOTICE
//進入源碼包查看被解壓出來的東西
[root@lnh apr-util-1.6.1]# ./configure --prefix=/usr/local/src/apr-util --with-apr=/usr/local/src/apr
...
configure: creating ./config.status
config.status: creating Makefile
config.status: creating export_vars.sh
config.status: creating build/pkg/pkginfo
config.status: creating apr-util.pc
config.status: creating apu-1-config
config.status: creating include/private/apu_select_dbm.h
config.status: creating include/apr_ldap.h
config.status: creating include/apu.h
config.status: creating include/apu_want.h
config.status: creating test/Makefile
config.status: creating include/private/apu_config.h
config.status: executing default commands
//生成Makefile文件,需要伴隨著上一個指定的依賴
[root@lnh apr-util-1.6.1]# make
...
gcc -E -DHAVE_CONFIG_H  -DLINUX -D_REENTRANT -D_GNU_SOURCE   -I/root/xbz/apr-util-1.6.1/include -I/root/xbz/apr-util-1.6.1/include/private  -I/usr/local/src/apr/include/apr-1    exports.c | grep "ap_hack_" | sed -e 's/^.*[)]\(.*\);$/\1/' >> aprutil.exp
gcc -E -DHAVE_CONFIG_H  -DLINUX -D_REENTRANT -D_GNU_SOURCE   -I/root/xbz/apr-util-1.6.1/include -I/root/xbz/apr-util-1.6.1/include/private  -I/usr/local/src/apr/include/apr-1    export_vars.c | sed -e 's/^\#[^!]*//' | sed -e '/^$/d' >> aprutil.exp
sed 's,^\(location=\).*$,\1installed,' < apu-1-config > apu-config.out
make[1]: Leaving directory '/root/xbz/apr-util-1.6.1'
//編譯生成的Makefile文件,出現make[1]: Leaving directory '/root/xbz/apr-util-1.6.1'這個沒有關係可以繼續進行下一步安裝
[root@lnh apr-util-1.6.1]# make install
...
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/usr/bin/install -c -m 644 aprutil.exp /usr/local/src/apr-util/lib
/usr/bin/install -c -m 755 apu-config.out /usr/local/src/apr-util/bin/apu-1-config
//進行安裝
[root@lnh apr-util-1.6.1]# cd /usr/local/src/apr-util/
[root@lnh apr-util]# ls
bin  include  lib
//切換到apr-util安裝目錄進行查看,預設情況下,系統搜索庫文件的路徑只有/lib,/usr/lib,我們需要進行修改在/etc/ld.so.conf.d/中創建以.conf為尾碼名的文件,而後把要增添的路徑直接寫至此文件中。此時庫文件增添的搜索路徑重啟後有效,若要使用增添的路徑立即生效則要使用ldconfig命令
[root@lnh apr-util]# cd /etc/ld.so.conf.d/
[root@lnh ld.so.conf.d]# echo /usr/local/src/apr-util/ >apr-util.conf 
[root@lnh ld.so.conf.d]# cd -
/usr/local/src/apr-util
//切換到上一個工作目錄
[root@lnh apr-util]# ldconfig   //使其生效
[root@lnh apr-util]# ln -s /usr/local/src/apr-util/include/ /usr/include/apr-util
[root@lnh apr-util]# ll /usr/include/apr-util
lrwxrwxrwx. 1 root root 32 Jul 12 21:10 /usr/include/apr-util -> /usr/local/src/apr-util/include   
//將頭文件軟鏈接到/usr/include目錄下

安裝httpd

[root@lnh xbz]# tar -xf httpd-2.4.54.tar.gz 
[root@lnh xbz]# ls
apr-1.7.0         apr-util-1.6.1         httpd-2.4.54
apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.54.tar.gz
//解壓到當前目錄
[root@lnh xbz]# cd httpd-2.4.54/
[root@lnh httpd-2.4.54]# ls
ABOUT_APACHE     CMakeLists.txt  InstallBin.dsp  README
acinclude.m4     config.layout   LAYOUT          README.CHANGES
Apache-apr2.dsw  configure       libhttpd.dep    README.cmake
Apache.dsw       configure.in    libhttpd.dsp    README.platforms
apache_probes.d  docs            libhttpd.mak    ROADMAP
ap.d             emacs-style     LICENSE         server
build            httpd.dep       Makefile.in     srclib
BuildAll.dsp     httpd.dsp       Makefile.win    support
BuildBin.dsp     httpd.mak       modules         test
buildconf        httpd.spec      NOTICE          VERSIONING
CHANGES          include         NWGNUmakefile
changes-entries  INSTALL         os
//查看被解壓出來的東西
[root@lnh httpd-2.4.54]# ./configure --prefix=/usr/local/src/httpd --with-apr=/usr/local/src/apr --with-apr-util=/usr/local/src/apr-util
...
config.status: creating build/config_vars.sh
config.status: creating include/ap_config_auto.h
config.status: executing default commands
configure: summary of build options:

    Server Version: 2.4.54
    Install prefix: /usr/local/src/httpd
    C compiler:     gcc
    CFLAGS:          -g -O2 -pthread  
    CPPFLAGS:        -DLINUX -D_REENTRANT -D_GNU_SOURCE  
    LDFLAGS:           
    LIBS:             
    C preprocessor: gcc -E

//生成Makefile文件
[root@lnh httpd-2.4.54]# make
...
/usr/local/src/apr/build-1/libtool --silent --mode=link gcc  -g -O2 -pthread           -o mod_rewrite.la -rpath /usr/local/src/httpd/modules -module -avoid-version  mod_rewrite.lo 
make[4]: Leaving directory '/root/xbz/httpd-2.4.54/modules/mappers'
make[3]: Leaving directory '/root/xbz/httpd-2.4.54/modules/mappers'
make[2]: Leaving directory '/root/xbz/httpd-2.4.54/modules'
make[2]: Entering directory '/root/xbz/httpd-2.4.54/support'
make[2]: Leaving directory '/root/xbz/httpd-2.4.54/support'

make[1]: Leaving directory '/root/xbz/httpd-2.4.54'
//編譯生成Makefile文件,出現的一些沒有讀取到的問題沒有關係,繼續進行下一步
[root@lnh httpd-2.4.54]# make install
...
Installing man pages and online manual
mkdir /usr/local/src/httpd/man
mkdir /usr/local/src/httpd/man/man1
mkdir /usr/local/src/httpd/man/man8
mkdir /usr/local/src/httpd/manual
make[1]: Leaving directory '/root/xbz/httpd-2.4.54'
//進行安裝
[root@lnh httpd-2.4.54]# cd /usr/local/src/httpd/
[root@lnh httpd]# ls
bin    cgi-bin  error   icons    logs  manual
build  conf     htdocs  include  man   modules
//切換到httpd的安裝目錄進行查看,預設情況下,系統搜索庫文件的路徑只有/lib,/usr/lib
[root@lnh httpd]# ln -s /usr/local/src/httpd/include/ /usr/include/httpd
[root@lnh httpd]# ll  /usr/include/httpd
lrwxrwxrwx. 1 root root 29 Jul 12 21:23 /usr/include/httpd -> /usr/local/src/httpd/include/
//將頭文件軟鏈接到/usr/include目錄下
[root@lnh httpd]# echo "export PATH=$PATH:/usr/local/src/httpd/bin" > /etc/profile.d/httpd.sh
[root@lnh httpd]# source /etc/profile.d/httpd.sh 
//配置httpd的全局環境變數,並生成效果
[root@lnh httpd]# which httpd 
/usr/local/src/httpd/bin/httpd
[root@lnh httpd]# vim /etc/man_db.conf
MANDATORY_MANPATH                 /usr/man
MANDATORY_MANPATH                 /usr/share/man
MANDATORY_MANPATH                 /usr/local/share/man
MANDATORY_MANPATH                 /usr/local/src/httpd/man
//添加後面這一行
[root@lnh ~]# httpd
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe57:f6f5%ens33\. Set the 'ServerName' directive globally to suppress this message
httpd (pid 35719) already running
//啟動服務
[root@lnh ~]#  netstat -antp | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      35719/httpd  
[root@lnh ~]# ss -antl
State   Recv-Q  Send-Q   Local Address:Port     Peer Address:Port  Process  
LISTEN  0       128            0.0.0.0:22            0.0.0.0:*              
LISTEN  0       128                  *:80                  *:*              
LISTEN  0       128               [::]:22               [::]:*
//查看埠              
[root@lnh ~]# systemctl stop firewalld.service
//關閉防火牆

服務80埠

file

將httpd服務加入systemd

[root@lnh ~]# cd /usr/lib/systemd/system
[root@lnh system]# cp sshd.service httpd.service
[root@lnh system]# vim httpd.service 
[Unit]
Description=httpd server daemon   //服務
After=network.target sshd-keygen.target

[Service]
Type=forking
ExecStart=/usr/local/src/httpd/bin/httpd  //服務安裝的地方 開啟
ExecStop=/usr/local/src/httpd/bin/httpd  -s stop  //停止
ExecReload=/bin/kill -HUP $MAINPID   //重新載入併發出信號(對pid對組程式的進程號)可留可刪

[Install]
WantedBy=multi-user.target
[root@lnh system]# systemctl daemon-reload 
//重新載入一下並生效
[root@lnh system]# systemctl status httpd.service 
● httpd.service - httpd server daemon
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor >
   Active: inactive (dead)
//查看一下是否有這個服務
[root@lnh system]# ss -antl
State   Recv-Q  Send-Q   Local Address:Port     Peer Address:Port  Process  
LISTEN  0       128            0.0.0.0:22            0.0.0.0:*              
LISTEN  0       128               [::]:22               [::]:*    
//這裡要確保之前的httpd這個80埠關了,此處沒有就是關了
[root@lnh system]# systemctl enable --now httpd.service 
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
//表示設置開機自啟的同時候把它立刻啟動
[root@lnh system]# systemctl status httpd.service 
● httpd.service - httpd server daemon
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor p>
   Active: active (running) since Tue 2022-07-12 23:15:02 CST; 2min 11s ago
  Process: 36389 ExecStart=/usr/local/src/httpd/bin/httpd (code=exited, sta>
 Main PID: 36390 (httpd)
    Tasks: 82 (limit: 11205)
   Memory: 24.3M
   CGroup: /system.slice/httpd.service
           ├─36390 /usr/local/src/httpd/bin/httpd
           ├─36391 /usr/local/src/httpd/bin/httpd
           ├─36392 /usr/local/src/httpd/bin/httpd
           └─36393 /usr/local/src/httpd/bin/httpd

Jul 12 23:15:02 lnh systemd[1]: Starting httpd server daemon...
Jul 12 23:15:02 lnh httpd[36389]: AH00558: httpd: Could not reliably determ>
Jul 12 23:15:02 lnh systemd[1]: Started httpd server daemon.
//查看狀態,發現啟動了並且也設置了開機自啟
[root@lnh system]# ss -antl
State   Recv-Q  Send-Q   Local Address:Port     Peer Address:Port  Process  
LISTEN  0       128            0.0.0.0:22            0.0.0.0:*              
LISTEN  0       128                  *:80                  *:*              
LISTEN  0       128               [::]:22               [::]:*    
//查看80埠 
[root@lnh system]# systemctl disable httpd.service 
Removed /etc/systemd/system/multi-user.target.wants/httpd.service.
//關閉開機自啟         

file

源碼編譯報錯信息處理

checking for APR... no
configure: error: APR not found.  Please read the documentation.
//解決方案
[root@lnh xbz]# wget https://mirrors.aliyun.com/apache/apr/apr-1.7.0.tar.gz
[root@lnh xbz]# wget https://mirrors.aliyun.com/apache/apr/apr-util-1.6.1.tar.gz
提前把這兩個依賴包安裝好才可以進行生成Makefile文件

無法進行生成兩個依賴包的Makefile文件
//解決方案
[root@lnh xbz]# dnf -y install gcc gcc-c++ make wget
提前下載編譯工具

[root@lnh ~]#  netstat -antp | grep httpd
-bash: netstat: command not found
//解決方案
[root@lnh ~]# dnf provides netstat
dnf -y install net-tools-2.0-0.52.20160912git.el8.x86_64
//尋找需要的包併進行下載

本文轉自:https://www.cnblogs.com/tushanbu/p/16473452.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • LVM管理 lvm管理 部署lvm 格式化邏輯捲(剛剛創建出來的):mkfs.ext4格式、還是xfs_growfs 格式都可以 [root@lnh ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─s ...
  • MySQL的許可權管理(非重點) mysql用戶分類角度: 1.管理用戶: root,具有最高許可權,具有創建用戶的許可權,可以為其他用戶授權 2.普通用戶: 普通由root用戶創建,許可權由root分配 mysql用戶分類角度(訪問主機不同) 本地用戶-- 只能在安裝mysql的機器上訪問mysql資料庫 ...
  • Termius Mac版是適用於macOS, Windows 和Linux的現代SSH 來組織,訪問和連接到您的伺服器。Termius允許您將主機組織成組。組允許您共用設置,但每個主機可以有自己獨立的首選項。這些數據以及連接和命令歷史記錄可以安全地同步到您的所有設備。Termius使用端到端加密來確 ...
  • 鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 第一步:配置鏡像源,安裝必要環境 更換鏡像 第二步:安裝anaconda 1 進入官網 https://www.anaconda.com/ 2 下載linux的sh版 3 在對應位置通過命令輸入 sh 文件名.sh 4 選擇 YES 5 選擇 N ...
  • Vim 可視化模式及其用法 背景 相信大家都使用過帶圖形界面的操作系統中的文字編輯器,用戶可以使用滑鼠來選擇要操作的文本,非常方便。在 Vim 編輯器中也有類似的功能,但不是通過滑鼠,而是通過鍵盤來選擇要操作的文本。 Vim可視化模式 在 Vim 中,如果想選中目標文本,就需要調整 Vim 進入可視 ...
  • axure mac 是專為UX專業人員和業務分析師設計的專業網站原型設計工具!可以幫助他們快速創建應用程式和網站的線框,原型和規格!新功能包括一系列廣泛的改進:全面的 UI,新的設計和文檔特征,以及將引擎優化到前所未有的程度。Axure RP將原型設計的成品交付給產品經理,業務分析師和用戶體驗專業人 ...
  • 極品飛車14:熱力追蹤是一款非常有趣的競速賽車游戲,現為大家帶來的是內附完美存檔版,游戲將在全新的開放地圖中解鎖新的跑車及裝備,快來游戲中體驗賽車的樂趣吧,游戲非常炫酷,喜歡賽車游戲的朋友一定不要錯過! 詳情:極品飛車14:熱力追蹤 for Mac(競速賽車游戲)附完美存檔 游戲模式 生涯模式 《極 ...
  • 喜歡玩地鐵酷跑的玩家,可以試試這款Subway Surfers Tag Mac,又名地鐵衝浪,是一款頗受歡迎的休閑跑酷類游戲,您可以選擇在鐵路場、公園、碼頭和地下等挑戰酷跑衝浪,超炫酷,喜歡的朋友不要錯過哦~ 詳情:Subway Surfers Tag for mac(地鐵跑酷游戲) 游戲介紹 在鐵 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...