1. 程式人生 > >網站搭建:從0到1搭建網站

網站搭建:從0到1搭建網站

1 網站基本概念

網站說白了就是把一些東西放到哪裡供其他人訪問,並提供了一些可以互動的介面的地方。如果要實現這樣一個地方首先,需要一個能放東西的地方這就是伺服器。其次,我們要找到這個地方,然而有很多這樣的地方,所以我們就需要給很多這樣的地方標號,然後按照標號來找到這些地方,並訪問。所以就有了IP地址,每個伺服器都有一個唯一的IP地址,這樣我們可以通過IP地址找到伺服器。最後,IP地址都是一堆數字太難記了,有那麼多伺服器(相應的就有那麼多IP地址),根據一串數字來找到伺服器對於我們來說太麻煩了,根本記不住。如果有個名字就好了,比如百度的伺服器可以用www.baidu.com來記那就好多了。所以就有了域名。為了我們能夠用域名來找到伺服器,我們需要把各個域名與伺服器的IP地址對映起來來。每次當我們用域名來訪問伺服器的時候,就需要把域名轉換為IP地址(這個過程就是DNS(Domain Name System)服務),然後通過IP地址找到伺服器。

實際上這些概念實現上很複雜,分別在網際網路七層協議中的不同層實現。它們之間層與層之間相互依賴。實際情況也比較複雜,比如從域名到IP的對映之間可以多個域名對映到同一個IP,這就是虛擬主機的概念。不過這些都是後話了。接下來對各個概念盡心詳細的解釋。

1.1 伺服器概念

伺服器(server),是提供計算機服務的裝置。由於伺服器需要響應服務請求,並進行處理,因此一般來說伺服器應具備承擔服務並且保證服務的能力。

伺服器的構成包括處理器、硬碟、記憶體、系統匯流排等,和通用的計算機架構類似,但是由於需要提供高可靠的服務,因此在處理能力、穩定性、可靠性、安全性、可擴充套件性、可管理性等昂面要求較高。

在網路環境下,根據伺服器提供的服務型別不同,分為檔案伺服器,資料庫伺服器,應用程式伺服器,WEB伺服器等。

總的來說伺服器就是能夠提供服務的機器,這取決於機器上所安裝的軟體(服務軟體),比如:Web伺服器提供Web服務(網站訪問),就需要Web服務軟體,如Apache、tomact等。

1.2 IP的概念

IP:Internet Protocol,網路之間互聯協議。網路之間互聯的協議也就是計算機網路相互連線進行通訊而設計的協議。在因特網中,它是能連結到網上的所有計算機網路實現相互通訊的一套規則,規定了計算機在因特網上進行通訊時應當遵守的規則。任何廠家生產的計算機系統,只要遵守了IP協議就可以與因特網互聯互通。IP地址具有唯一性。

1.3 域名

域名(Domain Name),是由一串用點分隔的名字構成(www.baidu.com)的Internet上某一臺計算機或計算機組成的名稱,用於在資料串數時標識計算機的電子方位(有時也指地理位置,地理上的域名,指代有行政自主權的一個地方區域)。域名時一個IP地址上的“面具”。一個域名的目的是便於記憶和溝通的一組伺服器的地址(網站,電子郵件,FTP等)。域名作為力所能及難忘的網際網路參與者的名稱。

1.4 DNS

DNS(Domain Name System,域名系統),因特網上作為域名和IP地址相互對映的一個分散式資料庫,能夠是使用者更方便的訪問網際網路,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫作域名解析(或主機名解析)。

1.5 埠

埠(Port),可以認為裝置與外界通訊交流的出口。主要為了解決,一臺伺服器上有很服務程式我們訪問一臺伺服器的時候如何判斷我們要要訪問那種服務程式的問題。比如網頁服務(http訪問)的埠都為80。埠可分為虛擬埠和物理埠,其中虛擬埠指計算機內部或交換機路由器內的埠,不可見。例如計算機中的80埠、21埠、23埠等。物理埠又稱為介面,是可見埠。

2 當我們在瀏覽器中輸入一個網址後發生了什麼

