| 
	#lnmp是什么? 
	1.Linux操作系统(Linux),是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软体和开放源代码发展中最著名的例子. 
	2.Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了。Igor 将源代码以类BSD许可证的形式发布。自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx. 
	3.PHP 是什么?PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 web 开发。
 
	4.MySQL是一个开放源码的小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。 
	  
	  
	  
	MySQL的特性:使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性
 支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统
 为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。
 支持多线程,充分利用CPU资源
 优化的SQL查询算法,有效地提高查询速度
 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中
 提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名
 提供TCP/IP、ODBC和JDBC等多种数据库连接途径
 提供用于管理、检查、优化数据库操作的管理工具
 可以处理拥有上千万条记录的大型数据库
 
	MySQL的应用:与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL不支持视图(已经被列入5.1版的开发计划)、事件等)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。
 目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。由于这四个软件都是遵循GPL的开放源码软件,因此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统。
 
	MySQL管理:可以使用命令行工具管理MySQL数据库(命令mysql 和 mysqladmin),也可以从MySQL的网站下载图形管理工具MySQL Administrator和MySQL Query Browser。
 phpMyAdmin是由php写成的MySQL资料库系统管理程式,让管理者可用Web介面管理MySQL资料库。
 phpMyBackupPro也是由PHP写成的,可以透过Web介面创建和管理数据库。它可以创建伪cronjobs,可以用来自动在某个时间或周期备份MySQL 数据库。
 
	Mysql存储引擎:MyISAM Mysql的默认数据库,最为常用。拥有较高的插入,查询速度,但不支持事务
 InnoDB 事务型数据库的首选引擎,支持ACID事务,支持行级锁定
 BDB 源自Berkeley DB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性
 Memory 所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失
 Merge 将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用
 Archive 非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive 拥有高效的插入速度,但其对查询的支持相对较差
 Federated 将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用Cluster/NDB 高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用
 CSV 逻辑上由逗号分割数据的存储引擎
 BlackHole 黑洞引擎,写入的任何数据都会消失
 
	另外,Mysql的存储引擎接口定义良好。有兴趣的开发者通过阅读文档编写自己的存储引擎。 
	Mysql最常见的应用架构:单点(Single),适合小规模应用
 复制(Replication),适合中小规模应用
 集群(Cluster),适合大规模应用
 
	Mysql6.0的alpha版于2007年初发布,新版增加了对falcon存储引擎的支持。Falcon是Mysql社区自主开发的引擎,支持ACID特性事务,支持行锁,拥有高性能的并发性。Mysql AB公司想用Falcon替代已经非常流行的InnoDB引擎,因为拥有后者技术的InnoBase已经被竞争对手Oracle所收购。 
	5.Zend,eAccelerator这两个是用来加速或优化php的速度的其实,Zend是一个公司,且有好几个产品.本文里说的zend是指 ZendOptimizer.ZendOptimizer 就是来用加速或优化经过加密的PHP代码
 ZendOptimizer是用来提高PHP应用程序的执行速度。实现的原理是对那些程序在被最终执行之前由运行编译器(Run-Time Compiler)产生的代码进行优化。一般情况下,执行使用Zend Optimizer的PHP程序比不使用的要快40%到100%。这意味着网站的访问者可以更快的浏览网页,从而完成更多的事务,创造更好的客户满意度。
 
	6.eaccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了性能php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。使您的PHP程序代码执效率能提高1-10倍 
	7.ImagickPHP中Imagick类,提供了比GD库函数更为方便和强大的图片处理功能。由于工作关系研究了一阵,略有收获,不敢独乐,特与大家分享。使用Imagick类,需要PHP安装imagemagick扩展模块。其实就是linux命令行中增加了convert命令。最有一个图片压缩的函数只能针对jpeg图片,但是我用PHP中Imagick类提供的图片质量压缩不能达到压缩功能,目前尚未解决。所以用命令行解决。
 
	8.MemcacheMemcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
 
	9.ImageMagickImageMagick是一套功能强大、稳定而且免费的工具集和开发包,可以用来读、写和处理超过89种基本格式的图片文件,包括流行的TIFF、JPEG、GIF、 PNG、PDF以及PhotoCD等格式。利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存,对图片的操作,即可以通过命令行进行,也可以用C/C++、Perl、Java、PHP、Python或Ruby编程来完成。同时ImageMagick提供了一个高质量的2D工具包,部分支持SVG。现在,ImageMagic的主要精力集中在性能、减少bug以及提供稳定的API和ABI上。
 
	10.google-perftoolsgoogle-perftools 是一款针对 C/C++ 程序的性能分析工具,它是一个遵守 BSD 协议的开源项目。使用该工具可以对 CPU 时间片、内存等系统资源的分配和使用进行分析
 
	#系统环境:[root@dba01 ~]# cat /etc/RedHat-release
 CentOS release 6.2 (Final)
 [root@dba01 ~]# uname -a
 Linux dba01 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux
 
	  
	[root@dba01 ~]# rz -y
 
	rz waiting to receive.zmodem trl+C ȡ
 
	100%    5349 KB 2674 KB/s 00:00:02      0 Errors
 100%  23727 KB  988 KB/s 00:00:24      0 Errors
 
	[root@dba01 ~]# ll cmake-2.8.4.tar.gz mysql-5.5.19.tar.gz
 -rw-r--r--. 1 root root  5477628 Sep 19  2011 cmake-2.8.4.tar.gz
 -rw-r--r--. 1 root root 24296942 Dec 19  2011 mysql-5.5.19.tar.gz
 
	#安装cmake
 [root@dba01 ~]# tar -zxf cmake-2.8.4.tar.gz
 [root@dba01 ~]# cd cmake-2.8.4
 [root@dba01 cmake-2.8.4]# ./configure && gmake && gmake install
 
	#安装mysql
 [root@dba01 cmake-2.8.4]# cd ..
 [root@dba01 ~]# groupadd mysql
 [root@dba01 ~]# useradd -g mysql mysql
 [root@dba01 ~]# tar -zxf mysql-5.5.19.tar.gz
 [root@dba01 ~]# cd mysql-5.5.19
 [root@dba01 mysql-5.5.19]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STOPAGE_ENGINE=1 -DWITH_BLACKHOLE_STOPAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/var/mysql/data -DMYSQL_USER=mysql -DMYSQL_TCP-PORT=3306
 
	  
	参数说明:
 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql //安装目录
 -DMYSQL_DATADIR=/var/mysql/data数据库存放目录
 -DWITH_MYISAM_STORAGE_ENGINE=1 //安装myisam存储引擎
 -DWITH_INNOBASE_STORAGE_ENGINE=1 //安装innodb存储引擎
 -DWITH_ARCHIVE_STORAGE_ENGINE=1 //安装archive存储引擎
 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 //安装blackhole存储引擎
 -DENABLED_LOCAL_INFILE=1 //允许从本地导入数据
 -DDEFAULT_CHARSET=utf8   //使用utf8字符
 -DDEFAULT_COLLATION=utf8_general_ci //校验字符
 -DEXTRA_CHARSETS=all   //安装所有扩展字符集
 -DMYSQL_TCP_PORT=3306 //MySQL监听端口
 -DMYSQL_USER=mysql //MySQL用户名
 其他参数:
 -DWITH-EMBEDDED_SERVER=1 //编译成embedded MySQL library (libmysqld.a)
 -DSYSCONFDIR=/etc //MySQL配辑文件
 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock //Unix socket 文件路径
 -DWITH_READLINE=1 //快捷键功能
 -DWITH_SSL=yes //SSL
 -DWITH_MEMORY_STORAGE_ENGINE=1 //安装memory存储引擎
 -DWITH_FEDERATED_STORAGE_ENGINE=1 //安装frderated存储引擎
 -DWITH_PARTITION_STORAGE_ENGINE=1 //安装数据库分区
 -DINSTALL_PLUGINDIR=/usr/local/mysql/plugin //插件文件及配置路径
 
	[root@dba01 mysql-5.5.19]# make && make install
 [root@dba01 mysql-5.5.19]# chmod +w /usr/local/mysql
 [root@dba01 mysql-5.5.19]# chown -R mysql:mysql /usr/local/mysql
 [root@dba01 mysql-5.5.19]# ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
 [root@dba01 mysql-5.5.19]# mkdir -p /var/mysql/
 [root@dba01 mysql-5.5.19]# mkdir -p /var/mysql/data
 [root@dba01 mysql-5.5.19]# mkdir -p /var/mysql/log
 [root@dba01 mysql-5.5.19]# chown -R mysql:mysql /var/mysql/
 [root@dba01 mysql-5.5.19]# cd support-files/
 [root@dba01 support-files]# cp my-large.cnf /etc/my.cnf
 cp: overwrite `/etc/my.cnf'? yes
 [root@dba01 support-files]# cp mysql.server /etc/init.d/mysqld
 [root@dba01 support-files]# /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/var/mysql/data/ --user=mysql
 [root@dba01 support-files]# chmod +x /etc/init.d/mysqld
 
	[root@dba01 support-files]# vim /etc/init.d/mysqld +46
 
	  
	在basedir=/usr/local/mysql (添加)
 datadir=/var/mysql/data  (添加)
 
	[root@dba01 support-files]# chkconfig --add mysqld
 [root@dba01 support-files]# chkconfig --level 345 mysqld on
 [root@dba01 support-files]# chkconfig --list|grep mysqld
 mysqld          0:off  1:off  2:on    3:on    4:on    5:on    6:off
 
	[root@dba01 support-files]# ln -s /usr/local/mysql/bin/* /bin/
 [root@dba01 support-files]# /etc/init.d/mysqld restart
 ERROR! MySQL server PID file could not be found!
 Starting MySQL.......................... SUCCESS!
 [root@dba01 support-files]# netstat -lntp|grep mysqld
 tcp        0      0 0.0.0.0:3306                0.0.0.0:*                  LISTEN      46116/mysqld
 
	  
	[root@dba01 support-files]# mysqladmin -uroot password '123456'
 [root@dba01 support-files]# mysql -uroot -p123456
 Welcome to the MySQL monitor.  Commands end with ; or \g.
 Your MySQL connection id is 2
 Server version: 5.5.19-log Source distribution
 
	Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
	Oracle is a registered trademark of Oracle Corporation and/or its
 affiliates. Other names may be trademarks of their respective
 owners.
 
	Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
	mysql> show engines;                                              #查看mysql存储引擎
 +--------------------+---------+------------------------------------------------------------+--------------+------+------------+
 | Engine            | Support | Comment                                                    | Transactions | XA  | Savepoints |
 +--------------------+---------+------------------------------------------------------------+--------------+------+------------+
 | MyISAM            | YES    | MyISAM storage engine                                      | NO          | NO  | NO        |
 | InnoDB            | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
 | MRG_MYISAM        | YES    | Collection of identical MyISAM tables                      | NO          | NO  | NO        |
 | PERFORMANCE_SCHEMA | YES    | Performance Schema                                        | NO          | NO  | NO        |
 | CSV                | YES    | CSV storage engine                                        | NO          | NO  | NO        |
 | MEMORY            | YES    | Hash based, stored in memory, useful for temporary tables  | NO          | NO  | NO        |
 +--------------------+---------+------------------------------------------------------------+--------------+------+------------+
 6 rows in set (0.00 sec)
 
	mysql> show variables like 'innodb_version'\G;                    #查看innodb存储引擎版本。
 *************************** 1. row ***************************
 Variable_name: innodb_version
 Value: 1.1.8
 1 row in set (0.00 sec)
 
	  
	  
	mysql> show variables like 'log_error';                            #查看mysql错误日志存放路径
 +---------------+---------------------------+
 | Variable_name | Value                    |
 +---------------+---------------------------+
 | log_error    | /var/mysql/data/dba01.err |
 +---------------+---------------------------+
 1 row in set (0.00 sec)
 
	  
	mysql> system hostname;                                            #查看mysql主机名
 dba01
 
	mysql> show create table mysql.slow_log;                            #查看mysql慢查询日志结构
 +----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | Table    | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
 +----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | slow_log | CREATE TABLE `slow_log` (
 `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 `user_host` mediumtext NOT NULL,
 `query_time` time NOT NULL,
 `lock_time` time NOT NULL,
 `rows_sent` int(11) NOT NULL,
 `rows_examined` int(11) NOT NULL,
 `db` varchar(512) NOT NULL,
 `last_insert_id` int(11) NOT NULL,
 `insert_id` int(11) NOT NULL,
 `server_id` int(10) unsigned NOT NULL,
 `sql_text` mediumtext NOT NULL
 ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log' |
 +----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 1 row in set (0.00 sec)
 
	  
	mysql> show variables like 'log_output';                                    #查看mysql慢查询的格式
 +---------------+-------+
 | Variable_name | Value |
 +---------------+-------+
 | log_output    | FILE  |
 +---------------+-------+
 1 row in set (0.00 sec)
 
	mysql> set global log_output='TABLE';
 Query OK, 0 rows affected (0.00 sec)
 
	mysql> show variables like 'log_output';
 +---------------+-------+
 | Variable_name | Value |
 +---------------+-------+
 | log_output    | TABLE |
 +---------------+-------+
 1 row in set (0.00 sec)
 
	mysql> select sleep(10);
 +-----------+
 | sleep(10) |
 +-----------+
 |        0 |
 +-----------+
 1 row in set (10.00 sec)
 
	  
	  
	mysql> \q
 Bye
 
	#安装pcre
 [root@dba01 support-files]# cd
 [root@dba01 ~]# tar -zxvf pcre-8.31.tar.gz && cd pcre-8.31
 
	[root@dba01 pcre-8.31]# ./configure && make && make install
 
	#安装Nginx 
	[root@dba01 ~]# tar -zxvf nginx-1.2.7.tar.gz && cd nginx-1.2.7 
	[root@dba01 nginx-1.2.7]# /usr/sbin/groupadd www[root@dba01 nginx-1.2.7]# /usr/sbin/useradd -g www www
 [root@dba01 nginx-1.2.7]# ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
 [root@dba01 nginx-1.2.7]# make && make install
 [root@dba01 ~]# /usr/local/nginx/sbin/nginx
 /usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
 [root@dba01 ~]# ln -s /lib64/libpcre.so.0 /lib64/libpcre.so.1
 [root@dba01 ~]# /usr/local/nginx/sbin/nginx
 [root@dba01 ~]# netstat -lntp|grep nginx
 tcp        0      0 0.0.0.0:80                  0.0.0.0:*                  LISTEN      29508/nginx
 [root@dba01 ~]# /etc/init.d/iptables stop
 
	#安装php
 #备注:php5.3.3以后的版本源码不需要打php-fpm补丁,该补丁已经集成进5.3.3,在编译时,不需再--enable-fastcgi了,在php5.3.3中强制启用fastcgi.
 [root@dba01 nginx-1.2.7]# cd
 [root@dba01 ~]# tar -zxvf libmcrypt-2.5.8.tar.gz && cd libmcrypt-2.5.8
 
	[root@dba01 libmcrypt-2.5.8]# ./configure && make && make install 
	[root@dba01 libmcrypt-2.5.8]# cd
 [root@dba01 ~]# tar -zxvf mhash-0.9.9.9.tar.gz && cd mhash-0.9.9.9
 
	[root@dba01 mhash-0.9.9.9]# ./configure && make && make install 
	[root@dba01 mhash-0.9.9.9]# cd ..
 [root@dba01 ~]# tar -zxvf mcrypt-2.6.8.tar.gz && cd mcrypt-2.6.8
 config.status: executing default commands
 [root@dba01 mcrypt-2.6.8]# LD_LIBRARY_PATH=/usr/local/lib ./configure --prefix=/usr/local/
 [root@dba01 mcrypt-2.6.8]# make && make install
 
	  
	[root@dba01 mcrypt-2.6.8]# cd ..
 [root@dba01 ~]# tar -zxvf libiconv-1.14.tar.gz
 
	[root@dba01 ~]# cd libiconv-1.14[root@dba01 libiconv-1.14]# ./configure && make && make install
 [root@dba01 libiconv-1.14]# cd
 
	[root@dba01 ~]# useradd -g nginx nginx -s /sbin/nologin
 [root@dba01 ~]# tar -zxvf php-5.3.11.tar.gz
 
	[root@dba01 ~]# cd php-5.3.11[root@dba01 php-5.3.11]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap
 
	[root@dba01 php-5.3.11]# make ZEND_EXTRA_LIBS='-liconv'[root@dba01 php-5.3.11]# make install
 [root@dba01 php-5.3.11]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
 [root@dba01 php-5.3.11]# cp -rf php.ini-production /usr/local/php/etc/php.ini
 [root@dba01 php-5.3.11]# chmod +x /etc/init.d/php-fpm
 [root@dba01 php-5.3.11]# chkconfig php-fpm on
 [root@dba01 php-5.3.11]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
 
	[root@dba01 php-5.3.11]# cd
 
	[root@dba01 ~]# tar -xjvf eaccelerator-0.9.6.1.tar.bz2 
	[root@dba01 ~]# cd eaccelerator-0.9.6.1[root@dba01 eaccelerator-0.9.6.1]#  /usr/local/php/bin/phpize
 [root@dba01 eaccelerator-0.9.6.1]# ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config && make && make install
 
	
      (责任编辑:IT) |