#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.Imagick
PHP中Imagick类,提供了比GD库函数更为方便和强大的图片处理功能。由于工作关系研究了一阵,略有收获,不敢独乐,特与大家分享。使用Imagick类,需要PHP安装p_w_picpathmagick扩展模块。其实就是linux命令行中增加了convert命令。最有一个图片压缩的函数只能针对jpeg图片,但是我用PHP中Imagick类提供的图片质量压缩不能达到压缩功能,目前尚未解决。所以用命令行解决。
8.Memcache
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
9.ImageMagick
ImageMagick是一套功能强大、稳定而且免费的工具集和开发包,可以用来读、写和处理超过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-perftools
google-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-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
[root@dba01 eaccelerator-0.9.6.1]# cd ..
[root@dba01 ~]# tar zxvf PDO_MYSQL-1.0.2.tgz
[root@dba01 ~]# cd PDO_MYSQL-1.0.2
[root@dba01 PDO_MYSQL-1.0.2]# /usr/local/php/bin/phpize
[root@dba01 PDO_MYSQL-1.0.2]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql && make && make install && cd
[root@dba01 ~]# yum -y install libevent libevent-devel
[root@dba01 ~]# tar -zxvf memcached-1.2.5.tar.gz
[root@dba01 ~]# cd memcached-1.2.5
[root@dba01 memcached-1.2.5]# ./configure --prefix=/usr/local/memcache && make && make install && cd
[root@dba01 ~]# tar -zxvf memcache-2.2.5.tgz
[root@dba01 ~]# cd memcache-2.2.5
[root@dba01 memcache-2.2.5]# /usr/local/php/bin/phpize
[root@dba01 memcache-2.2.5]# ./configure --with-php-config=/usr/local/php/bin/php-config && make && make install && cd
[root@dba01 ~]# sed -i 's#output_buffering = Off#output_buffering = On#' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i "s#; always_populate_raw_post_data = On#always_populate_raw_post_data = On#g" /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i "s#; cgi.fix_pathinfo=0#cgi.fix_pathinfo=0#g" /usr/local/php/etc/php.ini
[root@dba01 ~]# mkdir -p /usr/local/eaccelerator_cache
[root@dba01 ~]# sed -i '1290a [eaccelerator]' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1291a zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1292a eaccelerator.shm_size="64"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1293a eaccelerator.cache_dir="/usr/local/eaccelerator_cache"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1294a eaccelerator.enable="1"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1295a eaccelerator.optimizer="1"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1296a eaccelerator.check_mtime="1"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1297a eaccelerator.debug="0"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1298a eaccelerator.filter=""' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1299a eaccelerator.shm_max="0"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1300a eaccelerator.shm_ttl="3600"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1301a eaccelerator.shm_prune_period="3600"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1302a seaccelerator.shm_only="0"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1303a eaccelerator.compress="1"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '1304a eaccelerator.compress_level="9"' /usr/local/php/etc/php.ini
[root@dba01 ~]# sed -i '58s###g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# sed -i '59s###g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# sed -i '63s###g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# sed -i '66s###g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# sed -i '63s#nobody#nginx#g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# sed -i '66s#nobody#nginx#g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# sed -i '79s#5#128#g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# sed -i '113s#1024#20480#g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# sed -i '132s#500#1024#g' /usr/local/php/etc/php-fpm.conf
[root@dba01 ~]# ulimit -SHn 65535
[root@dba01 ~]# /usr/local/php/sbin/php-fpm
[root@dba01 ~]# netstat -lntp|grep php-fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 18005/php-fpm
[root@dba01 ~]# mkdir -p /var/www/memcache;mkdir -p /var/www/bbs
[root@dba01 ~]# cat /usr/local/nginx/conf/nginx.conf
user nginx nginx;
worker_processes 8;
error_log /app/logs/nginx_error.log crit;
pid /usr/local/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 20480;
}
http
{
include mime.types;
default_type application/octet-stream;
#charset gb2312;
log_format wikilogs '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
log_format bbslogs '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#limit_zone crawler $binary_remote_addr 10m;
server
{
listen 80;
server_name wiki.jc.com;
index index.html index.htm index.php;
root /var/www/memcache;
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}
access_log /app/logs/wikilogs.log wikilogs;
}
server
{
listen 80;
server_name www.jc.com;
index index.html index.htm index.php;
root /var/www/bbs;
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}
access_log /app/logs/bbslogs.log bbslogs;
}
}
[root@dba01 ~]# vim /usr/local/php/etc/php.ini +1306 添加如下:
[memcache]
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"
extension=memcache.so
[root@dba01 ~]# cd /etc/init.d/
[root@dba01 init.d]# rz -y
rz waiting to receive.
zmodem trl+C ȡ
100% 1 KB 1 KB/s 00:00:01 0 Errors
[root@dba01 init.d]# dos2unix nginx
dos2unix: converting file nginx to UNIX format ...
[root@dba01 init.d]# chmod 755 nginx
[root@dba01 init.d]# cat nginx
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemin
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/logs/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
lockfile=/var/lock/subsys/nginx
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
[root@dba01 init.d]# mkdir -p /app/logs
[root@dba01 init.d]# /etc/init.d/nginx stop
Stopping nginx: [ OK ]
[root@dba01 init.d]# netstat -lntp|grep nginx
[root@dba01 init.d]# /etc/init.d/nginx restart
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
Stopping nginx: [FAILED]
Starting nginx: [ OK ]
[root@dba01 init.d]# netstat -lntp|grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 18084/nginx
[root@dba01 init.d]# cd /var/www/memcache/
[root@dba01 memcache]# cat phpinfo.php
phpinfo();
?>
[root@dba01 memcache]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:CA:47:D4
inet addr:192.168.1.118 Bcast:255.255.255.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feca:47d4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:263728 errors:0 dropped:0 overruns:0 frame:0
TX packets:172759 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:294558603 (280.9 MiB) TX bytes:19137975 (18.2 MiB)
测试:http://192.168.1.118/phpinfo.php