前面說過域名只是IP地址的”面具”,所以當我們在瀏覽器中輸入了域名後,首先要做的是解析域名,找到域名所對應的IP地址。這個時候瀏覽器會先訪問本地DNS服務。說白了就是在本地電腦裡儲存了一個檔案(windows中是hosts),該檔案中記錄了域名與IP地址的對映,如果你輸入的域名在該檔案中,則瀏覽器會直接訪問該域名對應的IP地址所對應的伺服器。如果本地DNS檔案中沒有該域名,則瀏覽器會訪問DNS伺服器(DNS伺服器的IP地址就幾個,且比較固定,比如114.114.114.114),在DNS伺服器上查詢該域名所對應的IP。
查到IP後,瀏覽器則訪問該IP所指向的伺服器,然後向伺服器提出請求,伺服器迴應後,傳送相應的內容到本機,顯示在瀏覽器中。

DNS解析域名的過程和訪問IP的過程中還有很多機制,這裡不詳細說。

3 靜態網頁與動態網頁

3.1 靜態網頁及其訪問過程

稱為普通網頁。靜態網頁是指編寫完成後,內容就不會在變化的,不管何人何時訪問,顯示的內容都是一樣的。如果要修改網頁的內容就必須修改其原始碼,然後重新上傳到伺服器上。一般指.html、.htm、.xml檔案等。可以直接開啟用瀏覽其檢視的。其訪問過程如下圖(以Apache為例):

這裡寫圖片描述

3.2 動態網頁及其訪問過程

動態網頁指在網頁檔案中除了HTML標記外,還包括一些實現特定功能的程式程式碼,這些程式程式碼使得瀏覽器與伺服器之間可以進行互動,即伺服器端可以根據客戶端的不同請求動態產生網頁內容。動態網頁的字尾名通常根據所用的程式設計語言的不同而不同,一般為.asp、.aspx、.cgi、.php、.perl、.jsp等。動態網頁可以根據不同的時間,不同的瀏覽器者顯示不同的資訊。其訪問流程如下(以php為例):

這裡寫圖片描述

4 伺服器環境搭建

因為沒有購買伺服器,也沒有註冊域名。我們計劃在本地搭建一個伺服器環境,把我們自己本地計算機作為一個伺服器。通過本地DNS重對映域名到我們本機的IP地址(127.0.0.1),這樣和實際搭建伺服器沒有大的區別,唯一的區別是做這些操作水在另一個IP地址的計算機上進行的,域名也是經過註冊(開通DNS服務的),在工信部經過備案的。

這裡我們選擇Apache2.4伺服器軟體,php7語言,Mysql5.7資料庫。

4.1 軟體下載

Apache2.4,檔名:httpd-2.4.33-win64-VC15.zip。官方沒有提供windows編譯版本,這裡是在pachelounge社群下載的:

php7.2.6,檔名:VC15 x64 Thread Safe:

MySQL5.7.22,檔名:mysql-5.7.22-winx64(下載需要註冊賬號):

4.2 Apache安裝

下載並解壓檔案,這裡為方便管理,把Apache、php、mysql放在同一個資料夾下了。這裡目錄為“D:\Server\Apache”。

4.2.1 Apache目錄解釋

這裡寫圖片描述

4.2.2 安裝

以管理員身份啟動cmd,然後進入Apache目錄,呼叫一下命令:

httpd -k install -n apache
net start apache
httpd -n "apache" -t

以上命令分別是安裝apache服務,並命名為“apache”;啟動apache服務;如果啟動不成功,第三行則可以檢視原因。啟動成功。第三行則起測試作用測試作用。執行結果如下圖:

這裡寫圖片描述

另外,解除安裝Apache服務方法,是以管理員身份執行cmd,然後輸入:sc delete Apache().

Apache(),表示你安裝的Apache服務名字,有可能是Apache,也可能是Apache2.4,是可以在安裝的時候指定的。

4.2.3 配置Apache

在”D:\Server\Apache\conf”目錄下有個名為”httpd.conf”的檔案,用記事本開啟。並修改一些內容,如下:

1、伺服器根目錄,ServerRoot

修改前:ServerRoot “c:/Apache24”

修改後:ServerRoot “D:/Server/Apache”,這個目錄是Apache的安裝目錄,根據自己的目錄做相應的修改。

