LAMP、php、mariadb

LAMP:

a:apache

m:mariadb、mysql

p:php,perl,python

LAMMP:memcached

 

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

動態資源:通常是程序文件,需要在服務器執行之后,將執行的結果返回給客戶端;

CGI:common gateway interface通用網關接口

fastcgi:快速通用網關接口

httpd+php的結合方式:modules、cgi、fastcgi(fpm):

CentOS 7 安裝LAMP

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

注意:php要求httpd使用prefork MPM

啟動服務:

systemctl start httpd

systemctl start mariadb

 

CentOS 6安裝LAMP

程序包:httpd、php、php-mysql、mysql-server

啟動服務:

service httpd start

service mysqld start

測試PHP程序執行環境:

<?php

phpinfo();

?>

測試php程序與mysql通信

<?php

$conn=mysql_connect(‘HOST’,’USERNAME’,’PASSWORD’);

if ($conn)

echo “success”;

else

echo “failure”;

mysql_close();

?>

 

開源博客系統:wordpress

開源論壇系統:dicuz

mysql|mariadb的web GUI:phpmyadmin

php解釋器如何與mariadb交互:

解釋器無需與mariadb交互,那些需要用到數據存儲的程序才需要與數據存儲交互;

存儲系統:

文件系統:文本

SQL:mariadb、oracle、mssql。。。

NoSQL:redis、mongodb、hbase。。。

NewSQL:

 

PHP加速器:利用opcode

xcache:程序包php-xcache

php解析器:

