部署企业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架构及其应用的更多相关文章

  1. 部署LNMP架构Blog博客平台 ---惟净

    部署环境:VM虚拟机 操作系统:CentOS-6.8-x64 IP地址:192.168.31.91Mysql数据库版本:5.6.34 Cmake软件包版本:3.5.2Nginx软件包版本:1.10.2 ...

  2. Ansible自动部署lnmp架构+上线电商

    1.首先准备3台机器 ansible机器:192.168.52.34 目标主机:192.168.52.35 目标主机:192.168.52.36 2.关闭防火墙 [root@localhost ~]# ...

  3. docker部署LNMP架构

    环境要求: IP hostname 192.168.1.1 node1 项目规划: 容器网段:172.16.10.0/24 NGINX:172.16.10.10 MySQL:172.16.10.20 ...

  4. 第20章 使用LNMP架构部署动态网站环境

    章节概述: 本章节将从Linux系统的软件安装方式讲起,带领读者分辨RPM软件包与源码安装的区别.并能够理解它们的优缺点. Nginx是一款相当优秀的用于部署动态网站的服务程序,Nginx具有不错的稳 ...

  5. LNMP架构部署

    第1章 部署LNMP架构步骤 1.1 ①部署Linux系统(OK) 基本优化完成(ip地址设置 yum源更新 字符集设置) 安全优化完成(iptables关闭 selinux关闭 /tmp/ 1777 ...

  6. Linux 系统中部署 LNMP 高可用负载均衡架构集群实现动态博客

    (一)设计思路 高可用:keepalived 解决方案 负载均衡:(lvs)DR做轮询,需要一个调度器,后端节点两个(部署nginx动态博客),通过一个vip去访问动态博客 后端节点需要部署动态博客作 ...

  7. 企业级LNMP架构搭建实例(基于Centos6.x)

    1.1 部署LNMP架构说明 1.1.1 LNMP架构内容 01.部署linux系统 02.部署nginx网站服务 03.部署mysql数据库服务 04.部署php动态解析服务 1.1.2 配置LNM ...

  8. 用lnmp架构部署wordpress网站详细步骤

    用lnmp架构部署wordpress网站 ①.下载和上传网站代码 用winscp或者xftp, 或者xshell下执行rz命令进行上传网站的包文件. ②.解压程序代码,并将程序代码保存到站点目录,并进 ...

  9. 《Linux就该这么学》培训笔记_ch20使用LNMP架构部署动态网站环境

    <Linux就该这么学>培训笔记_ch20使用LNMP架构部署动态网站环境 文章最后会post上书本的笔记照片. 文章主要内容: 源码包程序 LNMP动态网站架构 配置Mysql服务 配置 ...

随机推荐

  1. php设置错误,错误记录

    //设置错误级别. error_reporting(E_ALL);  //显示所有错误 error_reporting(E_ALL&~E_NOTICE);  //显示所有错误但不显示提示级别的 ...

  2. 仿微信-ActionSheet

    有时候我们在开发中,系统提供的actionsheet 不能满足我们的需求,所以,今天就做一个类似微信中的,支持多个按钮,我见有的人用的是个tableview,也可以,但是有点麻烦. 效果图: Acti ...

  3. c++ 观察者模式(observer)

    观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新.它还有两个别名,依赖 (Dependents),发布-订阅(Publish-Subs ...

  4. 优化mysql slave的同步速度

    测试环境:Red Hat Enterprise Linux Server release 6.3 (Santiago)Server version: 5.6.22-log MySQL Communit ...

  5. Linux虚拟机磁盘扩容

    扩容步骤如下: 1.添加一块物理硬盘 2.fdisk将硬盘分区,选primary分区,创建1-4个 3.分区类型格式化,选择t,输入LVM代号 4.分好后按w退出 如果是调整原有逻辑卷大小,则先调整原 ...

  6. Linux 系统配置

    centos 7 防火墙和端口配置开启redis端口,修改防火墙配置文件 vi /etc/sysconfig/iptables 加入端口配置 -A RH-Firewall-1-INPUT -m sta ...

  7. Flask框架 之 信号

    Flask框架中的信号基于blinker,其主要就是让开发者可是在flask请求过程中定制一些用户行为. 安装 pip3 install blinker 内置信号 request_started = ...

  8. Charles 4.2.5 破解原理.RP

    请支持正版,仅供技术交流. 写了个小工具方便在线处理,在线破解 https://github.com/8enet/Charles-Crack 2018/4/8 Charles 4.2.5 替换类名和方 ...

  9. pagespeed模块安装——Nginx、Tengine

    1.安装好nginx或者tengine 2.下载pagespeed模块并且解压 sudo mkdir -p /usr/local/tengine/modules wget https://github ...

  10. 数据库SQL优化大总结之 百万级数据库优化方案(转)

    出处:http://www.cnblogs.com/yunfeifei/p/3850440.htm 网上关于SQL优化的教程很多,但是比较杂乱.近日有空整理了一下,写出来跟大家分享一下,其中有错误和不 ...