国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

網(wǎng)站開發(fā)系列1——服務(wù)器環(huán)境搭建

2019-11-14 14:35:57
字體:
供稿:網(wǎng)友

  首先,這系列的文章的受眾是剛畢業(yè)想做網(wǎng)站開發(fā),或者其他開發(fā)崗位想了解網(wǎng)站開發(fā)的入門教程,默認讀者有計算機相關(guān)專業(yè)基礎(chǔ),會跳過很多基礎(chǔ),細節(jié)的原理自己百度或者之后我再補充,編程語言自身特征不會涉及很多。

  額,還是簡單自我介紹一下,我,華南農(nóng)業(yè)大學(xué)軟件工程專業(yè)畢業(yè)的理工男,2012年-2014年在廣州一家叫凱蘭高的創(chuàng)業(yè)公司工作兩年多,主要是負責(zé)Nodejs服務(wù)器開發(fā)和技術(shù)團隊管理,2014年8月自己嘗試創(chuàng)業(yè)3個月以失敗告終,2014年12月在南方周末新媒體擔(dān)當(dāng)了大半年的前端開發(fā),開始接觸php開發(fā),2015年8月份離職至今,在一家傳統(tǒng)行業(yè)b2b創(chuàng)業(yè)公司擔(dān)任技術(shù)總監(jiān),資歷尚淺,也不可能對所有編程語言和軟件都了如指掌,理解透徹,講得不對的地方還請大家指出。

學(xué)習(xí)目標(biāo):

  1. 了解B/S架構(gòu)中的服務(wù)器概念。
  2. 了解有哪些web服務(wù)器。
  3. 通過搭建一個hello world網(wǎng)站運行環(huán)境,熟悉linux下安裝軟件的流程,理解web服務(wù)器一般需要配置什么信息,web服務(wù)器是怎樣跟我們寫的代碼聯(lián)系起來的。

學(xué)習(xí)過程

  • 首先從目標(biāo)講起,我們的目標(biāo)是創(chuàng)建一個網(wǎng)站,一個別人可以通過網(wǎng)址(URL)訪問的網(wǎng)站,所以網(wǎng)站必須運行在一臺服務(wù)器上,為訪問的用戶提供服務(wù),那么提供這個服務(wù)的機器也叫做web服務(wù)器。怎么理解服務(wù)器呢?相對于另一個名詞PC(個人電腦),通俗一點理解,服務(wù)器就是一臺強大的電腦用來提供一些服務(wù)而已,而運行在這臺物理機器上的軟件,根據(jù)提供的服務(wù)不一樣,我們也分為web服務(wù)器,數(shù)據(jù)庫服務(wù)器,郵件服務(wù)器,緩存服務(wù)器,代理服務(wù)器等等,而這時候web服務(wù)器的叫法也指nginx,apache這類型的軟件。

  • web服務(wù)器,也就是網(wǎng)站服務(wù)器,顧名思義是提供網(wǎng)站訪問服務(wù)的,那么有哪些可以擔(dān)當(dāng)web服務(wù)器功能的軟件呢?學(xué)習(xí)java的時候,我們要安裝tomcat,學(xué)習(xí).NET的時候,我們要安裝iis,學(xué)習(xí)PHP的時候,我們要安裝apache或者nginx,對了,tomcatiisapache或者nginx就是我們所說的web服務(wù)器之一。那么,他們作為web服務(wù)器,到底提供什么功能呢?

tomcat

 

iis

 

 

apache

 

 

 

nginx

