久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

Linux基礎(chǔ)教程之LAMP組合深入講解(二)

lamp

SQL

  • 數(shù)據(jù)管理模型:層次模型、網(wǎng)狀模型、關(guān)系模型
    數(shù)據(jù)分類:結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)
    • 關(guān)系模型
      • 數(shù)據(jù)庫(kù):一個(gè)方案、一個(gè)項(xiàng)目
      • 二維關(guān)系:
        • 表:row, column
          索引:index
          視圖:view
      • SQL接口:Structured Query Language;類似于OS的shell接口;也提供編程功能;
        • ANSI: SQL標(biāo)準(zhǔn),SQL-86, SQL-89, SQL-92, SQL-99, SQL-03, …
          PL-SQL,T-SQL,…
        • DDL:Data Defined Language
          CREATE, ALTER, DROP、SHOW
        • DML: Data Manapulating Language
          INSERT, DELETE, UPDATE, SELECT
        • 編程接口:選擇、循環(huán);
        • SQL代碼:
          • 存儲(chǔ)過(guò)程:procedure
            存儲(chǔ)函數(shù):function
            觸發(fā)器:trigger
            事件調(diào)度器:event scheduler
        • 用戶和權(quán)限:
          用戶:用戶名和密碼;
          權(quán)限:管理類、程序類、數(shù)據(jù)庫(kù)、表、字段
      • DBMS:DataBase Management System
        RDBMS:Relational DataBase Management System
  • 事務(wù)(Transaction):組織多個(gè)操作為一個(gè)整體,要么全部都成功執(zhí)行,要么失敗回滾;
    “回滾”, rollback
    • 一個(gè)存儲(chǔ)系統(tǒng)是否支持事務(wù),測(cè)試標(biāo)準(zhǔn):
      ACID:
      • A:原子性;
        C:一致性;
        I:隔離性;
        D:持久性;
    • SQL接口:分析器和優(yōu)化器
      存儲(chǔ)引擎
  • 補(bǔ)充材料:RDMBS設(shè)計(jì)范式基礎(chǔ)概念
    設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù)時(shí),遵從不同的規(guī)范要求,設(shè)計(jì)出合理的關(guān)系型數(shù)據(jù)庫(kù),這些不同的規(guī)范要求被稱為不同的范式,各種范式呈遞次規(guī)范,越高的范式數(shù)據(jù)庫(kù)冗余越小。
    
      目前關(guān)系數(shù)據(jù)庫(kù)有六種范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、第四范式(4NF)和第五范式(5NF,又稱完美范式)。滿足最低要求的范式是第一范式(1NF)。在第一范式的基礎(chǔ)上進(jìn)一步滿足更多規(guī)范要求的稱為第二范式(2NF),其余范式以次類推。一般說(shuō)來(lái),數(shù)據(jù)庫(kù)只需滿足第三范式(3NF)就行了。
    
      (1) 第一范式(1NF)
    
      所謂第一范式(1NF)是指在關(guān)系模型中,對(duì)域添加的一個(gè)規(guī)范要求,所有的域都應(yīng)該是原子性的,即數(shù)據(jù)庫(kù)表的每一列都是不可分割的原子數(shù)據(jù)項(xiàng),而不能是集合,數(shù)組,記錄等非原子數(shù)據(jù)項(xiàng)。即實(shí)體中的某個(gè)屬性有多個(gè)值時(shí),必須拆分為不同的屬性。在符合第一范式(1NF)表中的每個(gè)域值只能是實(shí)體的一個(gè)屬性或一個(gè)屬性的一部分。簡(jiǎn)而言之,第一范式就是無(wú)重復(fù)的域。
    
      說(shuō)明:在任何一個(gè)關(guān)系數(shù)據(jù)庫(kù)中,第一范式(1NF)是對(duì)關(guān)系模式的設(shè)計(jì)基本要求,一般設(shè)計(jì)中都必須滿足第一范式(1NF)。不過(guò)有些關(guān)系模型中突破了1NF的限制,這種稱為非1NF的關(guān)系模型。換句話說(shuō),是否必須滿足1NF的最低要求,主要依賴于所使用的關(guān)系模型。
    
      (2) 第二范式(2NF)
    
      第二范式(2NF)是在第一范式(1NF)的基礎(chǔ)上建立起來(lái)的,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。第二范式(2NF)要求數(shù)據(jù)庫(kù)表中的每個(gè)實(shí)例或記錄必須可以被唯一地區(qū)分。選取一個(gè)能區(qū)分每個(gè)實(shí)體的屬性或?qū)傩越M,作為實(shí)體的唯一標(biāo)識(shí)。
    
      第二范式(2NF)要求實(shí)體的屬性完全依賴于主關(guān)鍵字。所謂完全依賴是指不能存在僅依賴主關(guān)鍵字一部分的屬性,如果存在,那么這個(gè)屬性和主關(guān)鍵字的這一部分應(yīng)該分離出來(lái)形成一個(gè)新的實(shí)體,新實(shí)體與原實(shí)體之間是一對(duì)多的關(guān)系。為實(shí)現(xiàn)區(qū)分通常需要為表加上一個(gè)列,以存儲(chǔ)各個(gè)實(shí)例的唯一標(biāo)識(shí)。簡(jiǎn)而言之,第二范式就是在第一范式的基礎(chǔ)上屬性完全依賴于主鍵。
    
      (3) 第三范式(3NF)
    
      第三范式(3NF)是第二范式(2NF)的一個(gè)子集,即滿足第三范式(3NF)必須滿足第二范式(2NF)。簡(jiǎn)而言之,第三范式(3NF)要求一個(gè)關(guān)系中不能包含已在其它關(guān)系已包含的非主關(guān)鍵字信息。簡(jiǎn)而言之,第三范式就是屬性不依賴于其它非主屬性,也就是在滿足2NF的基礎(chǔ)上,任何非主屬性不得傳遞依賴于主屬性。
  • 數(shù)據(jù)庫(kù):數(shù)據(jù)集合
    • 表:為了滿足范式設(shè)計(jì)要求,將一個(gè)數(shù)據(jù)集分拆為多個(gè);
    • 約束:constraint,向數(shù)據(jù)表插入的數(shù)據(jù)要遵守的限制規(guī)則;
      • 主鍵:一個(gè)或多個(gè)字段的組合,填入主鍵中的數(shù)據(jù),必須不同于已存在的數(shù)據(jù);而且不能為空;一個(gè)表只能有一個(gè)Primary KEY;
      • 外鍵:一個(gè)表中某字段中能插入的數(shù)據(jù),取決于另外一張表的主鍵中的數(shù)據(jù);
      • 惟一鍵:一個(gè)或多個(gè)字段的組合,填入惟一鍵中的數(shù)據(jù),必須不同于已存在的數(shù)據(jù);可以為空;一個(gè)表可存在多個(gè)Unique Key;
      • 檢查性約束:取決于表達(dá)式的要求;
    • 索引:將表中的某一個(gè)或某些字段抽取出來(lái),單獨(dú)將其組織一個(gè)獨(dú)特的數(shù)據(jù)結(jié)構(gòu)中;
      • 常用的索引類型:
        • B+ Tree:Balance Tree
          hash

      注意:有助于讀請(qǐng)求,但不利于寫(xiě)請(qǐng)求;

    • 關(guān)系運(yùn)算:
      • 選擇:挑選出符合條件的行;
        投影:挑選出符合需要的列;
        連接:將多張表關(guān)聯(lián)起來(lái);
    • 數(shù)據(jù)抽象:
      • 物理層:決定數(shù)據(jù)的存儲(chǔ)格式,即如何將數(shù)據(jù)組織成為物理文件;
        邏輯層:描述DB存儲(chǔ)什么數(shù)據(jù),以及數(shù)據(jù)間存在什么樣的關(guān)系;
        視圖層:描述DB中的部分?jǐn)?shù)據(jù);
    • 關(guān)系模型的分類:
      • 關(guān)系模型
        實(shí)體-關(guān)系模型
        基于對(duì)象的關(guān)系模型
        半結(jié)構(gòu)化關(guān)系模型

