LNMP架构介绍

和LAMP唯一不同的是,LNMP中的N指的是Nginx(类似于Apache的一种web服务软件)。目前这种环境的应用也非常多。Nginx设计的初衷是提供一种快速、高效、多并发的Web服务软件。在静态页面的处理上,Nginx较Apache更胜一筹,但在动态页面的处理上,Nginx并不比Apache有优势。但是目前还是有很多爱好者对Nginx比较热衷。随着Nginx技术的不断成熟,它在Web服务软件领域的地位也会越来越高。
并且php是作为一个独立服务存在的,这个服务叫做php-fpm。Nginx直接处理静态请求,动态请求会转发给php-fpm。

MySQL安装

1. 删除之前安装的mysql

[root@gary-tao ~]# ps aux |grep mysql  //查看服务是否启动
root 2233 0.0 0.0 112680 972 pts/0 R+ 19:16 0:00 grep --color=auto mysql
[root@gary-tao ~]# rm -rf /usr/local/mysql
[root@gary-tao ~]# rm -rf /etc/init.d/mysqld

2.安装mysql过程

[root@gary-tao ~]# cd /usr/local/src/
[root@gary-tao ~]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@gary-tao src]# tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@gary-tao src]# mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql
[root@gary-tao src]# cd /usr/local/mysql/
[root@gary-tao mysql]# ls
bin COPYING data docs include lib man mysql-test README scripts share sql-bench support-files
[root@gary-tao mysql]# ls /data/
mariadb mydata mysql wwwroot
[root@gary-tao mysql]# id mysql
uid=1000(mysql) gid=1000(mysql) 组=1000(mysql)
[root@gary-tao mysql]# rm -rf /data/mysql/* //由于之前创建个,删除
[root@gary-tao mysql]# useradd mysql
[root@gary-tao mysql]# mkdir /data/
[root@gary-tao mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
[root@gary-tao mysql]# echo $?
0
[root@gary-tao mysql]# cp support-files/my-default.cnf /etc/my.cnf
[root@gary-tao mysql]# vim /etc/my.cnf 定义如下:
datadir=/data/mysql
socket=/tmp/mysql.sock [root@gary-tao mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@gary-tao mysql]# vim /etc/init.d/mysqld 定义如下:
basedir=/usr/local/mysql
datadir=/data/mysql [root@gary-tao mysql]# /etc/init.d/mysqld start //启动mysql
Starting MySQL.Logging to '/data/mysql/gary-tao.err'.
. SUCCESS!
[root@gary-tao mysql]# ps aux |grep mysql //查看服务是否启动
root 2317 0.1 0.1 113268 1592 pts/0 S 19:40 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/gary-tao.pid
mysql 2452 4.1 45.1 973060 451828 pts/0 Sl 19:40 0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/gary-tao.err --pid-file=/data/mysql/gary-tao.pid --socket=/tmp/mysql.sock
root 2480 0.0 0.0 112680 976 pts/0 R+ 19:41 0:00 grep --color=auto mysql
[root@gary-tao mysql]# chkconfig --add mysqld //把启动脚本加入系统服务
[root@gary-tao mysql]# chkconfig mysqld on //设定开机启动mysql
[root@gary-tao mysql]# service mysqld start //启动服务
Starting MySQL SUCCESS!

PHP安装

Nginx的PHP安装和上一章的PHP安装是有区别的,因为Nginx中的PHP是以fastcgi的方式给合Nginx的,可以理解为Nginx代理了PHP的fastcgi,而httpd是把PHP作为自己的模块来调用的。

1. 因为之前安装过php,这次重新安装的话直接在源码包目录下执行命令:make clean,删除之前编译过的文件内容,回到之前的解压的状态。
[root@gary-tao ~]# cd /usr/local/src/
[root@gary-tao src]# ls
apr-1.6.3 apr-util-1.6.1.tar.gz mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz php-5.6.30.tar.gz phpredis-develop
apr-1.6.3.tar.gz httpd-2.4.29 mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz php-7.1.6 phpredis-develop.zip
apr-util-1.6.1 httpd-2.4.29.tar.gz php-5.6.30 php-7.1.6.tar.bz2
[root@gary-tao src]# cd php-5.6.30
[root@gary-tao php-5.6.30]# ls
acinclude.m4 configure.in libs makerpm php.ini-production README.STREAMS stamp-h.in
aclocal.m4 CREDITS libtool meta_ccld README.EXT_SKEL README.SUBMITTING_PATCH stub.c
build ext LICENSE missing README.GIT-RULES README.TESTING tests
buildconf EXTENSIONS ltmain.sh mkinstalldirs README.input_filter README.TESTING2 travis
buildconf.bat footer main modules README.MAILINGLIST_RULES README.UNIX-BUILD-SYSTEM TSRM
CODING_STANDARDS generated_lists makedist netware README.md README.WIN32-BUILD-SYSTEM UPGRADING
config.guess genfiles Makefile NEWS README.namespaces run-tests.php UPGRADING.INTERNALS
config.log header Makefile.frag pear README.NEW-OUTPUT-API sapi vcsclean
config.nice include Makefile.fragments php5.spec README.PARAMETER_PARSING_API scripts win32
config.status INSTALL Makefile.gcov php5.spec.in README.REDIST.BINS server-tests-config.php Zend
config.sub install-sh Makefile.global php.gif README.RELEASE_PROCESS server-tests.php
configure libphp5.la Makefile.objects php.ini-development README.SELF-CONTAINED-EXTENSIONS snapshot
[root@gary-tao php-5.6.30]# make clean
find . -name \*.gcno -o -name \*.gcda | xargs rm -f
find . -name \*.lo -o -name \*.o | xargs rm -f
find . -name \*.la -o -name \*.a | xargs rm -f
find . -name \*.so | xargs rm -f
find . -name .libs -a -type d|xargs rm -rf
rm -f libphp5.la sapi/cli/php sapi/cgi/php-cgi libphp5.la modules/* libs/*
备注,如果是第一次安装的话按如下操作即可:
2.创建账号

该账号用来运行php-fpm服务的,在LNMP环境中,PHP以一个服务php-fpm的形式出现,独立存在于Linux系统中,方便管理。

[root@gary-tao php-5.6.30]# useradd -s /sbin/nologin php-fpm
3.安装PHP
[root@gary-tao 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

编译参数和跟之前的文章不同,这里多了一个--enable-fpm,如果不加该参数,则不会有php-fpm执行文件生成,更不能启动php-fpm服务。

报错:

解决办法:

yum install -y libcurl-devel

注意:如果是第一次安装PHP,会有很多依赖包需要安装,这时你看错误提示,缺少什么包就安装什么包。
4.编译PHP
[root@gary-tao php-5.6.30]# make

[root@gary-tao php-5.6.30]# make clean && make
报错如下图:

解决办法:

#vim Makefile //在大概105行,-lcrypt后面加“-lpthread"

解决办法:

#make clean && make

5.安装PHP
[root@gary-tao php-5.6.30]# make install
6.修改配置文件:
[root@gary-tao php-5.6.30]# ls /usr/local/php-fpm/etc/
pear.conf php-fpm.conf.default
[root@gary-tao php-5.6.30]# cp php.ini-production /usr/local/php-fpm/etc/php.ini //拷贝配置文件 (production是生成环境下用的,development是开发环境下用的)
[root@gary-tao php-5.6.30]# ls /usr/local/php-fpm/etc/
pear.conf php-fpm.conf.default php.ini
[root@gary-tao etc]# vim /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时这行才生效,用来定义sock文件的权限是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
7.检测配置
[root@gary-tao etc]# /usr/local/php-fpm/sbin/php-fpm -t //报以下是正常的。
[02-Jan-2018 20:02:02] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
8.拷贝启动脚本
[root@gary-tao etc]# cd /usr/local/src/php-
php-5.6.30/ php-5.6.30.tar.gz php-7.1.6/ php-7.1.6.tar.bz2
[root@gary-tao etc]# cd /usr/local/src/php-5.6.30/ //进入到源码包目录
[root@gary-tao php-5.6.30]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm //拷贝启动脚本到指定目录下
9.修改启动脚本权限及添加服务到开机启动
[root@gary-tao php-5.6.30]# chmod 755 /etc/init.d/php-fpm //更改权限
[root@gary-tao php-5.6.30]# chkconfig --add php-fpm //
[root@gary-tao php-5.6.30]# chkconfig php-fpm on //设置开机启动
[root@gary-tao etc]# service php-fpm start //启动php命令
Starting php-fpm done
[root@gary-tao etc]# ps aux |grep php-fpm //查看进程
root 58306 0.1 0.4 123560 4968 ? Ss 20:38 0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm 58307 0.0 0.4 123560 4704 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58308 0.0 0.4 123560 4704 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58309 0.0 0.4 123560 4704 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58310 0.0 0.4 123560 4704 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58311 0.0 0.4 123560 4708 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58312 0.0 0.4 123560 4708 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58313 0.0 0.4 123560 4708 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58314 0.0 0.4 123560 4708 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58315 0.0 0.4 123560 4708 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58316 0.0 0.4 123560 4708 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58317 0.0 0.4 123560 4708 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58318 0.0 0.4 123560 4708 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58319 0.0 0.4 123560 4712 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58320 0.0 0.4 123560 4712 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58321 0.0 0.4 123560 4712 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58322 0.0 0.4 123560 4712 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58323 0.0 0.4 123560 4712 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58324 0.0 0.4 123560 4712 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58325 0.0 0.4 123560 4712 ? S 20:38 0:00 php-fpm: pool www
php-fpm 58326 0.0 0.4 123560 4712 ? S 20:38 0:00 php-fpm: pool www
root 58329 0.0 0.0 112680 976 pts/0 R+ 20:38 0:00 grep --color=auto php-fpm

linux的LNMP架构介绍、MySQL安装、PHP安装的更多相关文章

  1. Linux centosVMware LNMP架构介绍、MySQL安装、PHP安装、Nginx介绍

    一. LNMP架构介绍 和LAMP不同的是,提供web服务的是Nginx 并且php是作为一个独立服务存在的,这个服务叫做php-fpm Nginx直接处理静态请求,动态请求会转发给php-fpm   ...

  2. LNMP架构介绍 MySQL安装 PHP安装 Nginx介绍

  3. LNMP架构介绍、MySQL和PHP安装、Nginx介绍

     6月6日任务  12.1 LNMP架构介绍12.2 MySQL安装12.3/12.4 PHP安装12.5 Nginx介绍 扩展Nginx为什么比Apache Httpd高效:原理篇 http://w ...

  4. LNMP架构介绍与部署

    一.LNMP架构介绍 LNMP:Linux系统下Nginx+MySQL+PHP这种网站服务器架构.Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器.My ...

  5. Linux centos7 LAMP架构介绍、 MySQL、MariaDB介绍、MySQL安装

    一.LAMP架构介绍 为Linux+Apache(httpd)+MySQL+PHP简写,把后三者安装在Linux Apache是最常用的的web服务软件,MySQL为小型的数据库存储软件,PHP为脚本 ...

  6. lnmp架构、mysql的安装、php的安装、nginx相关

    1.lnmp架构 2.mysql的安装: mysql5.6自动安装脚本: yum install perl-Data-Dumper.x86_64 libaio.x86_64 libaio-devel. ...

  7. linux中LNMP架构和location用法

    location 使用Nginx Location可以控制访问网站的路径,但一个server可以有多个location配置, 多个location的优先级该如何区分 location匹配符号 匹配符 ...

  8. Linux学习之CentOS6下Mysql数据库的安装与配置

    转自:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得搭建好j ...

  9. linux下的python3,virtualenv,Mysql,nginx,redis安装配置

    Mysql安装和使用:点我 Redis安装和使用:点我 centos7安装Python3以及tab补全键的使用:点我 Linux下的virtualenv:点我 nginx的安装和使用:点我

随机推荐

  1. maven项目红叉问题

    maven项目红叉问题,有的时候是因为代码报错,有的时候是因为JDK的缘故,比如新建Maven项目,默认JDK为5,这时你在pom.xml配置了JDK为8.这时项目就报错了,就需要你update pr ...

  2. QT中子目录调用另一个子目录

    解决办法: 第一:建立一个subdirs项目,子项目管理 第二:添加二个子项目例如:A子项目   B子项目 第三:现在A子项目调用 B子项目 在A子项目中:右键>添加库>内部库(把A添加进 ...

  3. DIYer最担心的事来了!CPU降价彻底无望

    12月27日,IDC发布2019年中国PC市场十大预测.IDC指出,2018年全年中国PC市场预计最终销售为5200万台左右,下滑了3.4%.2019年中国PC市场会处于一种习惯性艰难期,但是市场也不 ...

  4. PAT A1106 Lowest Price in Supply Chain (25 分)——树的bfs遍历

    A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone invo ...

  5. 广告牌LED灯阵

    大家都知道广告牌里面原来都是灯管,现在开始更换成LED灯了,下面是我在现场拍的图片: 下面这个图片是LED灯条,铝基板打印电路,TM1812驱动,该IC可以接受4组24位数据,然后转发数据(https ...

  6. 学习CSS布局 - 没有布局

    如果你只想把所有内容都塞进一栏里,那么不用设置任何布局也是OK的. 然而,如果用户把浏览器窗口调整的很大,这时阅读网页会非常难受: 读完每一行之后,你的视觉焦点要从右到左移动一大段距离. 试着调整下浏 ...

  7. odoo学习之弹框显示

    按条件隐藏: <xpath expr="//group[1]" position="attributes"> <attribute name= ...

  8. Luogu3220 HNOI2012 与非 数位DP

    传送门 题意:给出$N$个范围在$[0,2^k-1]$的整数,定义位运算$NAND$为位运算$AND$的逆运算,求$[L,R]$中有多少数能成为若干个前面给出的整数.若干括号和$NAND$运算组成的表 ...

  9. MonkeyRunner 模块

    用python编写脚本   1.导入模块: MonkeyRunner MonkeyDevice MonkeyImage ps:如果给导入模块起别名,就应该使用别名,而不能使用原名,否则会出现错误. f ...

  10. 如何使用串口来给STM32下载程序

    前言 第一次学习STM32的时候,不知道有调试器这个东西,所以一直是通过串口来给STM32下载程序,下载速度也还算可以,一般是几秒钟完成.后来用了调试器,可以直接在Keil环境下进行下载,而且还可以进 ...