lamp简介

lamp

构建一个有着动态服务器端技术的网站

LAMP基础

1)开源领域LAMP组成:
L:Linux;A:apache (httpd);M:mysql, mariadb;P:php, perl, python
httpd:接收用户的web请求;静态资源则直接响应;动态资源为php脚本交由php来运行;
php:运行php程序;
MariaDB:数据管理系统;
2)CGI:Common Gateway Interface,通用网关接口
CGI描述了客户端和服务器程序之间传输的一种标准;可以让一个客户端,从网页浏览器向执行在网络服务器上的程序传输数据;
3)请求流程
Client -- (http协议) --> httpd -- (cgi协议) --> application server (program file) -- (mysql) --> mysql
客户端浏览器发出请求,通过http协议发向Web服务器,若为静态请求则httpd发起系统调用,磁盘IO调用数据,返回给用户;
若为动态请求,则通过CGI通用网关接口协议发送给应用程序服务器,通过 如php脚本等动态执行通过mysql协议调用mysql程序查询结果,并返回。
静态资源:Client -- http --> httpd
动态资源:Client -- http --> httpd --> libphp5.so () -- mysql --> MySQL serve

PHP

php: 脚本编程语言
嵌入到html中的嵌入式web程序开发语言,高度模块化(extensions),无需编译;大多数情况无需用到管理员权限运行,更加安全

基于zend编译成opcode(二进制格式的字节码,重复运行可省略编译环境)

Scanning(扫描) --> Parsing(分析) --> Compilation(编译) --> Execution(执行)
httpd与php结合的方式
1)CGI:最传统方式,必要时需要创建和销毁子进程
2)FastCGI:将php运行成一个服务监听在套接字,有主进程和空闲进程,独立的服务进程;工作模式类似于httpd的prefork;
注意:
    1)需要安装php-fpm程序包,非php程序包
    2)httpd2.2不支持FastCGI协议功能需自己编译;CentOS 7的httpd2.4将其加入成为模块
3)modules (把php编译成为httpd的模块):当请求动态请求时无需再启动一个新的进程,默认结合方式基于MPM相关的php所编译的模块:
    prefork: libphp5.so;
    event, worker: libphp5-zts.so