配置文件:/etc/php.ini、/etc/php.d/*.ini;對于服務器模塊版本而言,僅在web服務器啟動時讀取一次。對于CGI和CLI版本,每次調用都會讀取。

mariadb(mysql):關系型數據庫的一種開源實現;

關系型數據庫(RDBMS):

mysql:mysql、mariadb、percona-server

postgresql:簡稱pgsql——企業版enterprisedb

oracle:

mssql:

 

事務:多個操作被當作一個整體對待

ACID:

A:原子性

C:一致性

I:隔離性

D:持久性

SQL:結構化查詢語言;

基礎概念:

約束:constraint,向數據表提供的數據要遵守的限制;

(a)主鍵:一個或多個字段的組合,填入的數據必須能在本表中唯一標識本行,必須提供數據,即NOT NULL;一個表只能存在一個;

(b)唯一鍵:一個或多個字段的組合,填入的數據必須在本表中唯一標識本行,允許為NULL;一個表可以存在多個;

(c)外鍵:一個表中的某字段可填入的數據取決于另一個表中的主鍵已有的數據;

(d)檢查性:mysql暫不支持;

 

索引:將表中的一個或多個字段中的數據復制一份另存,并且需要按特定次序排序存儲;

 

關系運算:

(a)選擇:挑選出符合條件的行(部分);

(b)投影:挑選出需要的字段;

(c)連接:

 

數據抽象:

物理層:決定數據的存儲格式,即RDBMS在磁盤上如何組織文件;

邏輯層:描述DB存儲什么數據,以及數據間存在什么樣的關系;

視圖層:描述DB中的部分數據;

 

安裝mariadb | mysql:

1、源代碼:編譯安裝;

2、二進制格式的程序包:展開至特定路徑,并經過簡單配置后即可使用;

(a)準備數據目錄

(b)配置mariadb

# useradd -r mysql

# tar xf

# ln -sv

# chown -R mysql:mysql

# scripts/mysql_install_db –datadir= ? ?–user=mysql

# cp support-files/mysql.server /etc/rc.d/init.d/mysql

# chkconfig –add mysql

(c)準備配置文件

配置格式:類ini格式,為各程序[prog_name]均通過單個配置文件提供配置;

配置文件查找次序:

/etc/my.cnf——>/etc/mysql/my.cnf——-> –default-extra-file= ———> ?~/.my.cnf

# cp ?support-files/my-large.cnf ? /etc/my.cnf

添加如下參數:

datadir=
innodb_file_per_table = on
skip_name_resolve = on

3、程序包管理提供的程序包:rpm包;

 

mariadb程序組成

client客戶端:

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

mysqldump、mysqladmin

server服務端:

mysqld_safe

mysqld

mysqld_multi

 

服務器監聽的兩種socket地址:

ip socket:監聽在tcp的3306端口,支持遠程通信;

unix sock:監聽在sock文件上(rpm包安裝的默認路徑/var/lib/mysql/mysql.sock),僅支持本地通信;

 

命令行交互式客戶端:mysql

mysql [options] db_name

常用選項:

-uUSERNAME:用戶名,默認為root

-hHOST:服務器主機,默認為localhost

-pPASSWORD:用戶密碼,默認為空密碼

 

用戶賬號及權限管理:

注意:mysql用戶賬號由兩部分組成:’USERNAME’@’HOST’;其中HOST用于限制此用戶可通過哪些主機遠程連接mysql服務。

支持使用通配符:

%:匹配任意長度的任意字符

_:匹配任意單個字符

創建用戶賬號:CREATE USER ‘username’@’host’ [IDENTIFIED BY ?‘password’];

刪除用戶賬號:DROP USER? ‘username’@’host’ ;

 

mariadb安裝初始化:mysql_install_db ? ? ? ?–datadir= ? ? ?–user=mysql

安全初始化:mysql_secure_installation

 

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

數據庫:database

表:table;行:row;列:column

索引:index

視圖:view

存儲過程:procedure

存儲函數:function

觸發器:trigger

事件調度器:event scheduler

 

數據類型:

一、字符

(a)變長字符:VARCHAR(#),VARBINARY(#);

(b)定長字符:CHAR(#),BINARY(#);

(c)內建類型:ENUM,SET;

(d)對象:TEXT,BLOB

二、數值

(a)精確數值:

整數:TINYINI(1個字節),SMALLINT(2個字節),INT(3個字節),MEDIUMINT(4個字節),BIGINT(8個字節)

十進制:DECIMAL

(b)近似數值:

單精度:FLOAT

雙精度:DOUBLE

三、日期時間型:

日期:DATE

時間:TIME

日期時間:DATETIME

時間戳:TIMESTAMP

年份:

YEAR(2)、YEAR(4)

 

 

SQL語句:

一、DDL:data definition language;數據定義語言;

CREATE、ALTER、DROP

 

數據庫:

創建數據庫:CREATE DATABASE|SCHEMA ? ? [IF NOT EXISTS] ? ?‘DB_NAME’;

CHARACTER SET [=] charset

COLLATE ?[=] ?collate

查看所有支持的字符集:SHOW CHARACTER SET;

查看所有支持的排序:SHOW COLLATION;

刪除數據庫:DROP DATABASE|SCHEMA ? ? ? [IF ?EXISTS] ? ? ‘DB_NAME’;

獲取命令使用幫助:mysql> HELP KEYWORD;

 

表:

創建表:CRERTE ?TABLE? [IF NOT EXISTS] ‘tbl_name’ (col1 type1,col2 type2, …)

修飾符:

(a)所有類型適用

NOT NULL:不可為空

DEFAULT ?char:默認值

PRIMARY KEY(col1,col2,…) :主鍵

INDEX (col1,col2,…):索引建

UNIQUE KEY?(col1,col2,…):唯一鍵

(b)數值型適用

UNSINGED:不表示負數

AUTO_INCREMENT:自動增長

 

表選項:

ENGINE [=] ?engine_name

查看所有支持的引擎:SHOW ENGINES;

查看表創建命令:SHOW CREATE TABLE tbl_name;

描述表結構命令:DESC tbl_name;

查看表狀態:SHOW ? TABLE ? STATUS ? LIKE ? ‘tbl_name’ ? ?\G

 

刪除表:DROP TABLE [IF EXISTS] ?‘tbl_name’

修改表:ALTER TABLE ?‘tbl_name’

1、字段:

添加字段:add

ADD ?col1 data_type ?[FIRST | AFTER col_name]

刪除字段:drop

修改字段:alter(修改字段默認屬性)、change(修改字段名稱)、modify(修改字段屬性)

2、索引

添加索引:add

刪除索引:drop

3、表選項

修改:

 

索引:是一種特殊的數據結構;定義在查找時作為查找條件的字段;可以有索引名稱

創建索引:CREATE ?INDEX index_name ON tbl_name(index_col_name,…);

刪除索引:DROP INDEX ?index_name?ON tbl_name;

查看索引:SHOW INDEX FROM tbl_name;

 

 

二、DML::data manipulation language:數據操縱語言;

SELECT、UPDATE、INSERT、DELETE

插入數據:INSERT ? ?[INTO] ? ?tbl_name [(col_name,…)] {VALUES | VALUE} (val1,…),(…),…

查詢數據:SELECT ?col1,col2,… ? FROM ?tbl_name ?[WHERE clause] [ORDER BY ‘col_name [ASC|DESC]] ?[LIMIT [M,]n]’;

刪除數據:DELETE FROM tbl_name [WHERE clause] [ORDER BY ‘col_name [ASC|DESC]] ? [LIMIT [M,]n]’;

更新數據:UPDATE tbl_name SET col1=new_val1,col2=new_val2,… ? ??[WHERE clause] [ORDER BY ‘col_name [ASC|DESC]] ?[LIMIT [M,]n]’;

 

WHERE:給定條件;

(a)常用操作符:==,>,<,>=,<=,!=

BETWEEN ? a ? ?AND ? b? :在a與b之間

LIKE:模糊匹配;%:任意長度的任意字符;_:任意單個字符;

RLIKE:基于正則表達式作模糊匹配;

IS NULL:為空

IS NOT NULL:非空

(b)條件邏輯操作:and,or,not

ORDER BY col_name:以哪個字段排序排序

ASC:升序

DESC:降序

LIMIT #:顯示前#個;

字段表示法:

*:所有字段

as:字段別名,col1 AS alias1

 

三、DCL:data control language:數據控制語言;

GRANT、REVOKE

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

創建用戶并授權:GRANT ?pri_type,… ? ON ? [object_type] ?db_name.tbl_name ?TO ? ‘username’@’host’ ? [IDENTIFIED BY ?‘password’];

pri_type:權限;ALL [PRIVILEGES]

db_name.tbl_name:指定那個數據庫的某些表、存儲函數、存儲例程;

查看所有的可授權權限:SHOW PRIVILEGES;

查看mariadb的用戶:SELECT user,host,password FROM mysql.user;

查看指定用戶獲得的權限:SHOW GRANTS FOR ‘user’@’host’;

查看當前用戶獲得的權限:SHOW GRANTS FOR CURRENT_USER();

撤銷權限:REVOKE?pri_type,… ? ON ? [object_type] ?db_name.tbl_name ?FROM ? ‘username’@’host’;

注意:mariadb服務進程啟動時會讀取數據庫中的所有權限表至內存中;

(1)GRANT或REVOKE、CREATE USER、DROP USER等執行權限操作會保存于表中,mariadb的服務進程會自動重讀授權表;

(2)對于不能夠或不能及時重讀授權表的命令,可手動讓mariadb的服務進程重讀授權表:FLUSH PRIVILEGES;

 

LAMP安裝重點:

1、php作為httpd模塊:yum install httpd php php-mysql mariadb -y

2、php以fpm獨立工作:yum install httpd php-mysql php-fpm mariadb -y

注意:此時需手動更改httpd.conf配置文件,添加

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

DirectoryIndex index.php index.html

而且需要在各虛擬主機配置文件添加如下代碼:

ProxyRequests off
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/path/to/your/documentroot/$1

 

源碼編譯安裝xcache-3.2.0

# yum groupinstall “development tools”

# tar xf xcache-3.2.0.tar.gz

# cd xcache-3.2.0/

# /usr/bin/phpize ? ? (which phpize查找具體路徑)

# ./configure –enable-xcache –with-php-config=/usr/bin/php-config ? ??(which php-config查找具體路徑)

# make && make install

# cp xcache.ini /etc/php.d/

# systemctl restart httpd mariadb php-fpm

 

查看xcache工作狀態:

 

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/99094

(1)
N26-深圳-城市蝸牛N26-深圳-城市蝸牛
上一篇 2018-05-21
下一篇 2018-05-21

相關推薦

  • linux操作系統啟動流程和創建

    1、簡述linux操作系統啟動流程
    2、簡述grub啟動引導程序配置及命令行接口詳解
    3、實現kickstart文件制作與光盤鏡像制作

    2018-06-20
  • N31第一周

    一、計算機的組成及其功能。 計算機是由運算器、控制器、存儲器、輸入設備、輸出設備五大部件組成,每一個部分分別按照要求執行特定的基本功能。 運算器:運算器的主要功能是對數據進行各種運算。 控制器:控制器是整個計算機系統的控制中心,它指揮計算機各部分協調地工作,保證計算機按照預先規定的目標和步驟有條不紊的進行操作及處理。 存儲器:存儲器的主要功能是存儲程序和各種…

    2018-06-19
  • Linux 命令

    screen 創建會話

    2018-04-07
  • sed命令

    sed命令詳解

    2018-04-16
  • MYSQL數據庫

    MYSQL數據庫 數據的時代 ?涉及的數據量大 ?數據不隨程序的結束而消失 ?數據被多個應用程序共享 ?大數據   數據庫的發展史: ?萌芽階段—–文件系統: 使用磁盤文件來存儲數據 ?初級階段—–第一代數據庫: 出現了網狀模型、層次模型的數據庫 ?中級階段—–第二代數據庫: …

    Linux筆記 2018-06-18
  • 初學linux你該死記它們

    最笨的方法往往是最好的方法

    Linux筆記 2018-04-08
欧美性久久久久