2、服務名稱
修改前:#ServerName www.example.com:80
修改後:ServerName localhost:80
3、Apache預設網站目錄

修改前:DocumentRoot “c:/Apache24/htdocs”

修改後:DocumentRoot “D:/Documents/MyProjects/Web/”,這個目錄是自己網頁檔案的放置目錄,就是網站檔案都在該資料夾下。是自己定義的。

4、修改根目錄選項

修改前:

<Directory "c:/Apache24/htdocs">

    Options Indexes FollowSymLinks

    AllowOverride None

    Require all granted

</Directory>

修改後:

<Directory "D:/Documents/MyProjects/Web/">

    Options Indexes FollowSymLinks

    AllowOverride None

    Require all granted

</Directory>
4.2.4修改本地DNS對映

在資料夾”C:\Windows\System32\drivers\etc”下面有個名為hosts的檔案,用記事本開啟,並新增如下一行:

127.0.0.1 localhost

這裡是告訴瀏覽器,把localhost這個域名對映到IP地址為127.0.0.1的伺服器,而127.0.0.1指向的伺服器就是本機。

4.2.5 啟動Apache,並測試

在Apache網站根目錄裡放入html檔案,這裡為”D:/Documents/MyProjects/Web/”,就是在4.2.3中修改的目錄。

注意,apache預設開啟的檔案是index.html。所以我們在”D:/Documents/MyProjects/Web/”中建立名為index.html的檔案,並編輯以下內容:

<!DOCTYPE html>
<html lang="en">

<body>

    Hello world !
</body>
</html>

啟動Apache,在”D:\Server\Apache\bin”下有個名為ApacheMonitor.exe的程式,可以通過它來管理Apache的啟動、關閉與重啟。雙擊,啟動後在工作列右下角有個圖示,左擊然後啟動Apache服務。

這裡寫圖片描述

4.3 php安裝

下載並解壓檔案,這裡放的目錄為:“D:\Server\php”,php目錄介紹如下圖:

這裡寫圖片描述

4.4 mysql安裝

mysql安裝要注意有兩個目錄,一個是mysql本身的安裝目錄,另一個是mysql中資料存放的目錄。為方便管理這兩個目錄放在了同一個目錄下:

mysql的安裝目錄:”D:\Server\mysql”
mysql的資料存放目錄:“D:\Server\mysql\data”

1、把檔案解壓到”D:\Server\mysql” ,然後在該資料夾中建立data目錄。mysql目錄介紹如下圖:

這裡寫圖片描述

2、把“D:\Server\mysql\bin”,新增到環境變數,為了方便在cmd中呼叫mysql命令,否則每次呼叫mysql命令都要輸入路徑,或者先通過cmd進入該資料夾。

3、建立mysql配置檔案
在目錄”D:\Server\mysql” 中建立”my.ini”檔案,內容如下:

[client]
port=3306
default-character-set=utf8
[mysqld]
port=3306
character_set_server=utf8
basedir=D:/Server/mysql
datadir=D:/Server/mysql/data

4、初始化資料庫

mysqld --initialize
mysqld -install MySQL
net start MySQL

其中命令依次為,初始化資料庫,安裝資料庫服務,啟動資料庫服務

5、修改資料庫密碼
在“D:\Server\mysql\data” 資料夾下有個名字為xxxxxx.err的資料夾,”xxxxxx”是計算機名。找到該檔案並開啟,找到”[Note] A temporary password is generated for [email protected]: “。改行後的是初始化資料庫root賬號的預設密碼,我們就是要修改該密碼:

mysql -u root -p
Enter password: ***********
set password for [email protected] = password('新密碼');

注意:修改資料庫密碼命令後面的’;’不能丟。如果想退出mysql,則輸入quit,回車就可以了。
如下圖:

這裡寫圖片描述

4.5 Apache配置php

我們剛才只是把Apache、php、mysql安裝了,它們之間兵們有什麼關係,我們需要讓他們協同起來一起工作。Apache需要呼叫php服務,php需要呼叫mysql服務。先Apache配置php。
1、構造php配置檔案
在目錄”D:\Server\php”中有個名為php.ini-development的檔案,複製一份,並重命名為php.ini,放在該資料夾中。這個是php的配置檔案。
2、修改Apache配置檔案
開啟httpd.conf檔案,目錄為”D:\Server\Apache\conf”,在裡面新增如下幾行:


