码迷,mamicode.com
首页 > Web开发 > 详细

CentOS 7 搭建 LNMP 架构详细过程 + Discuz 论坛安装 (手工编译)

时间:2018-08-28 18:56:29      阅读:279      评论:0      收藏:0      [点我收藏+]

标签:cal   优化   并且   ffffff   fast   kconfig   windows 7   网页   介绍   

简介

1·LNMP 介绍
2·Ningx 安装 (1.12版本)
3·MySQL 安装 (5.5版本)
4·PHP 安装 (5.6版本)
5·安装 Discuz 论坛
6·总结


LNMP 介绍

1· 很多人都知道 LAMP 架构,它是由 Linux + Apache + MySQL + PHP 所架构的,但是随着 Nginx 在企业中用得越来越多,LNMP 架构也受到人们得喜爱。其实这两个架构变化不大,只是提供 WEB 服务的变成了 Nginx 。那么他们之间一定会由差异。在 LNMP 中 Nginx 可以配置网页的动静分离、解析PHP,可以使用 PHP的FPM模块。现在比较新的PHP 版本中已经自带了FPM模块(进程管理器)。这样的话,就可以让 Nginx 来处理静态请求,并且它会把动态请求转发给 PHP中的FPM 模块,也可以把说成是一个php-fpm服务。但是在 LAMP 中php 只是作为一个模块存在!
2·而且Nginx 它能承受的并发连接数高达50000左右,甩 Apache 几条街。还有它的稳定性和系统资源的占用都是非常的小。所以非常受人们喜欢。


技术分享图片


安装前准备源码包,我放在百度网盘上点击免费下载:LNMP+论坛源码包密码:jx5k


Nginx 安装

1·安装 Nginx 之前需要安装依赖包

[root@localhost ~]# yum -y install pcre-devel zlib-devel gcc gcc-c++ make


2·给 Nginx 创建专门的用户,以便准确的控制权限,降低安全风险

[root@localhost ~]# useradd -M -s /sbin/nologin nginx


3·解压、编译安装 nginx ,一般编译安装都放在 /usr/local 目录下面

[root@localhost ~]# tar zxvf nginx-1.12.0.tar.gz -C /opt
[root@localhost ~]# cd /opt/nginx-1.12.0
[root@localhost nginx-1.12.0]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module (支持统计状态)
[root@localhost nginx-1.12.0]# make && make install (编译安装)


4·为了使 nginx 方便管理员运行和管理,为nginx 创建连接文件

[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/ /usr/local/sbin/


5·为了使 Nginx 的启动 停止更加方便,为他写一个启动脚本,这样更方便。

[root@localhost nginx-1.12.0]# vim /etc/init.d/ngixn
#!/bin/bash
#chkconfig: - 99 20
#description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx" (这里是:主程序路径)
PIDF="/usr/local/nginx/logs/nginx.pid" (这里是PID存放路径)
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF) (根据 PID 终止 nginx 进程,kill进程)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF) (根据进程重新加载配置)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}" (如果输入其他则提示输入语法)
exit 1
esac
exit 0


6·给这个脚本赋予执行权限、并把 Nginx 添加为系统服务。

[root@localhost ~]# chmod +x /etc/init.d/nginx
[root@localhost ~]# chkconfig --add nginx


7·启动 Nginx 服务 、查看状态。

[root@localhost ~]# systemctl start nginx
[root@localhost ~]# systemctl status nginx
● nginx.service - SYSV: Nginx Service Control Script
Loaded: loaded (/etc/rc.d/init.d/nginx; bad; vendor preset: disabled)
Active: active (running) since 二 2018-08-28 14:14:00 CST; 7s ago
Docs: man:systemd-sysv-generator(8)
Process: 5323 ExecStart=/etc/rc.d/init.d/nginx start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/nginx.service
├─5325 nginx: master process /usr/local/nginx/sbin/nginx
└─5326 nginx: worker process


