Apache web服務


1.apache

  1> 世界上使用率最高的網站服務器,最高時可達70%;官方網站:apache.org

  2> http 超文本協議 HTML超文本標記語言

  3> URL 統一資源定位符

    http://www.sina.com.cn:80/admin/index.php

    http:// -- ssl 安全套接字

    www.sina.com.cn -- 域名

    :80 -- 端口 http對應80端口,https對應443端口

    /admin/index.php -- 網址目錄和文件名
  4> LAMP安裝說明

  ①源碼包安裝  自定義 開發版本選擇方便 效率高

   生產環境 安全 穩定

·   開發環境 局域網(內網)

  ②二進制包安裝 yum命令安裝 官方版本比較低

2. Apach的三種工作模式

  apache 一共有3種穩定的 MPM 模式(多進程處理模塊),它們分別是 prefork、worker、event。http-2.2版本的httpd默認的mpm工作模式為prefork,2.4版本的httpd默認是event工作模式。可以通過 httpd -V 來查看。

[root@localhost ~]# httpd -V | grep -i "server mpm"
Server MPM:     Prefork

編譯的時候,可以通過 configure 的參數來指定:

--with-mpm=prefork|worker|event

 

2.1  prefork工作模式

(一個進程處理一個客戶端請求)

  Apache在啟動之初,就預先fork一些子進程,然后等待請求進來。之所以這樣做,是為了減少頻繁創建和銷毀進程的開銷。每個子進程只有一個線程,在一個時間點內,只能處理一個請求。

  作用:用一個進程處理一個用戶請求。

  優點:成熟穩定,兼容所有新老模塊。同時,不需要擔心線程安全的問題。

  缺點:一個進程相對占用更多的系統資源,消耗更多的內存。而且,它並不擅長處理高並發請求。

2.2 worker工作模式

(一個進程生成多個線程,一個線程處理一個客戶端請求)

  使用了多進程和多線程的混合模式。它也預先fork了幾個子進程(數量比較少),然后每個子進程創建一些線程,同時包括一個監聽線程。每個請求過來,會被分配到1個線程來服務。線程比起進程會更輕量,因為線程通常會共享父進程的內存空間,因此,內存的占用會減少一些。在高並發的場景下,因為比起prefork有更多的可用線程,表現會更優秀一些

  作用:一個進程生成多個線程,一個線程處理一個用戶請求

  優點:占據更少的內存,高並發下表現更優秀。

  缺點:必須考慮線程安全的問題。

2.3 event工作模式

(支持keepalive,數據傳送完畢自動斷開,但是不支持https)

  用一個線程處理一個用戶請求。它和worker模式很像,最大的區別在於,它解決了keep-alive場景下,長期被占用的線程的資源浪費問題。event MPM中,會有一個專門的線程來管理這些keep-alive類型的線程,當有真實請求過來的時候,

  將請求傳遞給服務線程,執行完畢后,又允許它釋放。這樣增強了高並發場景下的請求處理能力。

  HTTP采用keepalive方式減少TCP連接數量,但是由於需要與服務器線程或進程進行綁定,導致一個繁忙的服務器會消耗完所有的線程。Event MPM是解決這個問題的一種新模型,它把服務進程從連接中分離出來。在服務器處理速度很快,同時具有非常高的點擊率時,可用的線程數量就是關鍵的資源限 制,此時Event MPM方式是最有效的,但不能在HTTPS訪問下工作。

3. apach基本信息

apache為企業中常用的web服務,用來提供http://(超文本傳輸協議)

主配置目錄:/etc/httpd/conf

主配置文件:/etc/httpd/conf/http.conf

子配置目錄:/etc/httpd/conf.d

