架构原理:
LAMP=linux apache mysql php
LNMP=linux nginx mysql php
一、初入LNMP
当我们讲LAMP的时候PHP是作为一个模块在Apache中,但是在LNMP中,PHP是一个服务,当用户请求的时候nginx会把它交给php 然后对mysql进行交互!像这种静态的,例如图片或者html,nginx会直接处理,从而加快访问速度! 谈到速度,其实如果一个普通的站点你是看不到什么效果的,但是如果要是访问一个纯静态站点,nginx就能体现出它的优势!(其实我的站点就是nginx,因为多数是静态的文章 图片)nginx的另外一个优势得益于它的高并发支持!
二、安装mysql
代码语言:javascript复制安装mysql的配置,其实在做LAMP的时候已经做过了,一模一样的编译配置。就直接show配置: LAMP安装
cd /usr/local/src
wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql
cd /usr/local/mysql
useradd mysql
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
cp support-files/my-default.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
vi /etc/init.d/mysqld
vim编辑下面两行basedir和datadir配置
basedir=/usr/local/mysql
datadir=/data/mysql
/etc/init.d/mysqld start
三、PHP安装
和LAMP安装PHP方法有差别,需要开启php-fpm服务
3.1 配置并编译:
代码语言:javascript复制cd /usr/local/src/
wget http://cn2.php.net/distributions/php-5.6.30.tar.gz
tar zxf php-5.6.30.tar.gz
useradd -s /sbin/nologin php-fpm
cd php-5.6.30
./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl
--prefix=指定安装位置
--with-config-file-path=指定配置文件目录
--enable-fpm=启动fpm服务
--with-fpm-user=指定用户
--with-fpm-group=指定用户组
--with-mysql=指定mysql的路径
如下几乎都是。
[当然在编译的时候也会出现错误,参照之前的错误安装解析即可](http://www.okay686.cn/?p=402)
echo $?
make && make install
echo $?
3.2 PHP信息:
安装下来之后我们发现其实比之前安装PHP要多了两个目录 sbin 和 var
sbin:实际上就是启动php-fpm服务的目录
var:实际上就是存放PHP日志的,当然这个我们可以指定的
查看PHP信息:
代码语言:javascript复制/usr/local/php-fpm/sbin/php-fpm -i
查看PHP模块:
代码语言:javascript复制/usr/local/php-fpm/sbin/php-fpm -m
测试PHP配置语法:
代码语言:javascript复制/usr/local/php-fpm/sbin/php-fpm -t
3.3 配置PHP:
代码语言:javascript复制cp php.ini-production /usr/local/php-fpm/etc/php.ini
//牢记此命令,后期会经常使用到
vi /usr/local/php-fpm/etc/php-fpm.conf
//写入如下内容
[global]
pid = /usr/local/php-fpm/var/run/php-fpm.pid
error_log = /usr/local/php-fpm/var/log/php-fpm.log
[www]
listen = /tmp/php-fcgi.sock
listen.mode = 666
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
[global]=定义全局参数
[www]=自定义模块
listen = 监听的地址
或者可以使用这样的方式↓
listen = 127.0.0.1:9000 (port默认为9000,也可以更改)
listen.mode = 666 用来定义listen = /tmp/php-fcgi.sock的权限,只有这个sock打开的情况下才生效!
//配置启动脚本
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
service php-fpm start
ps aux |grep php-fpm
四、Nginx
官网:nginx.org
因为nginx处理静态文件的能力要比apache好很多,所以很多企业在建站的时候一般都是用java写的,然后会选择tomcat,但是tomcat处理静态文件的能力不是太好就会叠加选择nginx。
nginx特点:
- 体积小
- 处理能力强
- 并发高
- 可扩展性好
Nginx应用场景:
- web服务
- 反向代理
- 负载均衡
Nginx著名分支,淘宝基于Nginx开发的Tengine,使用上和Nginx一致,服务名,配置文件名都一样,和Nginx的最大区别在于Tenging增加了一些定制化模块,在安全限速方面表现突出,另外它支持对js,css合并
Nginx核心 lua相关的组件和模块组成了一个支持lua的高性能web容器openresty,参考http://jinnianshilongnian.iteye.com/blog/2280928