MySQL 安装 (5.5版本哦)

1·这里还是需要先安装依赖包,MySQL 这里需要注意的是不再用 ./configure 安装模块了,而是用 Cmake ,所以这里需要安装 Cmake以及其他的包

[root@localhost ~]# yum -y install ncurses-devel bion libaio-devel cmake


2·给 MySQL 创建专门的用户,以便准确的控制权限,降低安全风险

[root@localhost ~]# useradd -s /sbin/nologin mysql


3·解压、编译安装 MySQL ,一般编译安装都放在 /usr/local 目录下面

[root@localhost ~]# tar zxvf mysql-5.5.24.tar.gz -C /opt
[root@localhost ~]# cd /opt/mysql-5.5.24
[root@localhost 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

[root@localhost mysql-5.5.24]# make && make install


4·根据一些日常的习惯,对MySQL做一些调整优化。

[root@localhost mysql-5.5.24]# cp support-files/my-medium.cnf /etc/my.cnf
[root@localhost mysql-5.5.24]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql-5.5.24]# chmod +x /etc/init.d/mysqld


5·加入系统管理、设置开机启动

[root@localhost mysql-5.5.24]# chkconfig --add mysqld
[root@localhost mysql-5.5.24]# chkconfig --level 35 mysqld on


6·添加变量到 /etc/profile 文件中,并且使文件再次生效。

[root@localhost mysql-5.5.24]# echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile
[root@localhost ~]# . /etc/profile (这里需要注意 . 中间有空格)
[root@localhost ~]# chown -R mysql.mysql /usr/local/mysql


7·初始化数据库

[root@localhost ~]# /usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql


技术分享图片


8·在启动配置文件中指定家目录和安装路径

[root@localhost ~]# vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/home/mysql


技术分享图片


9·到这里我本来就可以启动服务了,可是这里报错,如下图报错信息,是在关闭防火墙,setenforce 0 之后启动。

[root@localhost ~]# systemctl start mysqld.service
技术分享图片

它说让你用它提示的语句去查看状态,其实我们用另一种方法启动,可以看到报错信息不一样。如下图
[root@localhost ~]# /etc/init.d/mysqld start
技术分享图片
意思是:启动时不跟新PID文件。没有PID 就启动不了。
解决办法:
[root@localhost ~]# mv /etc/my.cnf /etc/my.cnf.bak
相当于删除了这个文件而已就可以启动成功

或者把 /etc/my.cnf 中的两句话注释掉或者自己创建 mkdir -p /var/run/mariadb
mkdir -p /log/run/mariadb
技术分享图片


安装 PHP

1·安装依赖包和GD库等相关联的程序

[root@localhost ~]# yum -y install \
gd \
libxml2-devel \
libjpeg-devel \
libpng-devel \
zlib-devel \
fontconfig-devel \
openssl-devel \
bzip2-devel


2·解压、编译安装 PHP ,一般编译安装都放在 /usr/local 目录下面

[root@localhost ~]# tar jxvf php-5.6.11.tar.bz2 -C /opt/
[root@localhost php-5.6.11]# ./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=/usr/lib \
--with-openssl \
--disable-ipv6 \
--enable-fpm

[root@localhost php-5.6.11]# make && make install


3·对 PHP 进行一些优化

[root@localhost php-5.6.11]# cp php.ini-development /usr/local/php5/php.ini
[root@localhost php-5.6.11]# ln -s /usr/local/php5/bin/ /usr/local/bin/
[root@localhost php-5.6.11]# ln -s /usr/local/php5/sbin/
/usr/local/sbin/


4·为PHP安装加速器

