浅谈LNMP搭建

Nginx 有三大显著特点:1.稳定性

2.低系统资源损耗

3.对HTTP并发连接的高处理能力(单台30000-50000并发请求)

Nginx 主要是静态网站的解析,和提交动态请求   FPM(fastcgi进程管理器)解析动态网站

在LNMP平台上可以结合xcache加速PHH解析速度,提高页面生成速度2-5倍

安装前的准备工作:yum  -y install pcre-devel zlib-devel gcc gcc-c++

Nginx 的配置及运行需要pcre ,zlib 等软件包的支持,以便提供相应的库和头文件,也需要gcc的支持

挂载CentOs系统的YUM时,注意CentOs的YUM 配置会首先检查自带的网络配置,也就是Centos-Base.repo,所以要想让本地YUM 生效,就是删除Base.repo或给其改名(Redhat 无需如此)

另:如果我们防火墙规则不是太熟练,可以事先清空防火墙规则及修改/etc/sysconfig/selinux的安全制

一、编译安装Nginx (建议使用nginx_install.sh 脚本)

[[email protected] ~]# nginx –t       //测试是否安装正确

[[email protected] ~]# nginx        // 启动服务

[[email protected] ~]# netstat -anpt |grep nginx       //查看端口   (或服务器中已装有httpd 等其它Web服务软件,应采取措施(修改端口,停用或卸载),避免冲突

tcp        0      0 0.0.0.0:80    0.0.0.0:*      LISTEN      13440/nginx

[[email protected] ~]# elinks http://192.168.1.226       测试网页

Welcome to nginx!

主程序Nginx支持标准的进程信号,通过kill或killall命令发送HUP信号表示重载配置,QUIT信号表示退出进程,KILL信号表示杀死进程,例:

#killall -s  HUP nginx   //选项 -s HUP 等同于-1 重载

#killall -s  QUIT nginx  //选项-s QUIT 等同于-3 杀死

当然为了使Nginx服务的启动,停止,重载方便也可以使用服务脚本。

二、配置文件Nginx.conf

在Nginx服务器的主配置文件/usr/local/ngixn/conf/nginx.conf中,包括全局配置,I/O配置和HTTP配置这三大块内容

http{}包括访问日志,HTTP端口,网页目录,默认字符集,连接保持,以及虚拟主机,PHP解析等一系列设置,大部分配置都包含在子界定标记server{}内

Nginx内置了HTTP_STUB_STATUS状态统计模块,用来反馈当前的Web访问情况,配置编译参数时可添加--with-http_stub_status_module来启动此模块。当然还要修改nginx.conf配置文件,指定访问位置并打开stub_stauts配置

基于域名的虚拟主机   1.准备网站目录及测试文件

例:#mkdir -p /var/www/benet

#echo “<h1>WWW.BENET.COM</h1>” >/var/www/benet.com/index.html

2.调整nginx.conf的配置文件  (此处要去掉配置文件中pid ,log前的注释,还要特别注意http,server开始结束的{}符号)

[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf

server {

listen       80;

server_name  www.benet.com;

charset utf-8;

location / {

root   /var/www/benet;

index  index.html index.php;

}

用域名访问少不了DNS或host文件的修改(略)

二、安装MySQL数据库   (建议使用install_mysql.sh 脚本)

yum -y remove mysql-server mysql

yum -y install compat-libtermcap ncurses-devel

1)这里借用的cmake配置编译安装Myqal的源码包

#cd cmake-2.8.6

#./configure

#gmake && gmake install

#cd mysql-5.5.22

#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc

#make && make install

2)优化调整

rm -rf /etc/my.cnf

cp support-files/my-medium.cnf /etc/my.cnf

cp support-files/mysql.server /etc/rc.d/init.d/mysqld

chmod +x /etc/rc.d/init.d/mysqld

chkconfig --level 35 mysqld on

echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile

. /etc/profile 或者 source /etc/profile

3))初始化数据库

groupadd mysql

useradd -M -s /sbin/nologin mysql -g mysql

chown -R mysql:mysql /usr/local/mysql/

/usr/local/mysql/scripts/mysql_install_db  --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql

4)启动数据库

service mysqld start

mysqladmin -u root password ‘pwd123‘

mysql -u root -p

三、安装PHP环境  (建议使用install_php.sh 脚本、install_zend.sh 脚本)

yum -y remove php

yum -y install libxml2-devel libpng-devel pcre-devel

yum -y install gd libxml2 libxml2-devel libjpeg-devel libpng-devel

