renduoa 发表于 2015-8-19 09:15:33

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需要Django,Java需要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 db_name;

  DROP DATABASE 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' ;
  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中,当然了这肯定是由一个配置文件配置它的直接访问目录的。
  
  
  
  
页: [1]
查看完整版本: LAMP