PHPIniDir "D:/Server/php/"
LoadModule php7_module "D:/Server/php/php7apache2_4.dll"
AddType application/x-httpd-php .php .html .htm

第一行是載入php配置檔案,第二行是載入php中的一個動態連結庫,第三行是把字尾名為.php、.html、.htm的檔案交給apache來處理。

到此apache已經配置完php了,現在apache已經可以解析php檔案了。在Apache網站根目錄裡建立一個名為index.php的檔案,並編寫以下內容:

<?php
phpinfo();
?>

重啟apache。注意:所有對apache配置後都需要重啟apache後才能生效。並在瀏覽器位址列輸入“http://localhost/index.php”,如下圖:

這裡寫圖片描述

4.6 php載入MySQL

用記事本開啟php.ini檔案,這裡目錄為”D:\Server\php”

新增如下幾行:

extension_dir = "D:/Server/php/ext"
extension=php_mysqli.dll
extension=php_pdo_mysql.dll

第一行是設定php擴充套件模組的目錄,第二行和第三行都是載入mysql的動態連結庫。

到此,php已經可以連結資料庫,並訪問資料庫了。在Apache網站根目錄裡建立一個名為index.php的檔案,並編寫以下內容:

<?php

$host = "127.0.0.1"; //mysql主機地址
$user = "root"; //mysql 登入賬戶
$pwd = "你自己的mysql密碼"; //mysql登入密碼
$conn = new mysqli($host, $user, $pwd); //連線資料庫
if (!$conn) {//判斷
    echo '連線資料庫失敗: ' . mysql_error();
}
echo "mysql 連線成功!";
mysqli_close($conn); // 關閉mysql連線

?>

重啟apache。注意:所有對apache配置後都需要重啟apache後才能生效。並在瀏覽器位址列輸入“http://localhost/index.php”,如下圖:

這裡寫圖片描述

到此網站伺服器環境已經配置完成了,只要在apache網站預設目錄中放入網站的程式碼就可以了。

5 虛擬主機設定

之前說過多個域名可以對映到同一個伺服器,也就是說一個伺服器是可以同時掛在多個網站的。只要域名解析到該伺服器,apache會把域名對映到一個資料夾中,也就是說這裡的一個域名所對應的只是伺服器上的一個資料夾而已。這裡可以想想,如果apache(或者其他的自己開發的web服務軟體)不是把域名對映到一個資料夾,而是對映到一個IP的話,這應該就是我們購買伺服器時候說的公網IP和內網IP中的內網IP了把。而安裝web服務軟體的把域名對映到新IP的那個伺服器的IP應該就是公網IP了。言歸正傳,設定虛擬主機主要還是apache配置問題,步驟如下:

1、載入httpd-vhosts.conf檔案

開啟httpd.conf檔案,並找到Virtual hosts一項如下圖:

這裡寫圖片描述

把#Include conf/extra/httpd-vhosts.conf,前的”#”刪除,表示載入httpd-vhosts.conf這個檔案。

2、修改httpd-vhosts.conf檔案
開啟httpd-vhosts.conf檔案,目錄在 “D:\Server\Apache\conf\extra”,把原來的內容刪除掉,新增如下:

<VirtualHost *:80>
    DocumentRoot "D:/Documents/MyProjects/Web"
    ServerName localhost
    <Directory "D:/Documents/MyProjects/Web">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "D:/Documents/MyProjects/BlogWeb"
    ServerName www.denverBlog.com
    <Directory "D:/Documents/MyProjects/BlogWeb">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
    </Directory>
</VirtualHost>

其中第一個是apache的預設目錄,如果載入了httpd-vhosts.conf檔案必須則必須在httpd-vhosts.conf中新增預設目錄的部分,否則預設目錄不能訪問。

第二個則是我們新增的另一個虛擬主機的目錄,其中

DocumentRoot :表示該虛擬主機的檔案目錄;

ServerName:表示該虛擬主機的域名。

