源码编译LNMP平台架构

栏目: PHP · 发布时间: 5年前

内容简介:众所周知,LAMP 平台是目前应用最为广泛的网站服务器架构,其中的“A”对应着Web服务软件Apache HTTP Server。随着Nginx在企业中的使用越来越多,LNMP(或LEMP)架构也受到越来越多Linux系统工程师的青睐,其中的“E”就来自于Nginx的发音[engine x]。就像构建LAMP平台一一样, 构建LNMP平台也需要Linux服务器、MySOL数据库和PHP解析环境,区别主要在Nginx与PHP的协作配置上。第一步:安装Nginx1.编译安装Nginx

众所周知,LAMP 平台是目前应用最为广泛的网站服务器架构,其中的“A”对应着Web服务软件Apache HTTP Server。随着Nginx在企业中的使用越来越多,LNMP(或LEMP)架构也受到越来越多 Linux 系统工程师的青睐,其中的“E”就来自于Nginx的发音[engine x]。就像构建LAMP平台一一样, 构建LNMP平台也需要Linux服务器、MySOL数据库和 PHP 解析环境,区别主要在Nginx与PHP的协作配置上。

第一步:安装Nginx

1.编译安装Nginx

--------安装依赖包-------

yum -y install pcre-devel zlib-devel gcc gcc-c++ cmake

//创建nginx用户

useradd -M -s /sbin/nologin nginx

//解压到/opt

tar xzvf nginx-1.6.0.tar.gz -C /opt

---------配置编译安装--------

cd /opt/nginx-1.6.0/

./configure \

--prefix=/usr/local/nginx \

--user=nginx \

--group=nginx \

--with-http_stub_status_module            //开启stub_status状态统计模块//

make

make install

2.制作启动脚本

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/  //让系统识别命令

-----检查、启动、重启、停止--------

nginx -t        //检查

nginx          //启动

killall -1 nginx    //重启

killall -3 nginx    //停止

-------制作管理角本--------

vi /etc/init.d/nginx

#!/bin/bash

# chkconfig: - 99 20

# description: Nginx Service Control Script

PROG="/usr/local/nginx/sbin/nginx"

PIDF="/usr/local/nginx/logs/nginx.pid"

case "$1" in

start)

$PROG

;;

stop)

kill -s QUIT $(cat $PIDF)

;;

restart)

$0 stop

$0 start

;;

reload)

kill -s HUP $(cat $PIDF)

;;

*)

echo "Usage: $0 {start|stop|restart|reload}"

exit 1

esac

exit 0

chmod +x /etc/init.d/nginx

chkconfig --add nginx  //开机自启动

service nginx start

第二步:安装MySQL

这里以版本5.5.24为例

1.编译安装MySQL

yum -y install ncurses-devel                  //ncurses是字符终端下屏幕控制的基本库//

tar xzvf mysql-5.5.24.tar.gz -C /opt

cd /opt/mysql-5.5.24

cmake  \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all \

-DSYSCONFDIR=/etc \

-DMYSQL_DATADIR=/home/mysql/ \

-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_SSL=system \

-DMYSQL_TCP_PORT=3306 \

-DENABLE_DOWNLOADS=1 \

-DWITH_SSL=bundled

make && make install

2.优化调整

cp support-files/my-medium.cnf /etc/my.cnf    //复制配置文件

cp support-files/mysql.server /etc/init.d/mysqld  //复制启动脚本

chmod +x /etc/init.d/mysqld     

chkconfig --add mysqld

chkconfig --level 35 mysqld on

echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile //配置环境变量

. /etc/profile            (注意:"."后面有空格)

3.初始化数据库

useradd -s /sbin/nologin mysql

chown -R mysql.mysql /usr/local/mysql

/usr/local/mysql/scripts/mysql_install_db \

--user=mysql \

--ldata=/var/lib/mysql \

--basedir=/usr/local/mysql \

--datadir=/home/mysql

ln -s /var/lib/mysql/mysql.sock  /home/mysql/mysql.sock

4.启动 MySQL 服务

vi /etc/init.d/mysqld    //配置启动脚本

basedir=/usr/local/mysql 

datadir=/home/mysql

service mysqld start

mysqladmin -u root -p password "abc123"  //为root用户设置密码

第三步:安装PHP解析环境

•Nginx配置网页动静分离、解析PHP,有两种方法可以选择:使用PHP的FPM模块,或者将访问PHP页面的Web请求转交给Apache服务器去处理。

•较新版本的PHP已经自带FPM (FastCGI Process Manager, FastCGI进程管理器)模块,用来对PHP解析实例进行管理和优化解析效率。FastCGI 将静态请求和动态脚本语言分离开,Nginx 专门处理静态请求,并转发动态请求给PHP-FPM。单服务器的

LNMP架构通常使用FPM的方式来解析PHP。

1.使用yum工具安装PHP的依赖包。

//首先安装GD库及GD库关联程序

yum -y install \

gd \

libxml2-devel \

libjpeg-devel \

