Apache web服務

1.apache

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

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

  3> URL 統一資源定位符html

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

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

    www.sina.com.cn -- 域名jquery

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

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

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

   生產環境 安全 穩定程序員

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

  ②二進制包安裝 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也許只須要五、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端瀏覽器訪問,進入動態網站界面。

登陸成功。

相關文章
相關標籤/搜索