php服务配置文件
1)/etc/php.ini,  /etc/php.d/*.ini ,一般由php-common程序包提供php相关所有配置文件
2)php配置文件在php解释器启动时被读取,修改配置文件后重启httpd服务或重启php-fpm服务;
3)通过配置段[*]配置,directive = value方式配置每段内部信息
    [php]表示核心配置信息,其他[ ]为单独安装包组件配置信息         
4)注释符:较新的版本中,已经完全使用;进行注释;
    #:纯粹的注释信息
    ;:用于注释可启用的directive
5)相关官方文档
    php.ini的核心配置选项文档:  http://php.net/manual/zh/ini.core.php
    php.ini配置选项列表:http://php.net/manual/zh/ini.list.php

php应用程序:

开源代表:wordpress, discuzX, phpwind, drupal...

示例:安装测试php

]# yum install php 
]# systemctl reload http.service
]# vim /var/www/html/phpinfo.php 编辑测试主页:如下写入一个php能调用自己的内建函数;这个函数可以提供一个php服务与当前系统环境的测试页面
<?php
    phpinfo{};
?>
http://IP/phpinfo 浏览器访问进行测试

数据库简介

MySQL:支持插件式存储引擎
MySQL是一个多用户,多线程SQL数据库服务器            
C/S:MySQL是CS架构的,所要人要与其打教道都应该通过MySQL所监听在套接字上的MySQL协议进行
    Server: mysqld, mysqld_safe, mysqld_multi
    Client:mysql

MySQL:
    Community Edtion
    Enterprise Edtion

CentOS 6: mysql-server, mysql
    额外添加的配置项:
        [mysqld]
        ...
        skip_name_resolve :跳过主机名解析
        innodb_file_per_table=ON :每表单独的表空间
MariaDB:
CentOS 7: 服务器端程序包:mariadb-server, 客户端程序包mariadb

配置文件:/etc/my.cnf, /etc/my.cnf.d/*.cnf

经常使用要额外添加的配置项:
    [mysql]
    skip_name_resolve = ON :跳过主机名解析
    innodb_file_per_table = ON :每表单独的表空间
centos7示例:
    ]# vim /etc/my.cnf 加入配置项
        skip_name_resolve = ON
        innodb_file_per_table = ON
    ]# systemctl start mariadb.service 配置后启动,初次启动比较耗时
    此时使用mysql命令就可以登录到mysql服务上去了;mysql是需要认证授权以后才允许用户访问数据库的,不过不指定连接的服务器时默认连接的就是本机的mysql server,
    所以连接的时候需要用户名和密码,如果用户名不指;                        
    默认的管理员用户为:root,密码为空;首次安装后建议使用mysql_secure_installation命令进行安全设定;

客户端连接mysql server:
    mysql --> mysql protocol --> mysql server 
    语法:mysql [options] db_name
        选项  -hHOST
            -uUSERNAME
            -pPASSWORD

mysql的用户账号:
    username@host
    username:用户名
    host:此用户可通过哪些客户端主机登录当前服务器上的mysql服务;主机名和IP地址属性于不同的主机;
        可使用通配符:
            _:任意单个字符;
            %:任意长度以的任意字符;
                root@'10.1.%.%'
首次安装后建议使用mysql_secure_installation命令进行安全设定

进入mysql后会处于mysql命令行界面下,此时可以使用mysql命令;
mysql> 可接受输入mysql命令,分两类
    客户端命令:
        help可获取命令列表
    服务端命令:SQL语句,必须使用语句结束符,默认为分号;
        DDL(数据定义语言):CREATE(创建), ALTER(修改), DROP(删除)
        DML:INSERT(增), DELETE(删), UPDATE(改), SELECT(查)
        GRANT/REVOKE:授权和取消授权命令          


    授权命令:
        GRANT ALL [PRIVILEGES] ON db.tbl TO 'username'@'host' IDENTIFIED BY 'password';
            db:数据库的名字,可以使用*通配;
            tbl:表的名称,可以使用*通配;
                例:mydb.*, *.*, mydb.tbl1                
        FLUSH PRIVILEGES:重载授权表

    数据库的基本操作:
        CREATE DATABASE db_name;:创建数据库
        DROP DATABASE db_name;  :删除数据库

快速部署lamp环境:

CentOS 7:
# yum install mariadb-server httpd php php-mysql
# systemctl start httpd.service mariadb.service 

CentOS 6:
# yum install httpd php php-mysql mysql-server 
# service httpd start
# service mysqld start

原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/58130

(1)
M20-1马星M20-1马星
上一篇 2016-11-07 09:44
下一篇 2016-11-07 10:02

相关推荐

  • N21_第x周_Storm_01_单机实践篇

       这2周没有按马哥安排的课程走,因公司需要,大家一直在试尝大数据这块。作业不能不做,也不知道马哥哪周的作业会有storm,只好先将这段时间的实验慢慢记录下来(其它flume、kafka、spark等本周会慢慢补充),等知道具体的作业题目后,再完善。 实验目的   了解storm的原理,并用storm单机版实验加深理解,为后面…

    Linux干货 2016-09-15
  • linux 权限相关知识

    linux day 6     用户、组和权限 1.Linux用户:Username/UID         管理员:root, 0         普通用户:1-65535             …

    Linux干货 2016-08-08
  • Linux基础——文件管理

    Linux基础——文件管理 文件管理及常用命令详解       Linux文件系统是以/为基本的倒置树状结构,我们来进一步学习下文件或者目录的操作和管理命令:  目录相关操作:cd、pwd、mkdir、rmdir 目录及文件检索:ls 复制、移动、删除:cp、mv、rm…

    Linux干货 2016-09-27
  • Linux的发行版及哲学思想

    Linux是一套免费使用和自由传播的类Unix系统,是一个基于Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的工具软件、应用程序和网络协议。它支持32位和64位硬件,是一个性能稳定的多用户网络操作系统。严格来讲,Linux这个词本身只表示Linux内核,联合GNU 组织里的各种强大的应用软件而组成的操作系统。 从Linux的诞生至今,…

    Linux干货 2016-10-30
  • 通过view实现智能DNS

    DNS策略解析最基本的功能是可以智能的判断访问您网站的用户,然后根据不同的访问者把您的域名分别解析成不同的IP地址,然后跟DNS服务器内部的IP表匹配一下,看看用户的类型,然后给用户返回对应的IP地址。

    Linux干货 2017-10-03
  • Linux中/etc/passwd、/etc/shadow文件字段的含义以及用处

        今天本人学习到了两个个Linux中非常重要的文件,它们承载着Linux用户的相关信息,如果在账号方面出现一些密码相关的问题,就可以来找这两个文件查看和分析一番。     他们分别是/etc/passwd和/etc/shadow两个文件,他们都存放于/etc目录中,都可以使用cat命令来查看其内容。  …

    Linux干货 2016-01-14