文章目錄
- Apache 原始碼安裝
- Apache 入門簡介
- 行程和執行緒概念
- 行程和執行緒的區別
- 目前主流的WEB服務器軟體
- 原始碼包安裝 httpd
- 總結
- Apache 重啟報錯解決辦法
- Apache 原始碼安裝常見目錄
- Apache bin目錄下常用的命令
- http 常用引數
- tar 解壓工具命令
- 查看cpu資訊
- 原始碼安裝心得體會:
Apache 原始碼安裝
Apache 入門簡介
點擊查看HTTP基礎概念
點擊查看HTTP作業模式
行程和執行緒概念
行程是作業系統分配資源的資本單位,行程是程式的物體行程是動態的,程式是靜態的
行程和執行緒的區別
執行緒是行程的基本單位,范圍比行程要小一個行程中包含一個執行緒或者多個執行緒,所有的執行緒共享該行程的記憶體空間- 如果
行程掛掉,所有執行緒崩潰,如果一個執行緒例外退出,連同其他的執行緒或者行程會崩潰 - 多執行緒的好處是
提高訪問效率、并發高網站采用多行程-多執行緒作業,
目前主流的WEB服務器軟體
- Apache 、Nginx、Lighttpd、IIS
- Resin、Tomcat、WebLogic、Jetty等
- Apache 是一個古老的web服務器軟體,基于Apahce 基金會開發的,默認只能發布靜態網頁
- Apache 是一個多模塊式的軟體、模塊豐富
- Apache 有三種作業模式:
Prefork、Worker、Event- Prefork:Apche默認作業模式,
多行程模型,預先生成行程,一個請求用一個行程回應,預先生成多個空閑行程,隨時等待請求到達,最大不會超過1024個,- 缺點:多行程方式,
比較消耗記憶體和系統資源,
- 缺點:多行程方式,
- Worker MPM:作業模式,
基于執行緒作業,一個請求用一個執行緒回應(啟動多個行程,每個行程生成多個執行緒)記憶體占用量比較小,適合大并發、高流量的WEB服務器- 缺點:一個執行緒崩潰,整個
行程就會連同其任何執行緒一起掛掉
- 缺點:一個執行緒崩潰,整個
- Prefork:Apche默認作業模式,
原始碼包安裝 httpd
點擊官網下載地址
-
下載http-2.4.46.tar.bz2:
https://downloads.apache.org/httpd/httpd-2.4.46.tar.bz2
[root@localhost usr]# cd src/ [root@localhost src]# wget https://downloads.apache.org/httpd/httpd-2.4.46.tar.bz2 --2021-04-03 15:53:32-- https://downloads.apache.org/httpd/httpd-2.4.46.tar.bz2 Resolving downloads.apache.org (downloads.apache.org)... 88.99.95.219, 2a01:4f8:10a:201a::2 Connecting to downloads.apache.org (downloads.apache.org)|88.99.95.219|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 9363314 (8.9M) [application/x-gzip] Saving to: ‘httpd-2.4.46.tar.bz2’ 100%[===================================================================>] 9,363,314 1.07MB/s in 9.4s 2021-04-03 15:53:43 (972 KB/s) - ‘httpd-2.4.46.tar.bz2’ saved [9363314/9363314] [root@localhost src]# ll total 7992 drwxr-xr-x. 2 root root 6 Nov 5 2016 debug -rw-r--r-- 1 root root 7187805 Aug 5 2020 httpd-2.4.46.tar.bz2 drwxr-xr-x. 2 root root 6 Nov 5 2016 kernels -
解壓http-2.4.46.5安裝包:
tar -xjf httpd-2.4.46.tar.bz2
[root@localhost src]# tar xjf httpd-2.4.46.tar.bz2 解壓.bz2包報錯,提示缺bzip2,所以安裝bzip2 tar (child): bzip2: Cannot exec: No such file or directory tar (child): Error is not recoverable: exiting now tar: Child returned status 2 tar: Error is not recoverable: exiting now [root@localhost ~]# yum install bzip2 -y 解決報錯,安裝bzip2 [root@localhost src]# tar -xjf httpd-2.4.46.tar.bz2 再次解壓 -
進入解壓目錄
[root@localhost src]# cd httpd-2.4.46 [root@localhost httpd-2.4.46]# ls ABOUT_APACHE BuildAll.dsp configure.in include LICENSE README test acinclude.m4 BuildBin.dsp docs INSTALL Makefile.in README.cmake VERSIONING Apache-apr2.dsw buildconf emacs-style InstallBin.dsp Makefile.win README.platforms Apache.dsw CHANGES httpd.dep LAYOUT modules ROADMAP apache_probes.d CMakeLists.txt httpd.dsp libhttpd.dep NOTICE server ap.d config.layout httpd.mak libhttpd.dsp NWGNUmakefile srclib build configure httpd.spec libhttpd.mak os support [root@localhost httpd-2.4.46]# -
檢測系統環境是否能夠達到編譯的請求
安裝apache之前,需要先安裝apr apr-devel apr-util apr-util-devell優化模塊,- 安裝編譯前,先確認安裝編譯環境(
gcc-c++)
[root@localhost httpd-2.4.46]# yum install apr apr-devel apr-util apr-util-devel -y [root@localhost httpd-2.4.46]# yum -y install gcc-c++ -y -
預編譯./configure
[root@localhost httpd-2.4.46]# ./configure --prefix=/usr/local/apache --with-pmp=worker ……編譯程序省略 模塊解釋: --prefix=/usr/local/apache/ 指定安裝路徑 --enable-rewrite 預編譯Apache,啟用rewrite規則 --enable-so 啟用動態加載庫; --enable-ssl 啟用ssl功能 --with-mpm=prefork|worker|event() 指定作業模式 --enable-mpms-shared=all 也可以編譯為三種都支持,通過修改配置來更換, -
編譯make 根據生成的makefile檔案來執行對應的編譯
[root@localhost httpd-2.4.46]# make -j4 使用4個內核編譯,提升編譯速度,(根據內核數量添加) -
安裝組態檔make install
[root@localhost httpd-2.4.46]# make install [root@localhost ~]# cd /usr/local/apache/ [root@localhost apache]# ls bin build cgi-bin conf error htdocs icons include logs man manual modules [root@localhost apache]# -
修改網頁內容
[root@localhost ~]# cd /usr/local/apache/htdocs/ [root@localhost htdocs]# ls index.html [root@localhost htdocs]# rm -f index.html [root@localhost htdocs]# rz [root@localhost htdocs]# ls love72.zip [root@localhost htdocs]# yum -y install unzip* [root@localhost htdocs]# unzip love72.zip Archive: love72.zip creating: images/ inflating: images/1.jpg inflating: index.html creating: js/ inflating: js/yiqi.js creating: style/ inflating: style/main.css [root@localhost htdocs]# ls images index.html js love72.zip style [root@localhost htdocs]# cd ../ [root@localhost apache]# ./bin/apachectl restart 重啟服務 -
啟動Apache服務,臨時關閉selinux、firewalld防火墻
[root@localhost ~]# getenforce Disabled [root@localhost ~]# [root@localhost ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) [root@localhost ~]# [root@localhost ~]# /usr/local/apache/bin/apachectl stop [root@localhost ~]# /usr/local/apache/bin/apachectl start -
測驗:

