我們的目標是安裝一個允許我們托管多個網站的web服務器
其中一些是針對電子商務的安全解決方案
而大部分網站是通過連接一個數據庫服務器並且提取其數據的腳本驅動的
為了這個任務所需的工具是
Apache-一個網站服務器
Mod_SSL-一個安全套接字層(SSL)的模塊
OpenSSL-開放源代碼工具箱(mod_ssl所需)
RSARef-僅對美國用戶
MySQL-一個數據庫服務器
PHP-一種腳本語言
條條大路通羅馬
……因此這只是很多能達到我們要求的配置之一
我選擇這樣的配置
是因為它是最簡單和最快的一種
選擇Mod_SSL/OpenSSL的原因是因為我有它的先前經驗
是最快配置和最容易安裝的一種
為了彼此方便地與Apache集成
我選擇了PHP和MySQL
記住
Perl能做到你想要做任何工作
然而
PHP對任何想學習它地程序員來說簡單並且容易
希望你將在結束這個簡單的指南後能成功地完成下列目標
安裝並設置MySQL數據庫服務器
o 知道怎樣檢查MySQL服務器的狀態
o 知道怎樣使用命令行客戶程序存取MySQL服務器
o 知道怎樣從web存取你的DB服務器
安裝並設置具備SSL的Apache網站服務器
o 配置一個簡單的虛擬網站
o 知道怎樣停止並啟動服務器
o 知道怎樣做一些基本的主機托管配置
安裝並配置服務器端腳本的PHP
超文本預處理器
o 知道怎樣編寫簡單的php代碼
o 知道怎樣使用php連接一個DB
o 創建一個啟用PHP地簡單網站與一個數據庫溝通
創造一些樣本證書用於Apache SSL
o 知道怎樣產生一個CSR文件
o 知道怎樣加密一個鍵碼
o 知道怎樣 簽署你自己的證書
本文將覆蓋大量的信息
本指南作為一個入門性地的指南
讓你步入電子商務
網站腳本和安全套接字層 (SSL)的世界
目的是幫助你建立由存儲在數據庫中的動態信息驅動的安全網站
本文絕非是一個詳細全面的文檔
它當然將有一些錯誤(希望最小)
在你閱讀它時請記住這一點
然而
它將激起你的熱情並運行前面提到的產品
希望讓你更好理解這些東西是怎樣工作的
不需要以前的編程知識
但假定你有點計算機知識背景
我的目標是編寫這個文檔以便任何新手能理解我正在談論的東西
如果我達到了
那麼我做了一件好事
如果你輕而易舉地建立了電子商務站點
比我做的更出色:
) 給我一些解釋
假設
本文假設你已經把下列軟件安裝在你的系統上了
Perl (最好是ver
+)
gzip或gunzip
gcc 和 GNU make
如果你沒有安裝好這些
你將需要采取必要的步驟在解釋本文的任何過程前把他們安裝好
你也需要對UNIX命令
HTML
和SQL的一個基本了解
你應該有怎樣管理你的Linux機器的一個基本了解
你也需要一個完全正常的Linux機器
你將在它上面安裝軟件
當然你將需要在前面列出的必要的軟件包以編譯源代碼
並且最後
保證你還沒有在Linux機器中預裝了MySQL
Apache
或PHP
工作原理
理解在幕後發生了什麼是有幫助的
這裡是一個過分簡化的工作原理
下圖和隨後的解釋目前不是完全正確的
只是它的一個要點概述
情況是
我們有一個從一個數據庫取出一些數據的網頁
John Doe從他的浏覽器請求該頁
請求被發送給web服務器
接著調用一個PHP腳本
PHP腳本由PHP預處理器解釋並從數據庫中取出數據
然後結果由余下的PHP腳本加工並轉化成HTML
做後的HTML被發回用戶的浏覽器
讓我們一步一步地看
John Doe 從他的浏覽器中點擊一個鏈接
他的浏覽器發送對的請求
Apache得到對test
php的請求
它知道
php文件應由PHP預處理器(mod_php)處理
因此它通知 PHP處理它
它知道這些
是因為我們在Apache的配置中指定它
test
php是包含命令的一個PHP腳本
這些命令之一是打開一個到一個數據庫的連接並抓取數據
PHP 處理到數據庫的連接
並且解釋SQL調用從DB中提取數據
服務器服務器得到從PHP解釋器來的連接請求
並且處理這個請求
請求可能是類似於一個簡單的選擇語句
或數據庫表創建等
數據庫然後將應答和結果回送到PHP解釋器
Apache回送該結果到John Doe的浏覽器
作為對他請求的應答
John Doe現在看見一個包含從一個數據庫來的一些信息的網頁
如果這是一個對的請求
整個過程與上述類似
除了每個請求和應答在兩端被加密和解密
即
浏覽器連接Apache
獲得它的加密鍵碼
加密請求並發送它
服務器看到請求
解密並且認證它
它處理文件
加密並且發送它
然後浏覽器用服務器的鍵碼解密它
記住既然連接被加密
就是用不同的端口用
端口
用在在非安全連接上
而端口
用在安全連接時
再說一次
它不是
%的正確
但是它足夠快地讓你知道幕後發生的事情的非常簡單的概述
既然我們對我們正在試圖達到的目標有了一個很基本的了解
讓我們繼續安裝軟件吧
准備
Apache (Web服務器)
Mod_SSL (安全服務器層)
OpenSSL (SSL工具箱)
PHP (腳本語言)
MySQL (SQL數據庫服務器 )
下載所有(tar文件)源代碼到一個臨時目錄下
保證你把他們放在有很多空間的地方……你應該以root身份下載他們以避免權限問題
我們的計劃
我們的計劃是首先安裝MySQL服務器並保證它工作
然後我們將安裝PHP和Mod_SSL
最後我們將安裝Apache網站服務器
在我們安裝了Apache以後
我們可以測試PHP和Mod_SSL支持是否起作用了
MySQL源代碼安裝(UNIX)
你必須用來執行安裝MySQL源代碼分發的基本命令是(自一個沒解開
tar
文件)
通過使用su成為 root用戶
$su
直接進入你有tar文件的目錄
(使用一個臨時目錄
這裡使用 /tmp/download/ )
#cd /tmp/download/
使用下列命令提取文件
# gunzip
d
c mysql
xx
tar
gz | tar xvf
改變到新目錄
它在提取期間創建
# cd mysql
xx
現在你可以開始
配置
MySQL服務器
你可以用configure指定很多選項
使用configure
help查看所有的選項
我已經選擇
prefix指定到安裝地點的直接路徑
configure將檢查你的編譯器和一些其他東西
如果你有任何錯誤
你可以檢查config
cache文件查看錯誤
# configure
prefix=/usr/local/mysq
在你完成了配置以後
你可以執行下列命令make真正的二進制代碼
# make
現在你已准備好安裝所有的二進制代碼
運行下列命令在你用configure
prefix選項指定的目錄下安裝二進制代碼
# make install
在你安裝好二進制代碼後
現在是創建用於定義權限的mysql表的時候了
# scripts/mysql_install_db
# cd /usr/local/mysql/bin
#
/safe_mysqld &
#
/mysqladmin
u root password
new
password
注意
/usr/local/mysql是我選擇安裝MySQL服務器的目錄
你可以通過改變目錄選擇另外的地方
你可以通過運行一些簡單的測試來驗證服務器正在工作以確保MySQL正在運行
輸出應該類似於下面所示的
BINDIR=/usr/local/mysql/bin
BINDIR依賴於你在上面的前綴選擇的目錄
# BINDIR/mysqlshow
p
+
+
| Databases |
+
+
| mysql |
+
+
一旦你安裝好MySQL
它將自動地創建
個數據庫
一個mysql表
它控制在實際的服務器中用戶
主機和 數據庫權限
另一個是一個test數據庫
我們能使用test數據庫
然而
我們想給你一個快速而簡單的MySQL可用的一些命令行選項的概述
這也將保證root被設置了對DB服務器的全部存取權限
即
root有創建數據庫
數據庫表等的許可
因此我們將創建一個test
數據庫
在以後我們用它進行我們的測試
在你通過命令行進入MySQL前
你將被提示root用戶的新口令
記住你以前改變了它
# mysql
u root
p
mysql> show databases;
+
+
| Database |
+
+
| mysql |
| test |
+
+
mysql> create database test
;
Query OK
row affected (
sec)
現在選擇新的數據庫使用
並創建一個名為tst_tbl的新表
有下列
個字段
字段
是是一個id字段
允許你知道記錄的id
實質上為了簡化這只是的一個行號
第二個字段是你一個name字段
存儲書名信息
這些字段的格式是
字段
(id)是一個長度為
的整數(int)
而字段
(name)是一個長度為
的字符(char)字段
為搜索和索引數據
我們指定id為鍵碼
mysql> use test
;
Database changed
mysql> CREATE TABLE books ( id int(
) not null
> auto_increment
name char(
) not null
> unique(id)
From:http://tw.wingwit.com/Article/program/MySQL/201311/29314.html