LNMP架构介绍
和LAMP唯一不同的是,LNMP中指的是Ngix(类似于Apache的一种Web服务软件。
Ngix设计的初衷是提供一种快速、高效、多并发的Web服务软件。
在静态页面的处理上,Ngix比Apache更好一些,但是在动态页面的处理上,Ngix并不比apache有优势。
-
Ngix提供web服务,并且php是作为一个独立服务存在的,这个服务叫做php-fpm
-Ngix直接处理静态请求,动态请求会转发给php-fpm
它们之间的关系
MySQL安装
- 安装过程
由于之间已经搭建过了LAMP环境,那么现在安装mysql是需要删除之前的安装目录/usr/local/mysql和启动脚本/etc/init.d/mysqld
1 . 切换到/usr/local/src目录下
2 . 使用wget命令下载我们所需要的2进制免编译包
3 . tar命令解压缩下载后的二进制免编译包
4 . mv命令将解压缩后的目录移动并改名
mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql //在mv之前/usr/local/下是不能存在mysql目录的
5 . 切换到mysql目录下,使用ls命令查看是否存在多个子目录以及2个文件
6 .需要创建mysql用户和/data/目录
useradd mysql //创建用户为mysql
mkdir /data/ //创建此目录
7 .初始化的过程是为了mysql启动所需要的目录生成。
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql //前面是指定用户,后面是指定安装目录。
如果提示-bash: ./scripts/mysql_install_db: /usr/bin/perl: 坏的解释器: 没有那个文件或目录 //要安装perl-Data-Dumper包
如果提示Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
需要安装libaio-devel
完成后可以看过程中是否出现2次OK ,或执行echo $?命令来查看结果是否为0。0表示正确,1表示有错误。
8 .拷贝配置文件
cp support-files/my-default.cnf /etc/my.cnf
如果系统中已经有了/etc/my.cnf,可以不用拷贝。直接修改为如下这样即可
9 .拷贝启动脚本
cp support-files/mysql.server /etc/init.d/mysqld
再编辑/etc/init.d/mysql,定义2个地方即可
10 启动服务
/etc/init.d/mysqld start
11 查看服务是否已启动,可以查看进程
ps aux |grep mysqld
查看端口
netstat -lntp
12 . 将mysql加入到服务列表中去
chkconfig --add mysqld
设置为开机启动
chkconfig mysqld on
13 .启动与停止命令
service mysqld stop
service mysqld start
php安装
. 这里和LAMP的安装方法是有差异的,需要开启php-fpm服务的。在LNMP中PHP是独立的服务,与Ngix是没有关系的。
-
安装过程 :
1 . 切换到/usr/local/src目录下2 .下载php软件包
wget http://cn2.php.net/distributions/php-5.6.30.tar.bz2
3 .解压缩
tar -jxvf php-5.6.30.tar.bz2
4 . 切换到php-5.6.30目录下,如果之前编译过了,可以使用make clean命令来恢复到刚解压后的一个状态。
5 .执行以下命令
[root@chunt 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
在过程中根据提示需要可能需要安装几个包,不知道安装什么,也可以去bing上面搜索答案。
6 . 再次执行make && make install
7 .在/usr/local/php-fpm/下的sbin下有一个php-fpm的文件,该文件用来启动php-fpm服务的。
在/usr/local/php-fpm/下的log中有一个log(存放日志)和一个run(存放
pid)
8 . /usr/local/php-fpm/sbin/php-fpm -m
与/usr/local/php-fpm/bin/php -m
显示的信息是一样的,也可以加上-i选项。
其中/usr/local/php-fpm/sbin/php-fpm -t /测试配置文件语法的。
10 .配置文件
cp php.ini-production /usr/local/php-fpm/etc/php.ini
11 . 切换到cd /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 //定义sock文件权限
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
12 .切换到/usr/local/src//php-5.6.30下
cp sapi/fpm//init.d.php-fpm /etc/init.d/php-fpm
修改权限为755 chmod 755 /etc/init.d/php-fpm
加入服务列表,并设置为开机启动。
chkconfig --add php-fpm
chkconfig php-fpm on
13 启动服务
service php-fpm start //启动
Starting php-fpm done //启动成功