部署LNMP架构及其应用
部署企业LNMP架构
(一)首先安装nginx服务,具体请见另一篇关于nginx的博文。
(二)安装MySQL数据库
、安装前准备
[root@localhost ~]# rpm -e mysql-server --nodeps #卸载系统自带的rpm方式安装的mysql服务
[root@localhost ~]# rpm -e mysql --nodeps #卸载系统自带的rpm方式安装的mysql客户端
[root@localhost ~]# rpm -ivh ncurses-devel #安装光盘自带的基础包
[root@localhost ~]# useradd -M -s /sbin/nologin mysql
、安装cmake软件,代替./configure配置mysql程序
[root@localhost ~]# tar -zxvf cmake-2.8..tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/cmake-2.8./
[root@localhost cmake-2.8.]# ./configure && gmake && gmake install
、安装mysql软件
[root@localhost ~]# tar -zxvf mysql-5.5..tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/mysql-5.5./
[root@localhost mysql-5.5.]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DSYSCONFDIR=/etc -
DWITH_EXTRA_CHARSETS=all
[root@localhost mysql-5.5.]# make && make install
、安装后调整
[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql
[root@localhost ~]# cp /usr/src/mysql-5.5./support-files/my-medium.cnf /etc/my.cnf #创建配置文件
[root@localhost ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/#初始化数据库
[root@localhost ~]# ln -s /usr/local/mysql/bin/* /usr/local/bin/ #设置环境变量 [root@localhost ~]# cp /usr/src/mysql-5.5.22/support-files/mysql.server /etc/init.d/mysqld #添加系统服务
[root@localhost ~]# chmod +x /etc/init.d/mysqld
[root@localhost ~]# service mysqld restart
[root@localhost ~]# chkconfig --add mysqld
[root@localhost ~]# chkconfig mysqld on
[root@localhost ~]# netstat -anpt | grep mysqld #mysql的端口默认为3306
5、验证登陆
[root@localhost ~]# mysqladmin -u root -p password "123.com";history -c #设置mysql登陆密码后面接;history -c是为了安全起见清除命令历史记录
[root@localhost ~]# mysql -u root -p123.com #登陆mysql,"-p+密码"的方式不建议用,直接mysql -u root -p进入交互即可; 退出的话 quit或者ctrl+D
(三)PHP解析环境的安装
配置网页动静分离,解析PHP,有两种方法可以选择:1、使用PHP的FPM模块 2、将访问PHP页面的Web请求转交给Apache服务器去处理,今天我们介绍第一种。
FPM模块(FastCGI Process Manager,FastCGI进程管理器)模块,用来对PHP解析实例进行管理、优化解析效率。FastCGI将Http Server和动态脚本语言分离开,Nginx专门处理静态请求,转发动态请求,比如转给Tomcat或者Apache等,单台LNMP架构服务器转发动态请求通常使用FPM方式来解析PHP
1、安装PHP
~]# rpm -e php php-cli php-ldap php-common php-mysql --nodeps #将RPM方式安装的php及相关依赖包(如果已存在)卸载
~]# yum -y install gd libxml2-devel libjpeg-devel libpng-devel zlib-devel ~]# tar -zxvf libmcrypt-2.5.8.tar.gz -C /usr/src/ #安装数据加密工具
~]# cd /usr/src/libmcrypt-2.5.8/
~]# ./configure && make && make install
~]# ln -s /usr/local/lib/libmcrypt.* /usr/lib/ ~]# tar -zxvf mhash-0.9.9.9.tar.gz -C /usr/src/ #安装数据加密工具,依赖libmcrypt
~]# cd /usr/src/mhash-0.9.9.9/
~]# ./configure && make && make install
~]# ln -s /usr/local/lib/libmhash* /usr/lib/ ~]# tar -zxvf mcrypt-2.6.8.tar.gz -C /usr/src/ #安装数据加密工具,依赖libmhash
~]# cd /usr/src/mcrypt-2.6.8/
~]# ./configure && make && make install
~]# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH #如果./configure报错,执行此命令 ~]# tar -zxvf php-5.3.28.tar.gz -C /usr/src/
~]# cd /usr/src/php-5.3.28/
~]# ./configure --prefix=/usr/local/php --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php --enable-mbstring ~]#./configure --prefix=/usr/local/php --with-gd --with-zlib --with-
24 mysql=/usr/local/mysql/ --with-config-file-path=/usr/local/php --enable-mbstring --enable-fpm
25 --with-jpeg-dir=/usr/lib --with-mcrypt
26 ~]# make && make install
#----------------------------------------------------------------
--with-mcrypt: 加载数据加密等扩展工具支持
--with-mysql: 设置Mysql数据库服务程序的安装位置
--with-config-file-path: 设置PHP的配置文件php.ini将要存放的位置
--enable-mbstring: 启用多字节字符串功能,以便支持中文等代码
#----------------------------------------------------------------
2、配置PHP
~]#cp /usr/src/php-5.3.28/php.ini-development /usr/local/php/php.ini # php.ini-development开发板样例,用于学习测试php.ini-production生产版,用于实际运营
~]#vim /usr/local/php/php.ini
修改:
default_charset = "utf-8” #需修改 //设置默认字符集
file_uploads = On //允许通过PHP网页上传文件
upload_max_filesize = 2M //允许上传的文件大小限制
max_file_uploads = 20 //每个HTTP最多允许请求上传的文件数
post_max_size = 8M //每次通过表单post提交的数据量限制
short_open_tag = On #需修改 //允许识别PHP短语法标记,即<?…?>
~]#ln -s /usr/local/php/bin/* /usr/local/bin/
~]#ln -s /usr/local/php/sbin/* /usr/local/sbin/
3、添加优化模块ZendGuardLoader
ZendGuardLoader适用于PHP 5.3版本,若使用 PHP 5.2版本,应改为较早的ZendOptimizer.
~]#tar -zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz -C /usr/src/
~]#cp /usr/src/ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/ZendGuardLoader.so /usr/local/php/lib/php/
~]#vim /usr/local/php/php.ini
添加:
zend_extension=/usr/local/php/lib/php/ZendGuardLoader.so
zend_loader.enable=1
4、启用php-fpm进程
~]#useradd -M -s /sbin/nologin php
~]#cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
~]#vim php-fpm.conf
修改
pid = run/php-fpm.pid #确认pid文件位置
user = php
group = php
pm.max_children = 50 #最多空闲进程数
pm.start_servers = 20 #启动时开启的进程数
pm.min_spare_servers = 5 #最少空闲进程数
pm.max_spare_servers = 35
~]#/usr/local/sbin/php-fpm
~]#netstat -anpt | grep php-fpm #默认9000端口
~]#cp /usr/src/php-5.3.28/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm #这里和apache不同,apache调用php模块不需要php手动开启,但是LNMP架构需要开启php-fpm模块,也可以把开启此模块写在nginx脚本里,因此,一旦启动或关闭Nginx服务,php-fpm程序也会随之启动或关闭,不需要额外再启动或关闭php-fpm,具体方法请见文章末尾
~]#chmod +x /etc/init.d/php-fpm
~]#service php-fpm stop
~]#service php-fpm start
~]#chkconfig --add php-fpm
~]#chkconfig php-fpm on
(五)配置Nginx支持PHP解析
无论是将PHP页面交给LAMP服务器去解析,还是调用本机的php-fpm进行解析,都需要在"server {}"配置段中添加location 设置,以便指定当访问.php网页时候采取何种操作,配置完毕后别忘了重启Nginx
第一种方法:转交给其他Web服务器处理
使用的配置语句如下,例如,交给IP地址为 192.168.4.253的LAMP服务器处理,从而实现由Nginx负责静态页面,LAMP负责动态页面的动静分离效果。
~]#vim /usr/local/nginx/conf/nginx.conf
修改:
server {
……
location ~ \.php$ { #访问.php页面的配置段
proxy_pass http://192.168.4.253:80; #Apache服务器的监听地址
}
}
第二种方法:调用本机的php-fpm进程
使用的配置语句如下,在conf/目录下的fastcgi.conf 文件中已经包含必需的宏设置,可通过include语句添加进来,打开nginx.conf文件:
server {
……
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000; #修改,这是php-fpm的监听地址
fastcgi_index index.php; #PHP首页文件
include fastcgi.conf; #修改包括fastcgi.conf样本配置
}
}
(六)PHP页面访问测试,请参考LAMP架构
(七)把php-fpm服务控制写入nginx控制脚本的方法
分别在start和stop下进入相应语句即可,首先定义php-fpm的主程序文件和pid的路径
PROG_FPM="/usr/local/sbin/php-fpm"
PIDF_FPM="/usr/local/php5/var/run/php-fpm.pid"
然后调用两个变量
start)
$PROG_FPM
stop)
kill -s QUIT $(cat $PIDF_FPM)
部署LNMP架构及其应用的更多相关文章
- 部署LNMP架构Blog博客平台 ---惟净
部署环境:VM虚拟机 操作系统:CentOS-6.8-x64 IP地址:192.168.31.91Mysql数据库版本:5.6.34 Cmake软件包版本:3.5.2Nginx软件包版本:1.10.2 ...
- Ansible自动部署lnmp架构+上线电商
1.首先准备3台机器 ansible机器:192.168.52.34 目标主机:192.168.52.35 目标主机:192.168.52.36 2.关闭防火墙 [root@localhost ~]# ...
- docker部署LNMP架构
环境要求: IP hostname 192.168.1.1 node1 项目规划: 容器网段:172.16.10.0/24 NGINX:172.16.10.10 MySQL:172.16.10.20 ...
- 第20章 使用LNMP架构部署动态网站环境
章节概述: 本章节将从Linux系统的软件安装方式讲起,带领读者分辨RPM软件包与源码安装的区别.并能够理解它们的优缺点. Nginx是一款相当优秀的用于部署动态网站的服务程序,Nginx具有不错的稳 ...
- LNMP架构部署
第1章 部署LNMP架构步骤 1.1 ①部署Linux系统(OK) 基本优化完成(ip地址设置 yum源更新 字符集设置) 安全优化完成(iptables关闭 selinux关闭 /tmp/ 1777 ...
- Linux 系统中部署 LNMP 高可用负载均衡架构集群实现动态博客
(一)设计思路 高可用:keepalived 解决方案 负载均衡:(lvs)DR做轮询,需要一个调度器,后端节点两个(部署nginx动态博客),通过一个vip去访问动态博客 后端节点需要部署动态博客作 ...
- 企业级LNMP架构搭建实例(基于Centos6.x)
1.1 部署LNMP架构说明 1.1.1 LNMP架构内容 01.部署linux系统 02.部署nginx网站服务 03.部署mysql数据库服务 04.部署php动态解析服务 1.1.2 配置LNM ...
- 用lnmp架构部署wordpress网站详细步骤
用lnmp架构部署wordpress网站 ①.下载和上传网站代码 用winscp或者xftp, 或者xshell下执行rz命令进行上传网站的包文件. ②.解压程序代码,并将程序代码保存到站点目录,并进 ...
- 《Linux就该这么学》培训笔记_ch20使用LNMP架构部署动态网站环境
<Linux就该这么学>培训笔记_ch20使用LNMP架构部署动态网站环境 文章最后会post上书本的笔记照片. 文章主要内容: 源码包程序 LNMP动态网站架构 配置Mysql服务 配置 ...
随机推荐
- SaltStack 运行机理特点
SaltStack 运行机理特点 1.实时通讯(REAL-TIME COMMUNICATION) 所有 Salt minions 接收命令都是同时的,这意味着控制 10 个或者 10000 个系统所消 ...
- 144. Binary Tree Preorder Traversal (Tree, Stack)
Given a binary tree, return the preorder traversal of its nodes' values. For example: Given binary t ...
- ubuntu18(笔记本) faster-rcnn实例程序运行
luo@luo-ThinkPad-W540:TensorflowProject$ source activate flappbird (flappbird) luo@luo-ThinkPad-W540 ...
- sourcetree免注册方法
step1: https://www.sourcetreeapp.com/官网下载windows版软件 step2: 右键-->以管理员身份运行,便安装成功了 step3: 安装好之后会有这么一 ...
- Asp.net相关知识和经验的碎片化记录
1.解决IIS7.0下“HTTP 错误 404.15 - Not Found 请求筛选模块被配置为拒绝包含的查询字符串过长的请求”问题 方案1:在程序的web.config中system.web节点里 ...
- MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error
今天购物车突然不能添加了,发现redis报错了,重启了一下好了,一会又报错了. 错误信息: MISCONF Redis is configured to save RDB snapshots, but ...
- unittest测试框架详谈及实操(五)
测试报告——生成HTML格式的测试报告 前面的实例输出的所有测试结果都是以命令行日志的方式展示,不止于难看,但也不适合直接把那样的测试结果截图发给相关人员,尤其是领导.这时需要更加友好的测试结果,既能 ...
- CSS中的三种基本的定位机制(普通流、定位、浮动)
一.普通流 普通流中元素框的位置由元素在XHTML中的位置决定.块级元素从上到下依次排列,框之间的垂直距离由框的垂直margin计算得到.行内元素在一行中水平布置. 普通流就是html文档中的元素如块 ...
- APUE(3)---文件I/O (3)
十二.函数sync.fsync和fdatasync 延迟写:传统的Unix系统在内核中设有缓冲区或页高速缓冲,大多数磁盘I/O都通过缓冲区进行,当我们向文件写入数据时,内核通常先将数据复制到缓冲区,然 ...
- airpods2代连接macbook失败
更新至最新系统(10.14.4),更新完毕,重启电脑再次连接即可. 参考连接: http://dq.tieba.com/p/6082366443