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.178linux.com/99094

发表评论

登录后才能评论

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班