總結
Apache 重啟報錯解決辦法
-
Apache按照重啟報錯處理方法
- 編輯組態檔
vim /usr/local/apache/conf/httpd.conf
- 開啟監聽本地域名localhost
沒有開啟80埠的域名決議)
[root@localhost apache]# ./bin/apachectl start 重啟報錯 AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message httpd (no pid file) not running [root@localhost src]# vim /usr/local/apache/conf/httpd.conf Listen 80 ServerName localhost:80 添加一行"ServerName localhost:80 "開啟80埠的域名監聽 - 編輯組態檔
-
如圖:

Apache 原始碼安裝常見目錄
[root@localhost apache]# ls
bin build cgi-bin conf error htdocs icons include logs man manual modules
[root@localhost apache]#
bin 主要存放程式命令目錄
conf 主要存放apache組態檔
httdocs 存放網頁的目錄
logs 存放日志的目錄
manual 完整檔案
modules apache的模塊目錄 如php mencache
Apache bin目錄下常用的命令
[root@localhost ~]# cd /usr/local/apache/bin/
[root@localhost bin]# ll
total 1224
-rwxr-xr-x 1 root root 73952 Apr 3 16:47 ab
-rwxr-xr-x 1 root 40 3434 Apr 3 16:29 apachectl
-rwxr-xr-x 1 root 40 23877 Apr 3 16:29 apxs
-rwxr-xr-x 1 root root 8776 Apr 3 16:47 checkgid
-rwxr-xr-x 1 root 40 8925 Apr 3 16:29 dbmmanage
-rw-r--r-- 1 root 40 1071 Apr 3 16:29 envvars
-rw-r--r-- 1 root 40 1071 Apr 3 16:29 envvars-std
-rwxr-xr-x 1 root root 13888 Apr 3 16:47 fcgistarter
-rwxr-xr-x 1 root root 41032 Apr 3 16:47 htcacheclean
-rwxr-xr-x 1 root root 28176 Apr 3 16:47 htdbm
-rwxr-xr-x 1 root root 18272 Apr 3 16:47 htdigest
-rwxr-xr-x 1 root root 27608 Apr 3 16:47 htpasswd
-rwxr-xr-x 1 root root 912304 Apr 3 16:47 httpd
-rwxr-xr-x 1 root root 13832 Apr 3 16:47 httxt2dbm
-rwxr-xr-x 1 root root 14480 Apr 3 16:47 logresolve
-rwxr-xr-x 1 root root 27488 Apr 3 16:47 rotatelogs
ab #Apache 性能測驗工具
apachectl #Apache 啟動命令,它是一個腳
httpd #Apache 控制命令程式
htpasswd #建立和更新基本認證檔案,配置 ngios 等監控服務用到
http 常用引數
[root@localhost apache]# ./bin/httpd -v 查看版本資訊
Server version: Apache/2.4.46 (Unix)
Server built: Apr 3 2021 16:36:22
[root@localhost apache]# ./bin/httpd -V 查看詳細資訊
[root@localhost apache]# ./bin/httpd -l 查看靜態編譯的模塊,列出核心中編譯了哪些模塊
Compiled in modules:
core.c
mod_so.c
http_core.c
worker.c
[root@localhost apache]#
[root@localhost apache]# ./bin/httpd -M 輸出一個已經啟用的模塊串列,包括靜態編譯在服務
[root@localhost apache]# ./bin/httpd -t 檢查組態檔是否有語法錯誤
AH00112: Warning: DocumentRoot [/usr/local/apache/docs/dummy-host.example.com] does not exist
AH00112: Warning: DocumentRoot [/usr/local/apache/docs/dummy-host2.example.com] does not exist
Syntax OK
tar 解壓工具命令
- 常用幾種格式
- .tar.gz (tar)
- .tar.bz2 (tar),
需要安裝bzip2安裝包 - .tar.xz (tar)
- .zip (zip) 跨平臺的,
需要安裝zip、unzip
- 壓縮比:gz<bz<xz (xz壓縮效果最好,推薦使用tar.xz)
- 常用壓縮檔案選項
-zcf 創建一個gz的檔案壓縮包-jcf 創建一個bz2的檔案壓縮包-Jcf 創建一個xz格式的檔案壓縮包
-常用解壓檔案選項-xf 解壓指定檔案(gz、xz用)-xvf 解壓指定檔案并顯示解壓程序(gz、xz用)-xjf 解壓bz2檔案的
- 查看壓縮的檔案
- -tvf 不解壓查看一個檔案
-c 創建歸檔
-z 壓縮成gz格式
-j 壓縮成bz2格式
-v 顯示詳細資訊
-t 不解壓查看壓縮包內容
-f 指定要壓碩訓解壓縮的檔案
-x 解壓縮
-C 將壓縮檔案解壓到指定目錄
查看cpu資訊
[root@localhost httpd-2.4.46]# grep 'physical id' /proc/cpuinfo|sort -u|wc -l 查看物理cpu個數
1
[root@localhost httpd-2.4.46]# grep 'core id' /proc/cpuinfo |sort -u|wc -l 查看核心數量,即每個物理CPU中core的個數(即核數)
1
[root@localhost httpd-2.4.46]# grep 'processor' /proc/cpuinfo |sort -u|wc -l 查看執行緒數(邏輯CPU的個數)
1
[root@localhost ~]# dmidecode -s processor-version 查看cpu型號
[root@localhost ~]# cat /proc/cpuinfo 查看 CPU 的詳細資訊
原始碼安裝心得體會:
-
通常使用RPM工具管理.rpm結尾的二進制包,而標準的.zip、tar結尾的源代碼包則不能使用RPM工具去安裝、卸載及升級,
-
安裝程序并不難,可以根據提示,使用yum安裝相對應的安裝包, -
原始碼包安裝有三個步驟:
./configure 預編譯,主要用于檢測系統基準環境庫是否滿足,生成Makefile檔案;make 編譯,基于第一步生成的makefile檔案,進行源代碼的編譯;make install 安裝,編譯完畢之后,將相關的可運行檔案安裝至系統中;
-
使用make編譯時,Linux作業系統必須有gcc編譯器,用于編譯原始碼, -
原始碼包安裝通常需要./configure、make、make install三個步驟,
某些特殊原始碼可以只有三步中的其中一個步驟,或者兩個步驟, -
原始碼安裝技巧:
make -j4加速編譯速度
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/272212.html
標籤:其他
下一篇:完整版三層架構