<?php
        echo "Hellow world";

        $host = "127.0.0.1"; //mysql主機地址
        $user = "root"; //mysql 登入賬戶
        $pwd = "[email protected]"; //mysql登入密碼
        $conn = new mysqli($host, $user, $pwd); //連線資料庫
        if (!$conn) {//判斷
            echo '連線資料庫失敗: ' . mysql_error();
        }
        echo "mysql 連線成功!";
        mysqli_close($conn); // 關閉mysql連線

        phpinfo();
?>

這裡寫圖片描述

相關推薦

網站搭建0到1搭建網站

1 網站基本概念 網站說白了就是把一些東西放到哪裡供其他人訪問,並提供了一些可以互動的介面的地方。如果要實現這樣一個地方首先,需要一個能放東西的地方這就是伺服器。其次,我們要找到這個地方,然而有很多這樣的地方,所以我們就需要給很多這樣的地方標號,然後按照標號來

遊少帥網站運營零開始學習網站內容運營

  遊少帥的網站運營資訊部落格與廣大的網站運營愛好者一同分享網站運營技巧,網站運營方案,網站運營策略使用者和內容及網路營銷、網站建設等網站運營知識。   網站運營的基礎工作在崗位與公司中的實際應用是不同的,從方向層面列舉的話,網站運營在公司成立之初,首要的自然是建立自己的網站,若網際網路產品的公司,對網站各

SpringMVC乾貨系列搭建SpringMVC+mybatis(二)springMVC原理解析及常用註解

SpringMVC框架介紹 SpringMVC就是通過DispatcherServlet將一堆元件串聯起來的Web框架。 Spring MVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裡面。 Spring 框架提供了構建 We

【HADOOP】| 環境搭建零開始搭建hadoop大數據平臺(單機/偽分布式)-下

虛擬機克隆 成功 之前 藍色 ref pin highlight .gz xml文件 因篇幅過長,故分為兩節,上節主要說明hadoop運行環境和必須的基礎軟件,包括VMware虛擬機軟件的說明安裝、Xmanager5管理軟件以及CentOS操作系統的安裝和基本網絡配置。具體

JavaWeb視訊網站開發利用Highcharts將網站日訪問量製作成線性表,條形圖等

        線性表,條形圖,餅狀圖等圖形工具是我們的日常上網和工作中比較常見的圖形工具,它們主要是用來代替資料列表等傳統的資料處理方式,相比於其它的資料對比顯示形式,更能夠讓我們直觀明瞭的瞭解到事物的發展動態等等。     &nbs

進入NGINX的世界只會瀏覽網頁,邁向會搭建網站

Hello 大家好哦 先簡單介紹一下我自己吧 , 大米是來自北京的運維架構師一名, 從2004年參加工作至今已經第14年了 歲數確實很大啦 但是 咱們當運維的人永遠都保持著年輕的心是最重要的了 有的朋友可能要問大米了, 做運維可以幹上這麼多個年頭嗎 , 前景如何啊 待遇怎麼樣? [大米心中偷著樂]

零開始搭建自己的網站Springboot專案框架搭建

上一篇文章中,講的第一、二步購買伺服器和繫結域名,我就不細細講了。本文中會講解如何構建一個基本的Springboot+freemarker+mybatis專案框架 1、先建立Gradle專案,用Gradle來管理我們的專案。 2、建立目錄結構 3、具體程式碼 1)bui

Flask網站搭建Ubuntu 14.04 sever (阿裏雲64bit) 部署 flask + uWSGI + Ngnix

eas digital 一次 進行 server type form 部署 == 第一次寫技術類的博客,有點小激動。這篇文章整合了多方資源,將在文末附上鏈接,非常感謝作者的幫助。同時也希望這篇博客能幫助像我一樣的外行玩家快速搭建自己的網站。如果文章有什麽不妥的地方,希望大家

docker搭建年輕人第一個LNMP網站平臺

docker docker lnmp docker nginx docker php 1.背景 ?LNMP為(linux系統、nginx服務、mysql服務、php服務)組合而成,本次練習所使用的鏡像均為docker官方鏡像源 https://hub.docker.com ,鏡像介紹如下:

