12.1 LNMP架构介绍
LNMP和LAMP不同的是,提供web服务的是Nginx。
并且php是作为一个独立的服务存在,这个服务叫做php-fpm。
Nginx直接处理静态请求,动态请求会转发给php-fpm。
Nginx对于一些静态元素比较多的网站访问速度会比apache快很多。并发用户数量也比apache要多。这重要得益于Nginx底层设计的一些逻辑关系和apache不一样。
12.2 MySQL安装
mysql的安装和LAMP中mysql安装步骤一样。
1、删除之前安装的mysql。
2、安装mysql服务,二进制源码包安装。
tar zxvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz 解压二进制源码包。
mv mysql-5.6.40-linux-glibc2.12-x86_64 /usr/local/mysql 移动到mysql目录下。
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 初始化生成相应的文件目录。
cp support-files/my-default.cnf /etc/my.cnf 拷贝配置文件到etc目录下。
cp support-files/mysql.server /etc/init.d/mysqld 拷贝mysql服务文件到/etc/init.d目录下。
配置/etc/my.cnf文件
datadir=/data/mysql
socket=/tmp/mysql.sock
配置/etc/init.d/mysqld 服务文件
basedir=/usr/local/mysql
datadir=/data/mysql
把mysql 服务加入到开机启动中,开启mysql服务。
12.3-12.4 PHP安装
LNMP中的php是一个单独存在的服务,所以安装和LAMP中安装php不一样。需要开启php-fpm服务。
1、php服务安装
首先删除之前安装的php,进入php源码包:make clean。
创建php-fpm用户:useradd -s /sbin/nologin php-fpm。
初始化配置:./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
其中:
--enable-fpm 启动fpm服务,必须加上。
编译安装php-fpm:make && make install
安装完成。
2、相关配置
查看安装目录,ls /usr/local/php-fpm/。
[root@liang-00 run]# ls /usr/local/php-fpm/ bin etc include lib php sbin var
其中sbin目录中存放着php-fpm启动文件;var目录下存放着日志log目录和run(存放pid)目录。
/usr/local/php-fpm/sbin/php-fpm -m 查看模块;
/usr/local/php-fpm/sbin/php-fpm -i 查看关于php-fpm信息;
/usr/local/php-fpm/sbin/php-fpm -t 查看语法的正确性。
php-fpm配置文件添加。
cp php.ini-production /usr/local/php-fpm/etc/php.ini
配置php-fpm.conf文件配置,/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 #监听的socket #listen = 127.0.0.1:9000 #还可以设置成监听ip和端口,Nginx和ph-fpm在一台linux中,我们可以用设备lo地址,9000为默认端口。 listen.mode = 666 #当监听的是socket时 listen.mode 才起作用。 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
php-fpm启动服务文件的添加。
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
检查配文件正确性/usr/local/php-fpm/sbin/php-fpm -t ,启动php-fpm服务。
12.5 Nginx介绍
Nginx官网 nginx.org。
Nginx应用场景:web服务、反向代理、负载均衡。
Nginx著名分支,淘宝基于Nginx开发的Tengine,使用上和Nginx一致,服务名,配置文件名都一样,和Nginx的最大区别在于Tenging增加了一些定制化模块,在安全限速方面表现突出,另外它支持对js,css合并。
Nginx核心+lua相关的组件和模块组成了一个支持lua的高性能web容器openresty,参考http://jinnianshilongnian.iteye.com/blog/2280928
Nginx的最新版本为:1.14,做实验用时1.12。
12.6 Nginx安装
1、Nginx下载、安装。
下载:wget http://nginx.org/download/nginx-1.12.1.tar.gz
解包:tar zxvf nginx-1.12.1.tar.gz
初始化配置,编译安装。
./configure --prefix=/usr/local/nginx
make && make install
2、Ngnix启动脚本配置。
vim /etc/init.d/nginx,配置内容为以下地址中的内容:https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/etc_init.d_nginx
更改启动脚本权限
chmod 755 /etc/init.d/nginx
加入启动服务,开机启动。
chkconfig --add nginx
chkconfig nginx on
3、配置文件编辑。
vim /usr/local/nginx/conf/nginx.conf,内容为以下地址中:https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/nginx.conf
其中:
user nobody nobody 启动nginx服务的用户;
worker_processes 2 启动时的子进程个数;
worker_rlimit_nofile 51200 nginx最多打开文件数;
events
{
use epoll; 使用的模式;
worker_connections 6000; 最大连接数;
}
server部分,相当于apache中的 Virtual Host。
其中:
location ~ \.php$
{
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fcgi.sock; 监听的php模块socket,也可以设置成:fastcgi_pass 127.0.0.1:9000。
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
}
4、启动nginx服务。
首先检查配置文件是否有错误:/usr/local/nginx/sbin/nginx -t
启动nginx:/etc/init.d/nginx start
5、测试nginx。
访问nginx服务默认打开的是 /usr/local/nginx/html/index.html文件。
访问自定义内容:
vim /usr/local/nginx/html/1.php
curl 192.168.37.200/1.php