MariaDB

  • 可用版本:
    • MySQL:
      • MariaDB
        Percona-Server
        AliSQL
        TiDB
  • MariaDB的特性:
    • 插件式存儲(chǔ)引擎:存儲(chǔ)管理器有多種實(shí)現(xiàn)版本,彼此間的功能和特性可能略有區(qū)別;用戶可根據(jù)需要靈活選擇;
    • 存儲(chǔ)引擎也稱為“表類型”;
      1. 更多的存儲(chǔ)引擎;
        MyISAM:不支持事務(wù),表級(jí)鎖,崩潰后不保證安全恢復(fù);
        MyISAM –> Aria
        InnoDB –> XtraDB :支持事務(wù),行級(jí)鎖,外鍵,熱備;
      2. 諸多擴(kuò)展和新特性;
      3. 提供了較多的測(cè)試組件;
      4. truly open source;
  • 安裝和使用MariaDB:
    1. rpm包;
      (a) 由OS的發(fā)行商提供;
      (b) 程序官方提供;
    2. 源碼包;
    3. 通用二進(jìn)制格式的程序包;
  • MariaDB程序的組成:C/S
    • MariaDB:主要有兩類程序文件
      • Client: mysql, mysqldump, mysqladmin
        Server:mysqld, mysqld_safe, mysqld_multi
    • C:Client –> mysql protocol –> Server
      mysql:CLI交互式客戶端程序;
      mysqldump:備份工具;
      mysqladmin:管理工具;
      mysqlbinlog:
    • S:Server
      mysqld
      mysqld_safe:建議運(yùn)行服務(wù)端程序;
      mysqld_multi:多實(shí)例;
      • 三類套接字地址:
        • IPv4|IPv6, 3306/tcp
        • Unix Sock:/var/lib/mysql/mysql.sock, /tmp/mysql.sock
    • 配置文件:ini風(fēng)格,用一個(gè)文件為多個(gè)程序提供配置;
      • [mysql]:配置客戶端
        [mysqld]:配置服務(wù)端
        [mysqld_safe]:
        [server]
        [client]
        [mysqldump]
      • mysql的各類程序啟動(dòng)都讀取不止一個(gè)配置文件,按順序讀取,且最后讀取的為最終生效;
        # my_print_defaults
        Default options are read from the following files in the given order:
        /etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf 
        
        /etc/my.cnf + /etc/my.cnf.d/*.cnf

命令行交互式客戶端程序:mysql


  • mysql [OPTIONS] [database]
    • 常用選項(xiàng):
      • -u, –user=username:用戶名,默認(rèn)為root;
        -h, –host=hostname:遠(yuǎn)程主機(jī)(即mysql服務(wù)器)地址,默認(rèn)為localhost; 客戶端連接服務(wù)端,服務(wù)器會(huì)反解客戶的IP為主機(jī)名,關(guān)閉此功能(skip_name_resolve=ON);
        -p, –password[=PASSWORD]:USERNAME所表示的用戶的密碼; 默認(rèn)為空;
        注意:mysql的用戶賬號(hào)由兩部分組成:'USERNAME'@'HOST'; 其中HOST用于限制此用戶可通過(guò)哪些遠(yuǎn)程主機(jī)連接當(dāng)前的mysql服務(wù);
        
        HOST的表示方式,支持使用通配符:
          %:匹配任意長(zhǎng)度的任意字符;
              172.16.%.%,  172.16.0.0/16
          _:匹配任意單個(gè)字符;

        -P, –port=#:mysql服務(wù)器監(jiān)聽(tīng)的端口;默認(rèn)為3306/tcp;
        -S, –socket=/PATH/TO/mysql.sock:套按字文件路徑;
        -D, –database=DB_name:指定連接到服務(wù)器端之后,其指明的數(shù)據(jù)庫(kù)為默認(rèn)數(shù)據(jù)庫(kù);
        -e, –execute=’SQL STATEMENT’:連接至服務(wù)器并讓其執(zhí)行此命令后直接返回;

    • 命令:
      • 客戶端命令:本地執(zhí)行
        mysql> help   獲取幫助;  \u db_name:設(shè)定哪個(gè)庫(kù)為默認(rèn)數(shù)據(jù)庫(kù)  \q:退出;  \d CHAR:修改新的語(yǔ)句結(jié)束符;  \g:語(yǔ)句結(jié)束標(biāo)記;  \G:語(yǔ)句結(jié)束標(biāo)記,結(jié)果豎排方式顯式;  \s:查看狀態(tài)  \!: 執(zhí)行shell命令;  \.: 裝載并運(yùn)行sql腳本;  \c: 終止命令,不寫(xiě)分號(hào)
      • 服務(wù)端命令:通過(guò)mysql連接發(fā)往服務(wù)器執(zhí)行并取回結(jié)果(SQL語(yǔ)句);
        DDL, DML, DCL
        注意:每個(gè)語(yǔ)句必須有語(yǔ)句結(jié)束符,默認(rèn)為分號(hào)(;)
        獲取幫助:
          mysql> help contents 
              Administration     
              Account Management
              Data Definition
              Data Manipulation
              Data Types
          myslq> help '命令類別'
    • 數(shù)據(jù)類型:
      • 表:行和列
        創(chuàng)建表:定義表中的字段;
      • 定義字段時(shí),關(guān)鍵的一步即為確定其數(shù)據(jù)類型;
        用于確定:數(shù)據(jù)存儲(chǔ)格式、能參與運(yùn)算種類、可表示的有效的數(shù)據(jù)范圍;
      • 字符型:字符集
        碼表:在字符和二進(jìn)制數(shù)字之間建立映射關(guān)系;
        mysql> SHOW CHARACTER SET;  查看支持的字符集
          mysql> SHOW COLLATION;   查看排序規(guī)則
      • 種類:
        • 字符型:
          定長(zhǎng)字符型:
          CHAR(#):不區(qū)分字符大小寫(xiě)
          BINARY(#):區(qū)分字符大小寫(xiě)

          變長(zhǎng)字符型:

          VARCHAR(#):多占一個(gè)或兩個(gè)字符空間;
          VARBINARY(#)

          對(duì)象存儲(chǔ):

          TEXT:不區(qū)分字符大小寫(xiě);TINYTEXT、SMALLTEXT、MEDIUMTEXT、TEXT、LONGTEXT
          BLOB:Binary Large OBject(二進(jìn)制大對(duì)象),區(qū)分字符大小寫(xiě);TINYBLOB,SMALLBLOB,MEDIUMBLOB,BLOB,LONGBLOB;

          內(nèi)置類型:

          SET 
          ENUM
        • 數(shù)值型:
          精確數(shù)值型:
          INT(TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT) 
            UNSIGNED
          DECIMAL

          近似數(shù)值型:

          FLOAT
          DOBULE
        • 日期時(shí)間型:
          日期型:DATE
          時(shí)間型:TIME
          日期時(shí)間型:DATETIME
          時(shí)間戳:TIMESTAMP
          年份:YEAR(2), YEAR(4)
      • 字段數(shù)據(jù)修飾符:
        NOT NULL:非空;
        AUTO_INCREMENT:自動(dòng)增長(zhǎng);
        NULL:
        DEFAULT  value:默認(rèn)值;
        PRIMARY KEY:主鍵;
        UNIQUE KEY:惟一鍵;

服務(wù)器端命令


  • DDL:數(shù)據(jù)定義語(yǔ)言,主要用于管理數(shù)據(jù)庫(kù)組件,例如數(shù)據(jù)庫(kù)、表、索引、視圖、用戶、存儲(chǔ)過(guò)程
    CREATE、ALTER、DROP
  • DML:數(shù)據(jù)操縱語(yǔ)言,主要用管理表中的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)的增、刪、改、查;
    INSERT, DELETE, UPDATE, SELECT
  • 獲取命令幫助:
    mysql> help  KEYWORD
  • 數(shù)據(jù)庫(kù)管理(DDL):
    • 創(chuàng)建:
      CREATE  {DATABASE | SCHEMA}  [IF NOT EXISTS]  db_name;
            [DEFAULT]  CHARACTER SET [=] charset_name
            [DEFAULT]  COLLATE [=] collation_name
      
        查看支持的所有字符集:SHOW CHARACTER SET 
        查看支持的所有排序規(guī)則:SHOW  COLLATION
    • 修改:
      ALTER {DATABASE | SCHEMA}  [db_name]
            [DEFAULT]  CHARACTER SET [=] charset_name
            [DEFAULT]  COLLATE [=] collation_name
    • 刪除:
      DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
    • 查看:
      SHOW DATABASES LIKE  ’‘;
  • 表管理:
    • 創(chuàng)建:
      CREATE TABLE  [IF NOT EXISTS]  [db_name.]tbl_name  (create_defination)  [table_options]
      
      create_defination:
        字段:col_name  data_type
        鍵:
            PRIMARY KEY (col1, col2, ...)
            UNIQUE KEY  (col1, col2,...)
            FOREIGN KEY (column)
        索引:
            KEY|INDEX  [index_name]  (col1, col2,...)
      
      table_options:
        ENGINE [=] engine_name
        CHARACTER SET [=] charset_name
        COLLATE [=] collation_name
      • 查看數(shù)據(jù)庫(kù)支持的所有存儲(chǔ)引擎類型:
        mysql> SHOW  ENGINES;
      • 查看某表的狀態(tài)信息:
        mysql> SHOW  TABLES  STATUS  [LIKE  'tbl_name'][WHERE clause]
    • 修改:
      ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name  [alter_specification [, alter_specification] ...]
      
      alter_specification:
        字段:
            添加:ADD  [COLUMN]  col_name  data_type  [FIRST | AFTER col_name ]
            刪除:DROP  [COLUMN] col_name 
            修改:
                CHANGE [COLUMN] old_col_name new_col_name column_definition  [FIRST|AFTER col_name]    
                MODIFY [COLUMN] col_name column_definition  [FIRST | AFTER col_name]
        鍵:
            添加:ADD  {PRIMARY|UNIQUE|FOREIGN}  KEY (col1, col2,...)
            刪除:
                主鍵:DROP PRIMARY KEY
                外鍵:DROP FOREIGN KEY fk_symbol
        索引:
            添加:ADD {INDEX|KEY} [index_name]  (col1, col2,...)
            刪除:DROP {INDEX|KEY}  index_name
        表選項(xiàng):
            ENGINE [=] engine_name
      • 查看表上的索引的信息:
        mysql> SHOW INDEXES FROM tbl_name;
    • 刪除:
      DROP  TABLE  [IF EXISTS]   tbl_name [, tbl_name] ...
    • 表的引用方式:
      tbl_name
        db_name.tbl_name
    • 第二種創(chuàng)建方式:
      復(fù)制表結(jié)構(gòu);
      
        CREATE TABLE tbl_name LIKE other_table_name
    • 第三種創(chuàng)建方式:
      復(fù)制表數(shù)據(jù);
      
        CREATE TABLE tbl_name () SELECT clause
  • 索引管理:
    索引是特殊的數(shù)據(jù)結(jié)構(gòu);
    • 索引:要有索引名稱;
    • 創(chuàng)建:
      CREATE  [UNIQUE|FULLTEXT|SPATIAL] INDEX  index_name  [BTREE|HASH]  ON tbl_name (col1, col2,,...)
    • 刪除:
      DROP  INDEX index_name ON tbl_name
  • DML:INSERT, DELETE, UPDATE, SELECT
    • INSERT INTO:
      INSERT  [INTO]  tbl_name  [(col1,...)]  {VALUES|VALUE}  (val1, ...),(...),...

      注意:字符型:引號(hào);數(shù)值型:不能用引號(hào);

    • SELECT:
      1. SELECT * FROM tbl_name[, tbl_name_2];
        返回指定表的所有數(shù)據(jù);慎用;
      2. SELECT col1, col2, … FROM tbl_name;
        顯示時(shí),字段可以顯示為別名;
        col_name AS col_alias
      3. SELECT col1, … FROM tbl_name WHERE clause;
        WHERE clause:用于指明挑選條件; WHERE col_name 操作符 value;      操作符(1) :         >, <, >=, <=, ==, !=     組合條件:         and          or         not     操作符(2) :         BETWEEN ...  AND ...         LIKE 'PATTERN'             通配符:                 %:任意長(zhǎng)度的任意字符;                 _:任意單個(gè)字符;         RLIKE  'PATTERN'             正則表達(dá)式對(duì)字符串做模式匹配;         IS NULL     顯示為空的         IS NOT NULL    顯示不為空的
      4. SELECT col1, … FROM tbl_name [WHERE clause] ORDER BY col_name, col_name2, … [ASC|DESC];
        ASC: 升序;
        DESC: 降序;
      5. 分組:
        GROUP BY,為了聚合;
        count(), sum(), avg(), max(), min()

        HAVING:對(duì)聚合的結(jié)果做條件過(guò)濾;

    • DELETE:刪除行;
      DELETE   FROM  tbl_name  [WHERE where_condition]  [ORDER BY ...]  [LIMIT row_count]
      (1) DELETE  FROM  tbl_name  WHERE where_condition   (2) DELETE  FROM  tbl_name  [ORDER BY ...]  [LIMIT row_count]
    • UPDATE:
      UPDATE [LOW_PRIORITY] [IGNORE] table_reference  SET col_name1=value1 [, col_name2=value2] ... [WHERE where_condition]  [ORDER BY ...] [LIMIT row_count]
  • 用戶賬號(hào)及權(quán)限管理:
    • 用戶賬號(hào):’username’@’host’
      • host:此用戶訪問(wèn)當(dāng)前mysql服務(wù)器時(shí),允許其通過(guò)哪些主機(jī)遠(yuǎn)程創(chuàng)建連接;
        表示方式:IP,網(wǎng)絡(luò)地址、主機(jī)名、通配符(%和_);
      • 禁止檢查主機(jī)名:my.cnf
        [mysqld]  skip_name_resolve = ON
    • 創(chuàng)建用戶賬號(hào):
      CREATE  USER   'username'@'host'  [IDENTIFIED BY  'password'];
    • 刪除用戶賬號(hào):
      DROP USER  ’user‘@’host' [, user@host] ...
    • 授權(quán):
      權(quán)限級(jí)別:管理權(quán)限、數(shù)據(jù)庫(kù)、表、字段、存儲(chǔ)例程;
      GRANT  priv_type,...  ON  [object_type]  db_name.tbl_name  TO  'user'@'host'  [IDENTIFIED BY  'password'];
      
            priv_type: ALL  [PRIVILEGES]
            db_name.tbl_name:
                *.*:所有庫(kù)的所有表;
                db_name.*:指定庫(kù)的所有表;
                db_name.tbl_name:指定庫(kù)的特定表;
                db_name.routine_name:指定庫(kù)上的存儲(chǔ)過(guò)程或存儲(chǔ)函數(shù);
      
            [object_type]
                TABLE
                FUNCTION
                PROCEDURE
      • 查看指定用戶所獲得的授權(quán):
        SHOW GRANTS FOR  'user'@'host'
        
          SHOW GRANTS FOR CURRENT_USER;
      • 回收權(quán)限:
        REVOKE  priv_type, ...  ON  db_name.tbl_name  FROM  'user'@'host';
      • 注意:MariaDB服務(wù)進(jìn)程啟動(dòng)時(shí),會(huì)讀取mysql庫(kù)的所有授權(quán)表至內(nèi)存中;
        1. GRANT或REVOKE命令等執(zhí)行的權(quán)限操作會(huì)保存于表中,MariaDB此時(shí)一般會(huì)自動(dòng)重讀授權(quán)表,權(quán)限修改會(huì)立即生效;
        2. 其它方式實(shí)現(xiàn)的權(quán)限修改,要想生效,必須手動(dòng)運(yùn)行FLUSH PRIVILEGES命令方可;
  • 加固mysql服務(wù)器,在安裝完成后,運(yùn)行mysql_secure_installation命令;
  • 圖形管理組件:
    phpMyAdmin;運(yùn)行于lamp;
    Navicat
    Mysql-Front
    ToadForMySQL
    SQLyog

httpd+php結(jié)合的方式:php-fpm

  • module: php
    fastcgi : php-fpm
  • php-fpm:
    • CentOS 6:
      PHP-5.3.2-:默認(rèn)不支持fpm機(jī)制;需要自行打補(bǔ)丁并編譯安裝;
      httpd-2.2:默認(rèn)不支持fcgi協(xié)議,需要自行編譯此模塊;
      • 解決方案:編譯安裝httpd-2.4, php-5.3.3+;
    • CentOS 7:
      httpd-2.4:rpm包默認(rèn)編譯支持了fcgi模塊;
      php-fpm包:專用于將php運(yùn)行于fpm模式;

      配置文件:

      • 服務(wù)配置文件:/etc/php-fpm.conf, /etc/php-fpm.d/*.conf
      • php環(huán)境配置文件:/etc/php.ini, /etc/php.d/*.ini
      • 連接池:
        pm = static|dynamic
        • static:固定數(shù)量的子進(jìn)程;pm.max_children;
        • dynamic:子進(jìn)程數(shù)據(jù)以動(dòng)態(tài)模式管理;
          pm.start_servers
            pm.min_spare_servers
            pm.max_spare_servers
            ;pm.max_requests = 500
      • 創(chuàng)建session目錄,并確保運(yùn)行php-fpm進(jìn)程的用戶對(duì)此目錄有讀寫(xiě)權(quán)限;
        # mkdir  /var/lib/php/session
          # chown apache.apache /var/lib/php/session
      • 配置httpd,添加/etc/httpd/conf.d/fcgi.conf配置文件,內(nèi)容類似:
        DirectoryIndex index.php
              ProxyRequests Off
              ProxyPassMatch ^/(.*\.php)$  fcgi://127.0.0.1:9000/var/www/html/$1
      • 虛擬主機(jī)配置
        DirectoryIndex index.php
        
              <VirtualHost *:80>
                  ServerName www.b.net
                  DocumentRoot /apps/vhosts/b.net
                  ProxyRequests Off
                  ProxyPassMatch ^/(.*\.php)$  fcgi://127.0.0.1:9000/apps/vhosts/b.net/$1
        
                  <Directory "/apps/vhosts/b.net">
                      Options None
                      AllowOverride None
                      Require all granted
                  </Directory>
              </VirtualHost>
        • 假設(shè)fpm的status頁(yè)面輸出URL為/pmstatus,測(cè)試接口的輸出位置為/ping
          ProxyPassMatch ^/(ping|pmstatus)$ fcgi://127.0.0.1:9000/$1

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開(kāi)發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!

    1. 主站蜘蛛池模板: 江安县| 罗江县| 寿宁县| 龙川县| 佛山市| 红安县| 阜新| 通州市| 锦州市| 高阳县| 敖汉旗| 荔浦县| 衡阳市| 霞浦县| 自治县| 边坝县| 蒙城县| 永靖县| 贵定县| 庆元县| 澎湖县| 邹城市| 进贤县| 仪陇县| 乌苏市| 胶州市| 拉萨市| 麻阳| 时尚| 乌拉特中旗| 荆州市| 北流市| 雷山县| 县级市| 乐山市| 中方县| 惠水县| 花莲县| 东光县| 合肥市| 合川市|