[root@localhost ~]# tar zxvf zend-loader-php5.5-linux-x86_64_update1.tar.gz -C /opt
[root@localhost ~]# cd /opt/zend-loader-php5.5-linux-x86_64/
[root@localhost zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php


5·配置PHP识别加速器

[root@localhost ~]# vim /usr/local/php5/php.ini
在文件末尾插入:
[Zend Guard Loader]
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1


技术分享图片


6·开启nginx的PHP支持

[root@localhost ~]# cd /usr/local/php5/etc/
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf
[root@localhost etc]# useradd -M -s /sbin/nologin php (差点忘记了)


7·修改php-fpm配置文件

[root@localhost etc]# vim php-fpm.conf -----(这里是修改文件)
pid = run/php-fpm.pid
user = php
group = php
pm.max_children=50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35

[root@localhost etc]# /usr/local/sbin/php-fpm -------------(使文件生效)
[root@localhost etc]# netstat -tnal | grep 9000 -------------(查看一下端口)


8·让nginx支持PHP功能

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf ----(就是修改Nginx配置文件)

location ~ .php$ {
root /var/www/benet;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}

在server 里面加入以上参数,如下图:

技术分享图片


9·检查 nginx 配置文件,并重启nginx 服务、查看状态

[root@localhost conf]# nginx -t
[root@localhost conf]# systemctl restart nginx
[root@localhost conf]# systemctl status nginx


10·测试 PHP 页面
[root@localhost conf]# mkdir -p /var/www/benet
[root@localhost conf]# vim /var/www/benet/index.php
<?php
phpinfo();
?>


技术分享图片


11·开始测试,访问
技术分享图片


安装 Discuz 论坛

1·我们在 LNMP 搭建好了之后,就可以基于此基础 安装软件了,这里以 Discuz 论坛 为列
2·要安装 Discuz 论坛需要给此论坛创建一个数据库,并且创建一个用户管理它
3·进入 MySQL 数据库 创建一个新的数据库名字叫 bbs

[root@localhost ~]# mysql -u root -p -----(输入密码进入)
mysql> create databases bbs; ------(创建一个库 名字叫 bbs 以分号结尾)
mysql> grant all on bbs.* to ‘bbsuser‘@‘%‘ identified by ‘admin123‘;

给bbsuser 这个用户在任意一台服务器上登陆,登陆密码是 ‘admin123’ ,对bbs这个库,这个库里面的所有表拥有所有权限。
mysql> flush privileges; ----(刷新数据库,立即生效)


·测试数据库,以下是测试代码:
vim /var/www/benet/index.php

<?php
$link=mysql_connect(‘主机IP‘,‘bbsuser‘,‘admin123‘);
if($link) echo "Success!!";
else echo "Fail!!";
mysql_close();
?>


解压 Discuz 软件包、优化内容
[root@localhost ~]# unzip Discuz_X3.3_SC_UTF8.zip -d /opt/dis
[root@localhost ~]# cd /opt/dis
[root@localhost dis]# cp -r upload/ /var/www/benet/bbs
[root@localhost dis]# cd /var/www/benet/bbs
[root@localhost bbs]# chown -R php ./config
[root@localhost bbs]# chown -R php ./data
[root@localhost bbs]# chown -R php ./uc_client
[root@localhost bbs]# chown -R php ./uc_server/data


开始安装
安装是在 windows 7 上安装,访问地址是:如下图
技术分享图片


技术分享图片


技术分享图片


技术分享图片


Discuz 安装完成,我们可以访问管理后台。
技术分享图片


技术分享图片


总结:

1·关于 一些 Nginx 其他配置可以看看Nginx 优化


2·在整个 LNMP 的安装过程中,说不一定就会报一些错,只是没有遇到,报错就上百度多查查。


3·需要知道 Nginx 的优点在哪里,它的高并发连接,和动静态的分离,还有资源占用极少等等。


4·在LNMP 中的php是用php-fpm模块来做动态工作工作的。但是在LAMP中PHP只是一个模块而已。

CentOS 7 搭建 LNMP 架构详细过程 + Discuz 论坛安装 (手工编译)

标签:cal   优化   并且   ffffff   fast   kconfig   windows 7   网页   介绍   

原文地址:http://blog.51cto.com/13746824/2165606

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!