tar zxvf php-5.3.28.tar.gz

cd php-5.3.28

./configure --prefix=/usr/local/php5/ --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm  --with-jpeg-dir=/usr/lib

make && make install

测试:make test

2)安装后的调整

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

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

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

3)安装ZendGuardLoader

tar zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz

cd ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/

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

vim /usr/local/php5/php.ini

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

zend_loader.enable=1

Killall -3 nginx

nginx

[[email protected] ~]# vi /usr/local/php5/etc/php-fpm.conf

pid = run/php-fpm.pid

user = nginx

group = nginx

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

[[email protected] ~]# /usr/local/sbin/php-fpm  启动php-fpm进程

[[email protected] ~]# vim /usr/local/php5/php.ini

date.timezone ="PRC"

//PRC,People’s Republic of China,中华人民共和国,也就是日期使用中国的时区。

四、配置Nginx 支持PHP环境

1、修改Nginx服务脚本,以便在启动、停止Nginx服务时将php-fpm进程启动、停止

[[email protected] ~]# vim /etc/init.d/nginx   (参考脚本nginx.initscript)

#!/bin/bash

# chkconfig: 35 99 20

# description: Nginx Service Control Script

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

PROG_FPM="/usr/local/sbin/php-fpm"

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

PIDF_FPM="/usr/local/php5/var/run/php-fpm.pid"

case "$1" in

start)

$PROG

$PROG_FPM

;;

stop)

kill -s QUIT $(cat $PIDF)

kill -s QUIT $(cat $PIDF_FPM)

;;

restart)

$0 stop

$0 start

;;

reload)

kill -s HUP $(cat $PIDF)

;;

*)

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

exit 1

esac

exit 0

[[email protected] ~]# chmod a+x /etc/init.d/nginx

2、配置Nginx支持PHP解析