子配置文件:/etc/httpd/conf.d/*.conf

默認發布目錄:/var/www/html/

默認發布文件:index.html

默認端口:80

 

4. 服務器的返回狀態值

表示請求的是否成功等信息。

 

1xx:一般不用,就是一些描述信息

2xx:表示請求成功

200:ok,請求下載成功

201:create ok,上傳成功

3xx:表示請求的資源被重定向

301:moved permanently,永久重定向

302:Found,臨時重定向

304:not modified,標識一個緩存的資源是否發生過更改

4xx:請求失敗,因為客戶端原因導致失敗

403:forbidden,表示客戶端沒有權限訪問所請求的資源

404:Not Found,表示客戶端所請求的資源不存在

405:Method Not allowd:表示客戶端所用的方法不被允許

5xx:請求失敗,因為服務器端原因導致失敗

500:Internal Server Error,服務器內部錯誤

502:Bad Gateway,代理服務器從上游服務器獲取到的是偽響應

503:service unavailable,服務器暫時不可用

 

5. LAMP

  LAMP=Linux Apache Mysql/MariaDB PHP/Perl/Python 這些軟件都是開源免費的軟件,幾個程序各自是獨立的,經常為了達到我們需要的效果而協同工作,組成了我們常見的LAMP架構平台!  LAMP是世界上最流行的組合,當然同時也有Nginx(linux+nginx+mysql/mariadb+php),也就是LNMP: LAMP 相對於 NGINX 來說較為安全,但是Nginx處理高並發比apache要強,NGINX 相對於 LAMP 來說安全較為差一點,同樣的配制環境負載遠遠高於 LAMP 向國內的一些大公司,淘寶、新浪都在用這一些 NGINX,像那么大的公司網站需要用到服務器群用LAMP搭建環境成本遠遠大於NGINX。打個比方本來1000000W訪問量需要 10台LAMP環境服務器才能完成,但是使用NGINX也許只需要5、6台這樣一來對於這樣的公司來說就大大的節約了成本。

  從網站的流量上來說,70%以上的訪問流量是LAMP來提供的,LAMP是最強大的網站解決方案,在以前這句話沒有錯,但是在現在,這句話有待證實!!!因為在以后的過程中,會發現我們會使用的架構是Nginx和apache結合使用:使用Nginx可以做集群等相關配置,可以和apache一起使用,有的會用apache去跑php,然后用nginx做反向代理,比如apache運行在8080端口,nginx在80端口,訪問php文件時,反向代理到apache,靜態頁通過nginx處理。nginx支持高並發,apache對php的運行比較穩定。

  常見的網頁類型:htm,html,shtml,stm.php,asp,aspx,shtm,jsp等等apache本事只處理靜態頁面,處理動態頁面需要使用libphp5.so這個模塊去工作,編譯php也其實是將一個至關重要的模塊打入到apache內部,然后apache收到php請求,將請求交給這個模塊來處理!

 

5.1  LAMP的架構及通信過程

LAMP的架構:

        LAMP是一個多C/S架構的平台,最初級為web客戶端基於TCP/IP通過http協議發起傳送,這個請求可能是動態的,也可能是靜態的。

        所以web服務器通過發起請求的后綴來判斷,如果是靜態的資源就由web服務器自行處理,然后將資源發給客戶端。如果是動態這時web服務器會通過CGI(Common Gateway Interface)協議發起給php。

        這里但是如果php是以模塊形式與Web服務器聯系。那么他們是通過內部共享內存的方式。如果是php單獨的放置與一台服務器,那么他們是通過sockets套接字監聽的方式通信(這又是一個C/S架構)。

        這時php會相應的執行一段程序,如果在執行程序時,需要用到數據。那么php就會通過mysql協議發送給mysql服務器(也可以看作是一個C/S架構)。由mysql服務器處理,將數據供給php程序。

 

5.2  LAMP流程

  1)用戶發送http請求到達httpd服務器;

  2)httpd解析url獲取需要的資源的路徑,通過內核空間讀取硬盤資源,如是靜態資源,則構建響應報文,發回給用戶;

  3)如果是動態資源,將資源地址發給php解析器,解析php程序文件,解析完畢將內容發回給httpd,httpd構建響應報文,發回給用戶;

  4)如果涉及到數據庫操作,則利用php-mysql驅動,獲取數據庫數據,返回給PHP解析器。

(客戶端訪問網站,如果是靜態請求與,apache直接返回數據;

       如果是動態請求,apache會通過cgi協議聯系php模塊,然后返回客戶端請求;

       如果php需要調用數據庫就會通過php-mysql聯系數據庫,拿到數據之后,再返回給apache,再返回給客戶端。)

6. AMP聯動工作

6.1  apache+PHP結合方式

  第一種:把php編譯時直接編譯成apache的模塊、module模塊化的方式進行工作(apahce默認的這種方式)。

  第二種:CGI,通用網關接口,apache基於CGI跟hph通信。

  第三種:fastcgi是一種協議,在這種模塊下他們兩個是這樣結合的:

       本來php是做為一個模塊或都是php解析器運行的,不是監聽在某個套接字上接收別人的請求的,而是讓別人調用為一個進程使用的,可能是做為別人的子進程在運行,但是工作在fastcgi這種模塊下的hph自行啟用為一個服務進程,

        它監聽在某個套接字上,隨時可以接受來自客戶端的請求的,它也是有一個主進程的,為了可以響應多個用戶的請求,它會啟用多個子進程,這些子進程我們也可以稱為工作進程,

        它也是有空閑進程的,一但有客戶請求它馬上使用空閑的進程響應客戶端的請求,將結果返回給前端的調用者,在php5.3.3版本之前他是沒有這個能力了,只能工作在模塊和CGI的方式下,而在5.3.3之后這個模塊直接被收進php模塊中,這種模塊就叫php-fpm。

        所以在以后編譯php時,要想跟apache結合,就要編譯成php-fpm,這是基於fastcgi工作的模式,並啟動這服務進程,也就意味着他是通過套接字跟前端的調用者通信

=.,既然基於套按字通信了,那么前端的web服務器和后面的php服務器完全可以工作在不同的主機上,實現了所謂的分層機制。

        apache不會跟數據庫打交道,他是個靜態web服務器,跟數據庫打交道的是應用程序,作為應用程序的源驅動能夠基於某個aPi跟服務器之間建立會話,而后他會通過我們的mysql語句發送給數據庫,數據庫再將結果返回給應用程序,不是php進程,而是php進程中所執行的代碼。

 

6.2  php+mysql的通信

 PHP與mysql整合,httpd調用php

        首先httpd並不具備解析代碼的能力,要依賴於php的解析器,php本身不依賴於mysql,他只是一個解析器,能執行代碼就OK了,那他什么時候用到mysql呢,如果要在mysql中存數據時才用到mysql,只是當php中有運行mysql語句時才用到mysql。

        php語言要想聯系mysql,通常用到php的驅動,rpm包的叫php_mysql,php跟mysql沒有一點關系,只有程序員在php中編寫mysql語句時才連接mysql來執行sql語句的。

基於php-mysql去連接mysql只使用一個函數mysql_connect();而mysql_connect()正是php-mysql提供的一個aPi,只要指明要連接的服務器即可。

7. LAMP相關網站

  apache=http://httpd.apache.org/                                                       httpd主程序包

  MySQl=http://dev.mysql.com/downloads/mysql/                              mysql主程序包

  PHP=http://php.net/downloads.php                                                    php主程序包

  apr=http://apr.apache.org/                                                       apr是httpd的依賴包

  apr-util=http://apr.apache.org/                                 apr-util是httpd的第二個依賴包

  apr和apr-util這個兩個軟件是對后端服務軟件進行優化的,

  apr-util只是在apr的基礎上提供了更多的數據結構和操作系統封裝接口而已。

   pcre 是httpd的第三個依賴包 http://pcre.org/    

  PCRE(Perl Compatible Regular Expressions中文含義:perl語言兼容正則表達式)是一個用C語言編寫的正則表達式函數庫,PCRE被廣泛使用在許多開源軟件之中,最著名的莫過於apache HTTP服務器和PHP腳本語言、R腳本語言,此外,正如從其名字所能看到的,PCRE也是perl語言的缺省正則庫。

8. 為什么要編譯安裝

三個原因:版本、安裝路徑、新功能特性

 

1> 滿足不同的運行平台:我們linux發型版本眾多,但是每個版本采用的軟件或者內核版本都不一樣,而我們的二進制包所依賴的環境不一定能夠正常運行,所以大部分軟件直接提供源碼!

2> 方便定制,滿足不同的需求:很多時候我們所需要的軟件都是可以定制的,我需要什么就安裝什么,大多數二進制代碼都是一鍵裝全,所以自由度並不高!

3> 方便運維、開發人員維護:我們的源碼是可以打包二進制的,但是對於這個軟件的打包都會有一份代價不小的額外工作,包括維護,所以如果是源碼的話,軟件產商會直接維護,但是如果是二進制的話,一般都是linux發行商提供!

 

9.編譯安裝apache

[root@localhost ~]# yum install gcc gcc-c++ ncurses-devel ncurses pcre pcre-devel openssl-devel zlib-devel -y                          #安裝依賴包
[root@localhost ~]#  yum install lrzsz -y               #安裝rz依賴包
[root@localhost ~]# rz                                   #上傳安裝包
 
[root@localhost ~]# ls
anaconda-ks.cfg  apr-1.5.2.tar.gz  apr-util-1.5.4.tar.gz  httpd-2.4.20.tar.gz
[root@localhost ~]# tar xf apr-1.5.2.tar.gz          #解壓
[root@localhost ~]# tar xf apr-util-1.5.4.tar.gz
[root@localhost ~]# tar xf httpd-2.4.20.tar.gz
[root@localhost ~]# cd apr-1.5.2                        #進入cd apr-1.5.2
[root@localhost apr-1.5.2]# ls
apr-config.in  build             configure.in  libapr.dep    memory         random        threadproc
apr.dep        buildconf         docs          libapr.dsp    misc           REaDME        time
apr.dsp        build.conf        dso           libapr.mak    mmap           REaDME.cmake  tools
apr.dsw        build-outputs.mk  emacs-mode    libapr.rc     network_io     shmem         user
apr.mak        CHaNGES           encoding      liCENSE       NOTiCE         strings
apr.pc.in      CMakelists.txt    file_io       locks         NWGNUmakefile  support
apr.spec       config.layout     helpers       Makefile.in   passwd         tables
atomic         configure         include       Makefile.win  poll           test
[root@localhost apr-1.5.2]# ./configure  --prefix=/usr/local/apr && make && make install                    #檢查編譯環境 指定安裝路徑 編譯 編譯安裝 /usr/bin/install -c -m 644 build/apr_rules.out /usr/local/apr/build-1/apr_rules.mk
/usr/bin/install -c -m 755 apr-config.out /usr/local/apr/bin/apr-1-config
                                                 # apr-1.5.2安裝完成
[root@localhost ~]# cd apr-util-1.5.4            #編譯安裝apr-util-1.5.4(組件)
[root@localhost apr-util-1.5.4]# ./configure  --with-apr=/usr/local/apr --prefix=/usr/local/apr-util  &&  make  &&  make install           
/usr/bin/install -c -m 644 aprutil.exp /usr/local/apr-util/lib
/usr/bin/install -c -m 755 apu-config.out /usr/local/apr-util/bin/apu-1-config
                                                 # apr-util-1.5.4安裝完成
[root@localhost ~]# cd httpd-2.4.20 #編譯配置apache
[root@localhost httpd-2.4.20]# ./configure  --help |more #按需配置apache
[root@localhost httpd-2.4.20]# ./configure  --prefix=/usr/local/http2.4 \
#開始安裝apache,\表示續行,即一條命令沒寫完,再起一行寫 > --with-apr=/usr/local/apr \            #功能: #apr >  --with-apr-util=/usr/local/apr-util \        #apr-util
> --enable-cache \                              #緩存 > --enable-deflate   \                          #壓縮傳輸 > --enable-proxy \                              #代理 > --enable-ssl \                                #加密協議 > --enable-static-ab \                          #壓力測試 > --enable-cgi \                                #CGi協議 > --enable-userdir   \                          #開啟用戶家目錄 > --enable-rewrite \                            #重定向
#回車后安裝,
[root@localhost httpd-2.4.20]make && make install #開始編譯安裝
mkdir /usr/local/http2.4/manual
make[1]: leaving directory `/root/httpd-2.4.20' #安裝完成
[root@localhost httpd-2.4.20]# cd /usr
[root@localhost usr]# ls
bin  etc  games  include  lib  lib64  libexec  local  sbin  share  src  tmp
[root@localhost usr]# cd local
[root@localhost local]# ls
apr       bin  games    include  lib64    sbin   src
apr-util  etc  http2.4  lib      libexec  share
[root@localhost local]# cd http2.4
[root@localhost http2.4]# ls
bin    cgi-bin  error   icons    logs  manual
build  conf     htdocs  include  man   modules
[root@localhost http2.4]# cd bin
[root@localhost bin]# ls
ab         checkgid   envvars-std   htdbm     httpd       rotatelogs
apachectl  dbmmanage  fcgistarter   htdigest  httxt2dbm
apxs       envvars    htcacheclean  htpasswd  logresolve
[root@localhost bin]# ./apachectl start 
                          #切換到 /usr/local/http2.4/bin下啟動,./表示在當前目錄下
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                         #警告
[root@localhost bin]# ss -tnl
liST  0  128     :::80       :::* #檢查發現80端口成功啟動
#根據警告信息記入配置文件/etc/httpd2.4/conf/httpd.conf將ServerName www.example.com:80 前的備注刪掉
[root@localhost httpd-2.4.20]# cd /usr/local/httpd2.4/bin
[root@localhost bin]# ./apachectl restart       #再次啟動,成功啟動且無警告
[root@localhost bin]# ss -tnl
liSTEN     0      128    :::80      :::* 

 

10.apache配置文件 

 

[root@localhost httpd-2.4.20]# vim /etc/httpd/conf/httpd.conf
ServerRoot "/etc/httpd"                   #服務根目錄
#listen 12.34.56.78:80
Listen 80                                 #端口
include conf.modules.d/*.conf             #加載的模塊信息
User apache                               #apach用戶
Group apache                              #apach用戶組
Serveradmin root@localhost                #管理員郵箱
#ServerName www.example.com:80            #域名
 <Directory />                            #網站根目錄/表示/var/www/html
    allowOverride none
    Require all denied
</Directory>
DocumentRoot "/var/www/html"              #網站根目錄
<ifModule dir_module>
    DirectoryIndex index.html             #默認首頁文件
</ifModule>
Errorlog "logs/error_log"                 #日志信息
includeOptional conf.d/*.conf             #子配置文件

 

[root@localhost ~]# ls /var/log/messages  #系統錯入日志都放在此目錄下
[root@localhost ~]# ls /var/log/httpd/    #apache的日志都放在/var/log/httpd/
access_log  error_log

 

[root@localhost ~]# ps aux | grep apache
apache    32072  0.0  0.2 221920  2952 ?        S    apr19   0:00 /usr/sbin/httpd -DFOREGROUND
apache    32073  0.0  0.2 221920  2952 ?        S    apr19   0:00 /usr/sbin/httpd -DFOREGROUND
apache    32074  0.0  0.2 221920  2952 ?        S    apr19   0:00 /usr/sbin/httpd -DFOREGROUND
apache    32075  0.0  0.2 221920  2952 ?        S    apr19   0:00 /usr/sbin/httpd -DFOREGROUND
apache    32076  0.0  0.2 221920  2952 ?        S    apr19   0:00 /usr/sbin/httpd -DFOREGROUND
root      32097  0.0  0.0 112648   956 pts/1    R+   00:26   0:00 grep --color=autoapache

 

apache編譯完成后,在windows瀏覽器輸入服務機地址打開后會出現test界面,需要注釋掉/etc/httpd/conf.d/welcome.conf文件

[root@localhost ~]# vim /etc/httpd/conf.d/welcome.conf
#
# This configuration file enables the default "Welcome" page if there
# is no default index page present for the root URl.  To disable the
# Welcome page, comment out all the lines below.
#
# NOTE: if this file is removed, it will be restored on upgrades.
#
<locationMatch "^/+$">
    Options -indexes
    ErrorDocument 403 /.noindex.html
</locationMatch>
 
<Directory /usr/share/httpd/noindex>
    allowOverride None
    Require all granted
</Directory>

alias /.noindex.html /usr/share/httpd/noindex/index.html
alias /noindex/css/bootstrap.min.css /usr/share/httpd/noindex/css/bootstrap.min.css
alias /noindex/css/open-sans.css /usr/share/httpd/noindex/css/open-sans.css
alias /images/apache_pb.gif /usr/share/httpd/noindex/images/apache_pb.gif
alias /images/poweredby.png /usr/share/httpd/noindex/images/poweredby.png

一次性注釋步驟:

   鼠標滑至需注釋文件的開頭

   ctrl+v 進入visual block界面

   鼠標滑至文件末尾

   shift+i

   #

   esc

結果:

# 
# This configuration file enables the default "Welcome" page if there
# is no default index page present for the root URl.  To disable the
# Welcome page, comment out all the lines below. 
#
# NOTE: if this file is removed, it will be restored on upgrades.
#
#<locationMatch "^/+$">
#    Options -indexes
#    ErrorDocument 403 /.noindex.html
#</locationMatch>
#
#<Directory /usr/share/httpd/noindex>
#    allowOverride None
#    Require all granted
#</Directory>
#
#alias /.noindex.html /usr/share/httpd/noindex/index.html
#alias /noindex/css/bootstrap.min.css /usr/share/httpd/noindex/css/bootstrap.min.css
#alias /noindex/css/open-sans.css /usr/share/httpd/noindex/css/open-sans.css
#alias /images/apache_pb.gif /usr/share/httpd/noindex/images/apache_pb.gif
#alias /images/poweredby.png /usr/share/httpd/noindex/images/poweredby.png  

11. IP /PU/UV 

用來對網站的訪問情況進行統計

  ip:internet protocol,獨立IP數,表示我們的網站在一天之內被多少IP訪問過(00-24),相同IP一天只能計為一次,這種統計方式是不准確的,實際的訪問人數的多於IP數的。

  pv:Page View,表示是的在一天之內某個頁面被訪問過多少次(每刷新一次,算一次訪問)。

  uv:uniq vistor,獨立訪客,表示一個用戶就是一個uv

計算ip pv方式

  1>  在頁面中插入一段js代碼,實現統計

  2> 分析日志

  3> 使用第三方平台做統計

計算uv方式

  1> 給每個客戶端分配cookie,對cookie處理來實現統計

  2> 根據客戶端的特征信息(ip+瀏覽器類型+機器其他信息)

 

網站           iP(萬)    PV(萬)      服務器數量(台)

58                 250         3000              500

51cto.com        40          80-100            30

chinaunix        28           50-80              15

taobao          7-8000       5000-10000        10000

 

12. 創建虛擬主機

  利用虛擬主機功能,可以把一台處於運行狀態的物理服務器分割成多個“虛擬的服務器”。

apache的虛擬主機功能是服務器基於用戶請求的不同主機域名或端口號,實現提供多個網站同時為外部提供訪問服務的技術,用戶請求的資源不同,最終獲取到的網頁內容也各不相同。

  該方案適合訪問量少的公司實施。

 

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf    #進入配置文件
# logged here.  if you *do* define an error logfile for a <VirtualHost>
                                                      #復制VirtualHost
<VirtualHost *:81>
DocumentRoot  /var/www/zxj1                           #網站根目錄
Diredtoryindex index.htlm                             #首頁文件 </VirtualHost>

<VirtualHost *:82>
DocumentRoot  /var/www/zx21
Diredtoryindex index.htlm
</VirtualHost>

#listen 12.34.56.78:80
listen 80
listen 81 #端口監聽 listen 82 #端口監聽
:wq
[root@localhost ~]# mkdir /var/www/zxj{1,2}          #創建目錄
[root@localhost ~]# echo "1" > /var/www/zxj1/index.html     #寫入文件
[root@localhost ~]# echo "2" > /var/www/zxj2/index.html
[root@localhost ~]# systemctl restart httpd          #重啟apache
[root@localhost ~]# ss -tnl                         #查看端口
LISTEN     0      128                    :::80                    :::*       
LISTEN     0      128                    :::81                    :::*       
LISTEN     0      128                    :::82                    :::*

在windows瀏覽器查看

虛擬主機創建成功

再加上域名

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
VirtualHost *:81>
ServerName www.zxj1.com
DocumentRoot /var/www/zxj1
Directoryindex index.html
</VirtualHost>
<VirtualHost *:82>
ServerName www.zxj2.com
DocumentRoot /var/www/zxj2
Directoryindex index.htlm
</VirtualHost> 
:wq
[root@localhost ~]# systemctl restart httpd       #重啟apache
[root@localhost ~]# curl 192.168.16.7:81          #查看虛擬主機
1
[root@localhost ~]# curl 192.168.16.7:82
2
[root@localhost ~]# curl www.zxj1.com:82
curl: (7) Failed connect to www.zxj1.com:82; Connection refused

但訪問域名訪問不到。

解決辦法:

 寫入host和windows的host文件

[root@localhost ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.16.7 www,zxj1.com www.zxj2.com                 #寫入host

192.168.16.7 www.zxj1.com

192.168.16.7 www.zxj2.com

 

13.apache部署(上線)京東靜態網站

[root@localhost ~]# rz                             #上傳壓縮包
[root@localhost ~]#yum install unzip -y          #下載解壓文件
[root@localhost ~]# ls
anaconda-ks.cfg  jd.zip  wordpress  wordpress-3.3.1-zh_CN.zip
[root@localhost ~]#unzip jd.zzp                  #解壓  
[root@localhost ~]# ls jd/jd             
[root@localhost ~]# ls jd/jd
css           gw01.jpg    jd.jpg      logo-201305.png  regist.html  vip.jpg
cx.jpg        gwc.jpg     js          order.html       search.jpg   zf03.jpg
cy.jpg        img         jy.jpg      phone.jpg        sh04.jpg     ═ъ╒√╨з╣√═╝.jpg
dakehu.jpg    index       kx.jpg      php              star.jpg
favicon2.ico  index.html  login.html  ps02.jpg         ts05.jpg
                                    #首頁文件默認為index.html。win端輸入時可默認
[root@localhost ~]# systemctl restart httpd

win瀏覽器輸入地址查看

部署(上線成功)


14. apache
部署(上線)飛機大戰游戲 

[root@localhost ~]# rz                            #上傳壓縮包
[root@localhost ~]# ls
anaconda-ks.cfg  game.zip  jd  jd.zip  wordpress  wordpress-3.3.1-zh_CN.zip
[root@localhost ~]# unzip game.zip
[root@localhost ~]# ls game
images  jquery-1.8.3.min.js  readme.xls  sky_fight.html  sky.php

win端訪問的html文件

上線成功!


15. apach
部署(上線)動態網站wordpress 

[root@localhost ~]# rz                                     #上傳壓縮包
[root@localhost ~]#unzip wordpress-3.3.1-zh_CN.zip         #解壓
[root@localhost ~]# ls
anaconda-ks.cfg  game.zip  jd  jd.zip  wordpress  wordpress-3.3.1-zh_CN.zip
[root@localhost ~]# cd wordpress
[root@localhost wordpress]# ls
index.php        wp-blog-header.php    wp-links-opml.php  wp-settings.php
license.txt      wp-comments-post.php  wp-load.php        wp-signup.php
readme.html      wp-config-sample.php  wp-login.php       wp-trackback.php
wp-activate.php  wp-content            wp-mail.php        xmlrpc.php
wp-admin         wp-cron.php           wp-pass.php
wp-app.php       wp-includes           wp-register.php
[root@localhost wordpress]# cp wp-config-sample.php  wp-config.php
                                                          #備份文件
[root@localhost wordpress]# vim wp-config.php             #編輯配置文件 /** WordPress 數據庫的名稱 */
define('DB_NaME', 'zxj');
 
