LAMP

1、MIME

2、动态网站有客户端动态还有服务器动态。源程序下载到本地,在本地执行,并打印,不安全。

ActiveX、Applet(用Java开发的小程序,需要一个解释器JVM来执行,Java是一次)都是一种客户端动态,就是一种在客户端执行的一种机制。

3、Java被称为一次编译到处运行。但是它只能运行在虚拟机上,它也是有环境依赖的,只是被虚拟机隐藏起来了。

C就不行了,编译完了的C程序在不同的环境下是不一定能运行的。

4、CGI(Common Gateway Interface,通用网关接口)是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。让web服务器能够跟后端程序相结合的,调用后端程序调用输入去执行的接口。

webapp,web应用程序。

5、编程语言:静态语言——编译型语言(C,C++,Java等);动态语言——解释型语言(shell,perl,python等)。

  静态语言效率高,性能好,但是每一次它的错误查找调试很麻烦,都需要重新编译,并且它过于底层,别人的末班不好用,它的开发周期很长,维护很难。所以它适合底层应用,不常修改且性能要求很高的场景。比解释型语言高30%左右。

  动态语言便于维护,做多共享模块,开发周期短,维护成本小,但是性能差。

  所以完美的是用动态语言开发,再用一个转换器转换成一个静态语言。比如Facebook用php开发,用一个内部的转换器(Hiphop)转成一个C++程序。所以它的执行性能很好。

  但并非所有的动态语言都适合网页开发,比如说bash,它主要是实现系统自动化,不适合web服务器站点开发。但也有很牛逼的人他就这么做,但是很复杂。

  其他很多语言就开发站点需要框架,比如Python需要DjangoJava需要ssh(Spring,Stucts,Hibernate)ruby需要rails。除了PHP和asp(too sad,the teacher says it's ugly)是专门用来开发站点的。

  

----------------PHP-------------------------

1、opcode操作码

php是一种解释型语言。

php源码→利用解释器编译成二进制(编译结果opcode,接近于而只能,不能独立运行,只能在zend引擎当中运行)→执行二进制格式。

.php文件被编译完成之后不在自己的内存空间中,而是放在一个公用的内存空间中(一个缓存器),这样其他的所有的进程都可以访问。这样的缓存器有APC,eAccelerator,XCache,Zend Optimizer和Zend Guard Loader等等。

PHP、javascript

2.MVC(model view control)

当有大量用户并发访问的时候,CGI机制并不是理想的模式。

3.DSO,Dynamic share object.

Apache是模块化设计。用某个模块功能的时候就加载这个模块。将php解释的功能做成一个模块,当我们需要php的时候就直接加载这个模块,这样,当一个用户访问的用户,不用开始两个进程,一个响应用户请求,一个进行php解释。这时候我们只需要一个进程就好了,它能用一个进程完成上面两个功能。

 --------------MySQL-------------------

1.协议是规定模块等之间的通信。比如说http需要Apache等等,协议都是需要软件来实现的。

2.DBMS, DataBase Management System, 数据库管理系统

3.数据的组织结构

  层次型

  网状型

  关系型

4.关系型数据库

关系型数据库也有很多不足。范式。所以出现了NoSQL,反关系模型。相应的软件有MongoDB、Redis、HBase。

RDBMS,Relational DataBase Mangement System,关系型数据库管理系统

一张表可以保存为多个文件,一个文件可以有多张表,他们之间没有必然的联系。

DML:Data Manapulate Language: 数据操作语言

  INSERT, REPLACE, UPDATE, DELETE
DDL:Data Defination Lanuage: 数据定义语言
  CREATE, ALTER, DROP
DCL:Data Control Language: 数据控制语言
  GRANT, REVOKE

5.RDBMS的主要有:Oracle、Sybase、Infomix、SQLServer(前三个是最好的三大数据库)

  开源的有MySQL、PostgreSQL

 

6.数据库的出现

一个500G的数据的文件,要对他的条目进行排序,我们需要索引进行操作。不然我们要将整个文件加载进入进程的内存空间进行操作,那显然是不合适的。所以要有DBMS。

7.mysql cluster(集群)

mysql community server

mysql enterprise edition

mysql connectors(连接器)  

8.mysql软件包格式:软件包管理器特有的格式(rpm包,.exe),通用二进制格式(类似于绿色软件),源程序    

9.表:一个表至少有一个列,可以没有行

行row

列field(字段),column

字段:名称,数据类型,类型修饰符

10.MySQL一些常用的指令

DDL
  CREATE
  ALTER
  DROP
DML
  INSERT
  UPDATE
  DELETE
DCL
  GRANT
  REVOKE

创建数据库
  CREATE DATABASE db_name;
  CREATE DATABASE [IF NOT EXISTS] db_name;

  DROP DATABASE [IF EXISTS] db_name;

创建表
  CREATE TABLE tb_name(col1,col2,...);

查看库中的表:SHOW TABLES FROM db_name;
查看表的结构:DESC tb_name;

删除表:DROP TABLE tb_name;

修改表:
  ALTER TABLE tb_name
  MODIFY
  CHANGE
  ADD
  DROP

DML:
  INSERT INTO tb_name (col1,col2,...) VALUES|VALUE ('STRING', NUM,...);
  INSERT INTO tb_name (col1,col2,...) VALUES|VALUE ('STRING', NUM,...),('STRING',NUM,...);

  UPDATE tb_name SET column=value WHERE

  DELETE FROM tb_name WHERE CONDITION;

选择:
  SELECT 字段 FROM tb_name WHERE CONDITION

  *: 所有字段
  WHERE:没有条件表示显示所有行;

创建用户:
  CREATE USER 'USERNAME'@'HOST' [IDENTIFIED BY 'PASSWORD'];
  DROP USER 'USERNAME'@'HOST';

为用户设定密码

  SET PASSWORD FOR 'USERNAME'@'HOST'=PASSWORD('password')

   或者 UPDATE user SET Password=PASSWORD("*****") WHERE USER='*****' AND HOST='*****'

10.MySQL的图形化工具:

     phpMyAdmin、Workbench、MySQL Front、Navicat for MySQL

----------

1.WebServer、能运行Webapp的WebAPPServer、数据库服务器。(Apache、PHP、MySQL)

这可以安装在一台机器上(单层结构);两层结构;三层结构(三个安装在不同的服务器上)。

2.LAMP:phpMyAdmin

论坛:discuz(现在已经被腾讯收购)、phpwind(现在已经被阿里巴巴收购)、phpbb

CMS(内容管理系统):drupal、joomla

另一个常用的LAMP:WordPress,这是一个全球性的个人博客系统

--------------自己实验-------------

在实验室的一台机器装上LAMP,在另一台机器山访问。

service被直接访问的文件在目录/var/www/html中。一开始看网上的教程都是直接放在/var/www中,当然了这肯定是由一个配置文件配置它的直接访问目录的。

 

Just like writing, coding is a work of creating!
原文地址:https://www.cnblogs.com/chenbuer/p/3873305.html