[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf

index  index.html index.php;

location ~ \.php$ {

root           /var/www/benet;

fastcgi_pass   127.0.0.1:9000;

fastcgi_index  index.php;

include        fastcgi.conf;

}

注意:解析时可能会出现一些常见的错误,比如404找不到文件,5XX就是动态解析的原因了

LNMP 测试:

[[email protected] ~]# vim /var/www/benet/test.php

<?php

$link=mysql_connect(‘localhost‘,‘root‘,‘666666‘);     //单引号

if($link)

echo "congratulation!!!";

mysql_close();

?>

[[email protected] ~]# vim /var/www/benet/testphpinfo.php

<?php

phpinfo();

?>

五、安装部署电影服务器

[[email protected] benet]# mysql -u root -p

mysql> create database skyucdb;

[[email protected] benet]# tar -jxvf SKYUC_3.2.2_Free_For_PHP5.3.tar.bz2

[[email protected] ~]# cp -ap  SKYUC_3.2.2_Free_For_PHP5.3/wwwroot/* /var/www/benet/

[[email protected] wwwroot]# cd /var/www/benet/

[[email protected] benet]# chmod -R 777 data/

[[email protected] benet]# chmod -R 777 templates/

[[email protected] benet]# chmod -R 777 admincp/

[[email protected] benet]# chmod -R 777 upload/

#mysql -u -p

Mysql> create database skyucdb;

Mysql> grant all on skyucdb.* to [email protected] identified by ‘[email protected]’;

时间: 2024-10-13 17:23:06

浅谈LNMP搭建的相关文章

浅谈如何搭建一个项目,初学者对于架构程序的理解

经过坚持不懈的努力,终于学到了软件建模的部分,对于java的理解,也有了更深入的理解,首先,软件建模就是把软件的概念抽象出来,然后,建立成一个单独存取属性的类,比如说,你想做一个网站,大家都知道网站有很多题头,就像首页.内容.摘要.新闻,这些字段,就是网页抽象出的属性,而我们把他们抽象出来,封装成一个类,来对它进行控制,这个控制在java中叫做javabean,javabean就是建立一个都是属性(id,name,age,address)这样一个有getter和setter,实现序列化,有默认构

浅谈初次搭建nginx+php+mysql遇到的问题

先说明下我linux上的环境: nginx + php(5.5.10) + mysql 开始的源码已经在本地写好,并调试成功(本地的环境是用XAMPP的默认配置),在把代码上传至linux上时,出现以下问题: [1]写日志时: PHP message: PHP Warning: fopen(log/log.log.141019): failed to open stream: Permission denied 这个是说明没有访问权限 解决:linux对php访问的用户权限有些限制,应该默认是n

[原创]浅谈互联网金融接口测试平台搭建

[原创]浅谈互联网金融接口测试平台搭建 接口测试我想各位做测试都不陌生,尤其是在现在分层测试思想倡导下,接口测试可以说是互联网行业必备的测试技能之一,我以前的博文也有讲过类似的内容,要想了解可以移驾到以下内容查看: 接口测试技术介绍 PostMan接口测试神器利剑 浅谈自动化测试中的金字塔模型理解 以上三篇内容会讲解为什么要重视接口测试?好的工具推荐,当然还有接口测试基本内容,如感兴趣可以查阅!好了谈正事,讲讲接口测试平台搭建要注意什么! 很多人会有疑问为什么要去搞个接口测试平台,不是有所谓的现

浅谈PHP技术应用

序号:1210-41 黑龙江省高等教育自学考试 本科毕业论文 题    目    浅谈PHP技术 学员姓名    夏滟 专    业    计算机及应用 准考证号    010311192585 指导教师    马大龙 学    院    地理科学学院 哈 尔 滨 师 范 大 学 2012年10月1日 目    录 摘  要………………………………………………………………………………1 一.PHP技术简介…………………………………………………………………1 二.PHP开发语言的特点…………………

浅谈mysql主从复制的高可用解决方案

1.熟悉几个组件(部分摘自网络)1.1.drbd     —— DRBD(Distributed Replicated Block Device),DRBD号称是 "网络 RAID",开源软件,由 LINBIT 公司开发.DRBD 实际上是一种块设备的实现,主要被用于Linux平台下的高可用(HA)方案之中.他是有内核 模块和相关程序而组成,通过网络通信来同步镜像整个设备,有点类似于一个网络RAID的功能.也就是说当你将数据写入本地的DRBD设备上的文件系统 时, 数据会同时被发送到网

浅谈自动化测试流程

浅谈AST(自动化测试)流程,欢迎大家多多指点,多提宝贵意见. AST阶段一:需求收集——分析自动化测试需求 1.举行启动会议,对SUT(被测试的系统)进行总体描述 2.SUT的要求是可测试和可自动化的 3.评估哪些测试可以自动化 4.分析当前生命周期中SUT使用的工具和复用现有的AST工具 5.对AST和测试中需要的工具进行评估,并提出建议 6.确定和讨论测试环境,包括测试环境的采购和安排,列出测试环境的概要 7.与开发相关人员一起走查一遍AST测试需求,最后达成一致意见 8.给出可以自动化的

浅谈软件工程

借鉴<构造之法>--浅谈软件工程 源程序就是代码,建立在数据结构之上,对数据进行操作.数据分为静态数据和动态数据. 软件构建不仅仅是cc和link命令,一个复杂的软件具有合理的软件架构.软件设计,实现等等.软件团队要从需求分析开始,把合适需求梳理出来,然后展开后续工作,如软件架构设计,写数据结构和算法,测试到最后发布软件. 由“软件=程序+软件工程”扩展出“软件企业=软件+商业模式” 程序是基本功,软件工程决定了软件的质量,商业模式决定了一个软件企业的成败,软件从业人员的道德操守会极大的影响软

浅谈结对编程

浅谈结对编程 结对编程 结对编程,是一种敏捷软件开发的方法,极限编程的组成部分.结对编程技术是指两位程序员肩并肩地坐在同一台电脑前合作完成同一个设计.同一个算法.同一段代码或同一组测试.一人充当“执行”角色,只负责编程.另外则负责“观察者”(或“导航”),检测bug和把控整体设计.两个程序员具有相同的缺点和盲点的可能性很小,所以当我们采用结对编程的时候会获得一个强大的解决方案.而这个解决方案恰恰是其它软件工程方法学中所没有的. 由于自己长时间都习惯了一个人编程,所以在这次结对编程的初期在做项目的

版本管理和项目管理软件浅谈

版本管理和项目管理软件浅谈 项目管理软件 Trac vs Redmine 关于Trac,之前想为计组实验平台搭建Wiki的时候作为“备胎”所了解过,而与当时功能与其相似,看起来更有竞争力的产品——Redmine相比而言我更加看好Trac,因为Redmine有一些严重的缺点: 安装非常麻烦.在实际的生产环境中,Redmine在Debian\Ubuntu系统下没法稳定运作.Redmine的依赖是固定的,所以一些新的版本库可能没法工作.而且必须自己在apt-get中配置更新源,否则很容易错将某些依赖升