/** MySQl 數據庫用戶名 */
define('DB_USER', 'zxj');
 
/** MySQl 數據庫密碼 */
define('DB_PaSSWORD', '123');
:wq
[root@localhost wordpress]# yum install httpd mariadb-server php php-mysql -y
                                                          #安裝完整的LAMP架構
#數據庫配置:
[root@localhost wordpress]# systemctl restart mariadb     #1啟動數據庫
[root@localhost wordpress]# mysql -u root -p              #2進入數據庫
Enter password:                                           #此處回車
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database zxj;                    #3創建數據庫,以;結尾

MariaDB [(none)]> grant all on *.* to zxj@'localhost' identified by '123'

#4 授權用戶 授權 所有權限 在所有庫的所有表 給zxj用戶 在localhost主機登錄 密碼123認證

MariaDB [(none)]> exit                                    #退出
Bye
[root@localhost wordpress]# vim /etc/httpd/conf/httpd.conf  3 #進入主配置文件
# is requested.
#
<ifModule dir_module>
    Directoryindex index.php  index.html                 #添加index.php 文件 </ifModule>
;wq
[root@localhost wordpress]# systemctl restart mariadb    #重啟數據庫
[root@localhost wordpress]# systemctl restart httpd      #重啟apach

windows端瀏覽器訪問,進入動態網站界面。

登錄成功。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM