LAMP的建立和簡單應用


  Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一組經常使用來搭建動態網站或者服務器的開源軟件,自己都是各自獨立的程序,可是由於常被放在一塊兒使用,擁有了愈來愈高的兼容度,共同組成了一個強大的Web應用程序平臺。php

 LAMP:html

    a:apachepython

    m:mariadb, mysqlmysql

    p:php, perl, pythonweb

 LAMMP:令一個mmemcachedsql

 

 請求的資源類型:數據庫

    靜態資源:靜態內容;客戶端從服務器得到的資源的表現形式與原文件相同;apache

    動態資源:一般是程序文件,須要在服務器執行以後,將執行的結果返回給客戶端;瀏覽器

httpd+php:結合的三種方式安全

       modules

       cgi

       fastcgi(fpm)

動態資源的請求流程:

    請求流程:Client--> (http協議) --> httpd 服務器--> (cgi協議) --> application server (program file) --> (mysql協議) -->mariadb數據庫             


CentOS 7下進行操做:

  程序包:httpd,php, php-mysql, mariadb-server

    注意:php要求httpd使用prefork MPM

若是不是prefork MPM,須要修改/etc/httpd/conf.modules.d/00-mpm.conf改爲prefork,而後重啓httpd服務,php就啓動了

  啓動服務:

   systemctl start  httpd.service

   systemctl start  mariadb.server

重啓httpd服務,而後使用httpd  -M | grep php

systemctl  restart  httpd.service,查看php模塊是否加載

wKiom1YCHcKTiirPAAEcyOfFIDY937.jpg

而後在/www/htdocshttpd配置文件中資源的目錄)中把index.html改爲index.php,而後編輯,重載服務而後進行測試

wKiom1YCHgSzI48cAAB3eZHCHgg267.jpg

wKioL1YCHiDA49lcAAIupaKJUwo437.jpg

這說明php環境已經準備好了

下面打開數據庫服務器

wKiom1YCHjDQg8SwAAFYjgTVHcI270.jpg

而後直接mysql就能夠鏈接上了

wKioL1YCHk7SE1p6AAFAqSzuWZg764.jpg

而後在index.php中添加代碼,鏈接到mariadb數據庫,測試可否連上

wKioL1YCHmPTdWmGAAC6mQDZnfc158.jpg

wKiom1YCHmzCYPopAABebny91jU920.jpg

證實鏈接成功了

而後把數據庫服務停掉systemctl stop mariadb.service,在鏈接下

wKioL1YCHnqyIkB0AABgq50TVsQ674.jpg

這樣在CentOS7中,LAMP環境就準備好了

就能夠安裝一些客戶端程序了


數據庫(mariadb):

關係型數據庫的常見組件:

    數據庫:database

    表:table

    行:row

    列:column

    索引:index

    視圖:view

    用戶:user

    權限:privilege

    存儲過程:procedure

    存儲函數:function

    觸發器:trigger

    事件調度器:eventscheduler

    mysql_secure_installation:安全初始化


SQL語句:用來管理數據庫的語句

    數據庫組件:數據庫、表、索引、視圖、用戶、權限

    存儲過程、存儲函數、觸發器、事件調度器

 建立數據庫、設計數據表

     字段:字段名、數據類型、數據類型修飾符、約束

      DDLDMLDCL

      DDL:CREATEDROPALTER

    DML:INSERT(REPLACE)DELETEUPDATESELECT

     DCLGRANT,REVOKE

    CREATE DATABASE [IF NOT EXISTS] 'db_name';建立數據庫

 

建立用戶帳號:

   CREATEUSER 'username'@'host' [IDENTIFIED BY 'password'];

  刪除用戶:

     DROPUSER 'username'@'host';

受權:

  權限級別:管理權限、數據庫、表、字段、存儲例程;

  GRANTpriv_type,... ON [object_type] db_name.tb_name TO 'user'@'host' [IDENTIFIED BY'password'] [WITH GRANT OPTION];

 

    priv_type:ALL [PRIVILEGES]

    db_name.tb_name:

   *.*:全部庫的所表;

   db_name.*:指定庫的全部表;

   db_name.tb_name:指定庫的指定表;

   db_name.routine_name:指定庫的存儲例程;

查看指定用戶得到的受權:

    SHOWGRANTS FOR 'user'@'host';

    SHOW GRANTS FOR CURRENT_USER;

回收受權:

  REVOKEpriv_type, ... ON db_name.tb_name FROM 'user'@'host';

建立表:

  CREATETABLE [IF NOT EXISTS] 'tbl_name' (col1 type1, col2 type2, ...)

刪除表:DROPTABLE [IF EXISTS] 'tbl_name';

修改表:ALTER TABLE 'tbl_name'

索引:

   索引是特殊數據結構;定義在查找時做爲查找條件的字段;

   索引:要有索引名稱;

建立索引:

   CREATEINDEX index_name ON tbl_name (index_col_name,...);

刪除索引:

   DROPINDEX index_name ON tbl_name;

數據庫還有不少命令就不一一介紹了


下面以幾個實例來演示LAMP的建立和應用

CentOS7中實現3個虛擬主機,完成要求的功能;

    vhost1: pma.stuX.com, phpMyAdmin, 同時提供https服務;

    vhost2:wp.stuX.com, wordpress

    vhost3:dz.stuX.com, Discuz

首先確認LAMP的基礎環境是搭建好的,php能訪問,數據庫是否能正常鏈接。(文章開始有演示);

而後就下載phpMyAdminwordpressDiscuz

三個軟件包,而後解壓和移到httpd配置文件中的資源目錄的那個路徑下,即/web/vhosts/目錄下

而後把修改httpd的配置文件把中心主機禁掉,就是(/etc/httpd/conf/httpd.conf)中DocumentRoot這一行,

wKiom1YCI7ijoKq7AAD25cQJ2_M299.jpg

而後再/etc/httpd/conf.d/建立一個virtualhost.conf的文件,而後作3個虛擬主機,每一個對應一個軟件

wKioL1YCJCmDBK69AAH7PeARRm4740.jpg

要保證主配置文件中的<Directory 「/web/vhosts」這個路徑跟虛擬主機的DocumentRoot的文件同目錄

wKioL1YCJFWDE8JeAADQxdaoTis312.jpg

而後把這三個軟件phpMyAdmin  wordpress  Discuz的文件複製到 /web/vhosts

而後配置這些軟件的配置文件

wKiom1YCJHijuj3_AASd69NjPIQ708.jpg

而後複製pma下的config.sample.inc.php 到本目錄下,而後更名爲config.inc.php,而後修改config.inc.php文件

使用命令tr -d 'a-zA-Z0-9' < /dev/urandom | head -30 | md5sum生成一些隨機數,填到下面,而後保存

wKioL1YCJKCSZXG0AACvgx7yG4k169.jpg

wKioL1YCJjvivN6hAAHEygRjCjc291.jpg

wKioL1YCJkWR9JOJAAD0WgOwpSI496.jpg

 


而後重啓服務,設置數據庫

首先mysql進入,而後給root用戶設置密碼

wKiom1YCKPuyQwhGAAFDx-1ZEoc480.jpg

而後給wpuser受權,建立用戶


wKioL1YCKMnRc704AAIYImWyFeM006.jpg

而後在裏面 在輸入命令FLUSH  PRIVILEGES 同步一下

這個數據庫的名字密碼要和wordpress軟件配置文件中的相同

wKioL1YCKiyTB_X7AAG1v7j7FfQ511.jpg

這樣數據庫就作好了

而後在物理機中,修改hosts文件,加入

172.16.249.195  pma.stu999.com

172.16.249.195  wp.stu999.com

172.16.249.195  dz.stu999.com


而後訪問測試下

wKiom1YCJ0qCyaR8AAE7mtvkjO4008.jpg

輸入用戶名和密碼就能夠進入數據庫,管理數據庫了

wKioL1YCK0KgwwPFAANX3TbEs6U130.jpg

wKioL1YCJ36B0ntNAAIgvhX3hoI247.jpg

wKiom1YCJ7qQYHdOAAR3fWLf-3M778.jpg


  


下面對pma.stu999.comhttps,使用openssl命令

首先172.16.249.114建立一個CA,而後自簽證書,而後再給172.16.249.195簽證

首先找到CA目錄,而後生成私鑰(umask077 openssl genrsa –out private/cakey.pem 2048 ),而後建立本身的簽名 opensslreq -new -x509 -key private/cakey.pem -out cacert.pem -days 7300

wKioL1YCK9-z6il9AAQAuTpqfxY869.jpg

這樣本身的證書建立好了

而後在172.16.249.195上建立證書,而後去找CA簽證;首先建立csr文件,而後發給CACA簽名後,在送還給172.16.249.195

wKioL1YCK_mzxm0aAAPG76mSSb4671.jpg

把證書發給CA

wKiom1YCLALQTwUPAAC26PKf3s4801.jpg

CA簽名,而後送回證書

CA簽名前要建立一個文件touch  index.txt serial一個數字 echo 01>serial

wKiom1YCLBST7zMpAANCCDlvHbo003.jpg

這簽名成功了,而後還給172.16.249.195

wKioL1YCLDqxzQL8AAFOr6W6HZw131.jpg

而後在172.16.249.195中配置/etc/httpd/conf.d/ssl.conf文件

指定證書和私鑰的路徑

wKiom1YCLEiRMmaJAAIuqzmrboc938.jpg

pma.stu999.com這個虛擬主機加入/etc/httpd/conf.d/ssl.conf文件中

wKioL1YCLFXzcpQgAAEQ88KbnM8515.jpg

而後把/etc/httpd/conf.d/virtuahost中的pma.stu999.com這個虛擬主機的註釋掉

重啓服務,而後把CA的證書cacert.pem複製出來重命名爲cacert.crt,加入物理機的可信任證書列表裏,在瀏覽器的設置中,進行測試

wKioL1YCLH3h-wtTAAFdtYzOnR8975.jpg

wKiom1YCLIaBGIriAAMO4fIrslM227.jpg

這樣pma.stu999.com 這個虛擬主機的https就作好了

這樣整個題目就作完了,這是在本人測試的環境下作的,若是不是CentOS7可能步驟不同。

若有批評和建議能夠留言。

相關文章
相關標籤/搜索