零開始搭建自己的VueJS2.0+ElementUI單頁面網站(一、環境搭建

如圖所示 增刪改 type default sdn orm rain exp 名稱 原網址:https://blog.csdn.net/u012907049/article/details/72764151 前言 VueJS可以說是近些年來最火的前端框架之一,越來越多的

實驗三MYSQL+PHP的網站搭建

MYSQL+PHP的網站搭建實驗目的:掌握MYSQL+PHP的網站的搭建過程實驗準備:一臺Server,一臺Client實驗前的準備:搭建一臺web服務器(過程省略)實驗步驟:步驟一1.安裝PHP數據包解壓php-5.1.4-Win32這個解壓包,把它解壓到自己的文件夾內,然後修改php的解壓後的文件夾的包名

Nginx學習之搭建靜態資源網站

前言   在某學習網站學習了nginx的安裝和使用,以此文記錄。 環境準備   安裝在VMWare下的Centos虛擬機器。由於我這是新裝的虛擬機器。所以很多外掛都沒有,這裡乾脆一次性安裝上。 wget command not found yum -y i

日本戲精程式設計師為自己搭建相親網站,一人分飾三十角

霓虹國一直腦洞很大,從動漫到遊戲到各種整蠱綜藝,總能讓我們大跌眼鏡,最近有一檔節目中就出現了這麼一個神奇的程式設計師小哥...... 他神奇就神奇在,為自己做了一個與眾不同的相親網站。 一個神奇的網站 昨天,前臺小姐姐神祕兮兮的跑過來說,她在一個日本綜藝節目裡看到一個神奇的網站。小姐姐說這個

SSH利用Struts2+Hibernate4+Spring4+SQLServer框架,搭建一個前後端web網站(2)

百度編輯器編輯文章 利用百度編輯器實現文章的編寫,實現效果如下: 可以看到利用百度編輯可以很好的實現文字的排版效果,同時還可以多圖上傳以及新增錨點和上傳視屏。 配置的一些關鍵點: 當從

SSH利用Struts2+Hibernate4+Spring4+SQLServer框架,搭建一個前後端web網站(1)

前言: 利用暑假2個月的時間,自己用框架搭建了一個前後端web網站,因為時間有限,暑假之後便沒有再修改過了。因為這是自己第一次利用架構做的網站,所以在做的過程中也是“一波三折”,需要用到的知識點也是書

SSH利用Struts2+Hibernate4+Spring4+SQLServer框架,搭建一個前後端web網站(3)

為你推薦(模仿cache排程演算法) 網站有為你推薦模組,我是模仿計算機組成原理中的cache的排程演算法。簡單介紹:網站通過將所有的資訊和標籤掛鉤。我給每個使用者20條的“儲存標籤”的空間。其中10條為被標記成old的標籤,10條為被標記成new

網站搭建搭建Linux伺服器、FTP服務並部署Javaweb專案(Centos 7.4 + Tomcat + Mysql + Java + vsftpd)

前言 近期騰訊雲的“雲+校園”活動,伺服器大降價,於是便購買了一個月的雲伺服器,順便在阿里那購買了一個.top域名。 此次搭建: 伺服器系統:Centos 7.4 開發語言:JDK8 資料庫:MySQL 伺服器:Tomcat 搭建方式:純命令列

SpringBoot之搭建部落格網站(可提供原始碼)

文字不夠,圖片來湊。 前言 為什麼想要搭建這個部落格? 我還記得,在大二寒假的某天,同往常一樣的在家解決這某個bug,不停地問度娘,很巧的碰到了一個同行在他的部落格中完美的記錄了我的bug的解決方案,隨後我又看了看他寫的其他部落格文章,覺得都非常的不錯,並

SSH利用Struts2+Hibernate4+Spring4+SQLServer框架,搭建一個前後端web網站(4)

拆分百度編輯器,實現網站評論和圖片上傳 效果如下: 我們可以通過修改百度編輯器來達到比較美觀的效果。圖一是將百度編輯器改成一個評論區。圖二是隻提取百度編輯器的上傳圖片功能,這比

五步搭建屬於自己的個人網站

64位 下載 service 2.7 develop 需要 color apt 1.7 五步搭建屬於自己的個人網站 如果你非常想擁有一個完全屬於自己的個人站點,本篇文章幫你起飛。搭建個人站點的方式有多種多樣,本篇主要介紹基於Java環境搭建個人站點。 5步完成個人網站搭