nginx

  • 為了說明web服務(wù)器的作用,我們還是先選擇其中一種編程語言,配置好運行環(huán)境,能夠訪問并返回數(shù)據(jù),再來談web服務(wù)器起到的作用。在這里,我選擇典型的lamp網(wǎng)站技術(shù)組合來說明,同時舉一反三說明其他類型的web服務(wù)器。

   首先,最簡單的hello world網(wǎng)站其實并不需要MySQL數(shù)據(jù)庫,所以從最簡單的開始配置,windows下的可以直接使用wamp(http://www.wampserver.com/)集成,為了這個教程,花了666個大洋買了阿里云的linux服務(wù)器,cenos7.0 64位

  1. 下載apache,http://httpd.apache.org/,可以下載2.4.18版本的,安裝流程詳細可參考附件:

apache安裝完畢之后,默認是安裝在/usr/local/apache2,所以為了能夠全局啟動,創(chuàng)建了httpd的硬鏈接,ln /usr/local/apache2/bin/httpd /usr/local/bin/。

  2. 編程語言是php,先從http://php.net/下載php,最新版本是7.0.0,不過這里以5.6.16為例,windows有線程安全和非線程安全版本的,暫時下載線程安全版本的,具體的區(qū)別暫不做說明。

安裝php完畢之后,啟動php-fpm,暫時使用默認配置,使用TCP連接9000端口,詳細可參考附件。

  3. 然后我希望訪問本機地址localhost或者127.0.0.1時,網(wǎng)頁返回hello world字符串顯示到瀏覽器,所以編寫一個文件命名為index.php

vim /var/www/test/index.php(目錄不存在需要先創(chuàng)建)

1 <?php2 echo "hello world";

 

  • 好,到了這一步,怎樣把這三者聯(lián)系起來,實現(xiàn)網(wǎng)頁的訪問呢?
  1. 安裝好apache之后,需要啟動httpd服務(wù),直接啟動httpd即可,這時候訪問即出現(xiàn)apache的默認頁面。
  2. 但是怎樣讓默認的訪問頁面,變成剛才編寫的index.php呢?修改配置,我們可以看看apache現(xiàn)有的配置,理解部分。原配置文件在/usr/local/apache2/conf/httpd.conf(如果遇到403權(quán)限問題,可參看http://www.th7.cn/system/lin/201507/122784.shtml)。
    Listen 80(監(jiān)聽端口,可在這里修改)User daemon(啟動使用的用戶)Group daemon(啟動使用的組)DocumentRoot "/usr/local/apache2/htdocs"(文檔根目錄,也就是我們訪問url為/時指向的文件系統(tǒng)目錄,修改為DocumentRoot "/var/www/test")<Directory "/var/www/test">(設(shè)置對應(yīng)目錄的訪問權(quán)限)Options Indexes FollowSymLinksAllowOverride NoneRequire all granted</Directory><IfModule dir_module>(設(shè)置默認首頁)DirectoryIndex index.html index.php</IfModule>ErrorLog "logs/error_log"(錯誤日志,修改為ErrorLog "/var/log/apache/error_log.log")LogLevel warn(日志等級)CustomLog "logs/access_log"(正常訪問日志,CustomLog "/var/log/apache/access_log.log")

     

  3. 給配置文件建立軟鏈接ln -s /usr/local/apache2/conf/httpd.conf /etc/httpd.conf,重新啟動httpd -f /etc/httpd.conf -k restart,這時候 tail -fn100 /var/log/apache/access_log.log可以看到訪問200記錄了。

xxx.xxx.xxx.xxx - - [16/Dec/2015:15:57:51 +0800] "GET / HTTP/1.1" 200 26 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36"

  4. 輸出的內(nèi)容是我們寫的php文件代碼,而不是執(zhí)行結(jié)果,為什么呢?因為php是腳本語言,是需要之前安裝的php解釋執(zhí)行輸出結(jié)果的,所以,下一步就是在apache的配置中,加入php,apache運行php的模式不止一種,這里使用fastcgi模式,以后再說明其他模式的做法和原理。去掉以下兩個模塊的注釋,添加上模塊的配置,重啟apache服務(wù)器。

  LoadModule PRoxy_module modules/mod_proxy.so

  LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

<IfModule proxy_fcgi_module>
  ProxyPass "/" "fcgi://127.0.0.1:9000/var/www/test/index.php" enablereuse=on
</IfModule>

總結(jié):

  1. 服務(wù)器是一臺性能強大的計算機,專門提供著一種或多種服務(wù)。
  2. apache、nginx、tomcat、iis等都是web服務(wù)器,都有著相似的功能,但又有著實現(xiàn)原理和對編程語言支持上的不同。
  3. web服務(wù)器監(jiān)聽某個端口(一般是80端口),建立HTTP連接,接收并分析數(shù)據(jù)流,有些服務(wù)器還會通過集成模塊來處理用戶具體邏輯的請求(例如查詢數(shù)據(jù)庫并返回數(shù)據(jù)),解釋(腳本語言php,nodejs都屬于此類,像java本身就已經(jīng)編譯成class文件了)并執(zhí)行我們編寫的代碼,最后把我們的輸出作為結(jié)果返回到用戶瀏覽器端。
  4. 服務(wù)器的配置,一般包含監(jiān)聽端口,訪問日志和錯誤日志的設(shè)置,連接數(shù)的設(shè)置,請求的分配或者處理。

      當(dāng)然,整個配置流程還是很多小問題要解決的,在解決這些問題的同時,也算是逼著我自己學(xué)習(xí)提高吧,有問題留下評論,我盡量解答。不過下一期,我將會做一個大逆轉(zhuǎn),1. 我將使用Nginx作為反向代理服務(wù)器,取代apache的位置,采用LNMP架構(gòu);2. 我將配置Laravel這個PHP框架,并可以訪問Laravel的hello world首頁,Larevel也是網(wǎng)站開發(fā)使用的框架,而不會從零開始搭建一個網(wǎng)站。

附件:LAMP環(huán)境搭建

 

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 靖边县| 隆子县| 闽清县| 台南市| 大化| 连山| 阜宁县| 楚雄市| 称多县| 会宁县| 微山县| 都匀市| 新兴县| 剑阁县| 射洪县| 巴林右旗| 沙田区| 斗六市| 义乌市| 科技| 广丰县| 长白| 天台县| 连云港市| 蒲城县| 大余县| 聊城市| 靖江市| 运城市| 锡林浩特市| 铁岭市| 扬中市| 皮山县| 千阳县| 理塘县| 福鼎市| 博湖县| 嘉祥县| 辽阳县| 芜湖县| 安化县|