libpng-devel \

zlib-devel \

fontconfig-devel \

openssl-devel \

bzip2-devel

2.编译安装PHP

tar jxvf php-5.4.5.tar.bz2 -C /opt

cd /opt/php-5.4.5

./configure \

--prefix=/usr/local/php5 \

--with-gd \

--with-zlib \

--with-mysql=/usr/local/mysql \

--with-config-file-path=/usr/local/php5 \

--enable-mbstring \

--with-jpeg-dir \

--with-openssl \

--disable-ipv6 \

--enable-fpm    //添加fpm模块

make && make install

3.复制模板文件作为PHP的主配置文件

cp php.ini-development /usr/local/php5/php.ini

4.为PHP安装加速器,用于提高PHP的解析效率

tar xzvf ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz -C /opt

cd /opt/ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x

cp ZendGuardLoader.so /usr/local/php5/lib/php

修改PHP的主配置文件,开启ZendGuardLoader模块

vi /usr/local/php5/php.ini

[Zend Guard Loader]

zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so

zend_loader.enable=1  //1表示开启

第四步:配置Nginx支持PHP环境

1.PHP-FPM模块配置

(1)复制模板文件php-fpm.conf.default作为PHP-FPM的配置文件

cd /usr/local/php5/etc/

cp  php-fpm.conf.default php-fpm.conf

(2)修改php-fpm.conf配置文件

useradd -M -s /sbin/nologin php  //创建php用户

vi php-fpm.conf //修改

pid = run/php-fpm.pid    //确定pid文件位置

user = php              //表示由php用户调用

group = php

pm.max_children=50      //fpm模块的最大进程数

pm.start_servers = 20  //启动时开启的进程数

pm.min_spare_servers = 5  //最小空闲进程数

pm.max_spare_servers = 35 //最大空闲进程数

(3)启动PHP-FPM模块,进程使用9000端口

//设置软链接,方便命令使用

ln -s /usr/local/php5/bin/* /usr/local/bin/

ln -s /usr/local/php5/sbin/* /usr/local/sbin/

/usr/local/sbin/php-fpm

netstat -lntup | grep 9000

源码编译LNMP平台架构

2.配置Nginx支持PHP解析

(1)在Nginx的主配置文件中的server{}配置段,将PHP的网页请求转发给FPM模块处理

cd /usr/local/nginx/conf/

cp nginx.conf nginx.conf.bak  //修改前做备份

vi nginx.conf

location ~ \.php$ {

root          /var/www/benet;    //php文件所在目录

fastcgi_pass  127.0.0.1:9000;    //php文件转发给FPM模块

fastcgi_index  index.php;        //默认文件是index.php

include        fastcgi.conf;  //包含fastcgi.conf配置文件

}

nginx -t  //检测语法

源码编译LNMP平台架构

(2)在/var/www/benet下创建php测试页面

service nginx restart      //重启服务

mkdir -p /var/www/benet    //创建目录

vi /var/www/benet/index.php  //创建php文件

<?php

phpinfo();

?>

在浏览器中访问PHP文件

源码编译LNMP平台架构

第五步:创建论坛

1.创建bbs数据库并授权

mysql -u root -p

mysql> CREATE DATABASE bbs;  //创建一个数据库//

mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';  //把bbs数据库里面所有表的权限授予给bbSUSEr,并设置密码//

mysql>flush privileges; //刷新数据库//

源码编译LNMP平台架构

2.测试数据库

vi /var/www/benet/index.php

<?php

$link=mysql_connect('192.168.26.153','bbsuser','admin123');

if($link) echo "Success!!";

else echo "Fail!!";

mysql_close();

phpinfo();

?>

源码编译LNMP平台架构

3.安装论坛

unzip Discuz_X3.3_SC_UTF8.zip -d /opt/dis  //解压Discuz

cd /opt/dis

cp -r upload/ /var/www/benet/bbs

cd /var/www/benet/bbs

chown -R php ./config    //修改属性

chown -R php ./data

chown -R php ./uc_client

chown -R php ./uc_server/data

4.访问浏览器,安装论坛

http://192.168.26.153/bbs/install/index.php

源码编译LNMP平台架构 源码编译LNMP平台架构 源码编译LNMP平台架构 源码编译LNMP平台架构 源码编译LNMP平台架构 源码编译LNMP平台架构

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-11/155512.htm


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

iOS面试之道

iOS面试之道

故胤道长、唐巧 / 电子工业出版社 / 2018-7 / 59.00元

《iOS面试之道》是作者将多年的工作经验和积累,结合具体面试内容总结而成的。 《iOS面试之道》共分为3部分。第1部分为面试准备,详细介绍求职中遇到的基本问题,作者根据其多年的经验,在面试流程、简历投递、复习准备方面给出了完善的参考意见和建议。第2部分为算法知识。算法几乎是各种水平的程序员都要面对的考查内容。该部分采用Swift语言重新审视了多种数据结构和算法原理,可以说是为iOS开发者量身......一起来看看 《iOS面试之道》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试