LNMP之php,nginx源码编译以及论坛搭建

实验环境:

rhel6.5,selinx 和 iptables均为disabled状态

主机环境:

server1  172.25.254.1

####php源码编译####

PHP概念介绍:

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言语法吸收了C语言JavaPerl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了CJavaPerl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密优化代码运行,使代码运行更快。

下载php源码包进行解压

tar jxf php-5.6.35.tar.bz2

cd php-5.6.35

./configure --help | grep mysql   ##过滤出与mysql相关的模块

./configure --prefix=/usr/local/lnmp/php # php安装的位置 --with-config-file-path=/usr/local/lnmp/php/etc #php配置文件所在的位置
--with-mysql=mysqlnd
--enable-mysqlnd
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
--with-openssl
--with-snmp
--with-gd
--with-zlib
--with-curl
--with-libxml-dir
--with-png-dir
--with-jpeg-dir
--with-freetype-dir
--with-pear
--with-gettext
--with-gmp
--enable-inline-optimization
--enable-soap
--enable-ftp
--enable-sockets
--enable-mbstring
--enable-fpm  # 开启fpm模式(nginx等服务用的)
--with-fpm-user=nginx  # 对PHP服务的限制通过nginx用户来实现
--with-fpm-group=nginx  # PHP以nginx用户组身份运行
--with-mcrypt   # 提供了对多种块算法的支持 主要用来实现加密等算法
--with-mhash    # 加密算法

有错误,此时要解决依赖性

yum install libxml2-devel -y

yum install openssl-devel -y

yum install curl-devel -y

yum install gmp-devel -y

yum install net-snmp-devel -y

此时要下载gd-devel-2.0.35-11.el6.x86_64.rpm,libmcrypt-devel-2.5.8-9.el6.x86_64.rpm libmcrypt-2.5.8-9.el6.x86_64.rpm,

re2c-0.13.5-1.el6.x86_64.rpm  

yum install -y gd-devel-2.0.35-11.el6.x86_64.rpm -y

yum install libmcrypt-devel-2.5.8-9.el6.x86_64.rpm libmcrypt-2.5.8-9.el6.x86_64.rpm -y

rpm -ivh re2c-0.13.5-1.el6.x86_64.rpm  

重新设置

编译安装

make && make install  

拷贝文件配置文件

vim /usr/local/lnmp/php/etc/php-fpm.conf   将第25行注释去掉(pid)

cd /usr/local/lnmp/php/etc/

vim php.ini     ##修改时间为Asia/Shanghai

useradd -M -d /usr/local/lnmp/nginx -s /sbin/nologin nginx

id nginx   ##查看用户

cd php-5.6.35/  

cd sapi/fpm

cp init.d/php-fpm /etc/init.d/php-fpm     ##将php服务脚本做好

chmod +x /etc/init.d/php-fpm       ##增加权限

/etc/init.d/php-fpm start  

netstat -antlp    ##查看端口

ps ax   ##查看 进程是否开启

####nginx源码编译#####

nginx介绍:

nginx是一款高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。其源代码以类BSD许可证的形式发布,因它的稳定性。丰富的功能集,示例配置文件和低系统资源的消耗而闻名。是一款轻量级的web服务器/反向代理服务器及电子邮件代理服务器,同时nginx也是一个非常优秀的邮件代理服务器。其特点为占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站的用户有:百度,京东,新浪,腾讯,网易,淘宝等。
在连接高并发的情况下,nginx是apache服务不错的代替品:nginx在美国是做虚拟主机老板们经常选用的软件平台之一。能够支持高达50000个并发连接数的响应,感谢nginx为我们选择epoll and kqueue作为开发模型。
四:ngixnx和apache对比
1.nginx相对于apache的优点
轻量级,同样的web服务器,比apache占有更少的资源和内存
抗并发,nginx处理请求是异步非阻塞式,而apache则是阻塞式。在高并发下,nginx能保持弟子员,低消耗,高性能
高度模块化设计,编写高性能模块资源丰富
代理功能强大
2.apache对于nginx的优点
比nginx的rewrite(服务其的重写脉冲技术,支持URL重写)更强大
模块超多,现有的模块基本能满足所有需求
比nginx稳定,bug较少
3.nginx于apache应用场景对比
apache适合跑动态,而nginx时和跑静态和反向,但若静态文件较少,apache的select模块比nginx的epoll模块更好
nginx适用于IO米即型服务,apache适合与CPU密集型服务
最好两者结合,例如,lnmp架构,nginx做前端服务器,处理静态文件请求,apache做后端服务器,当客户发出动态文件请求时,nginx的反向代理功能将请求转发到apache.
4.轻量级,高并发原因:
对于apache,每个请求都独占一个工作线程,并发数在几千,占用内存,CPU,降低性能
对于nginx,一个进程只有一个主线程,通过异步非阻塞式时间处理机制,实现了循环处理多个准备好的事件,从而实现轻量级,高并发。
5.直接说明
apache属于专一性服务
nginx属于分阶段进行,节省时间
五.nginx服务器的搭建及配置
在server1中做如下操作

源码安装:

加压源码包

tar zxf nginx-1.10.1.tar.gz

cd nginx-1.10.1/

cd src/core/

vim nginx.h     ##去掉版本号

cd ..

cd auto/cc

vim gcc     ##注释掉debug一行

开始预编译

cd nginx-1.10.1 ./configure --help ###查看要添加的模块帮助

./configure --prefix=/usr/local/lnmp/nginx

--with-http_ssl_module
--with-http_stub_status_module
--user=nginx
--group=nginx
--with-threads
--with-file-aio

出现报错,解决依赖性安装

yum install pcre-devel -y   

重新设置,如下便是设置成功

make && make install    ##编译及安装

配置nginx服务

cd /usr/local/lnmp/nginx/conf

vim nginx.conf

vim /etc/security/limits.conf

nginx   -    nofile     65536          ##扩大nginx用户内存

vim /root/.bash_profile     ##将编译生成的mysql二进制命令放进系统环境变量中,保证可以直接调用该二进制命令

source .bash_profile   ##刷新

cd /usr/local/lnmp/nginx/sbin/

nginx -t      ##语法检测

nginx       ##器用nginx命令

cd /usr/local/lnmp/nginx/html     ##默认发布目录

vim index.php

测试:

在firefox上访问172.25.254.1 和172.25.254.1/index.php,会得到如下不同效果

为了方便测试,再次编辑nginx.conf

vim nginx.conf

nginx -s reload   ##刷新

重新访问172.25.254.1

####论坛的搭建#####

yum install unzip -y   ##做好解压的准备

unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/

cd /usr/local/lnmp/nginx/html

mv upload bbs    ##更改目录名

cd bbs/

chmod 777 config/ data/ uc_server/ uc_client/ -R     ##修改目录权限

此处的数据库密码便是当初设置的密码(应该是WESTOS1234)

输入密码

cd /usr/local/lnmp/php/etc/

vim php.ini

这个时候安装还会报错,这是因为连接数据库的权限不够

/etc/init.d/php-fpm reload ###重新加载配置文件

cd /usr/local/

ll ###查看里面目录权限

cd lnmp/

ll ###查看里面目录权限

cd mysql/

ll ###查看里面目录权限

chmod 755 data/ ###将data目录权限修改

/etc/init.d/mysqld start

此次登陆会成功

进入管理中心,有要求,删除install中的index.php

cd /usr/local/lnmp/nginx/html/bbs/install/

rm -fr index.php

刷新一次,就可以了

猜你喜欢

转载自blog.csdn.net/weixin_42731856/article/details/83031663