1)部署Nginx

实验tar安装包可找本人拿记得点+关注,感谢亲们支持,评论拿包

systemctl stop firewalld

iptables -F

setenforce 0

1)安装支持软件

yum -y install pcre-devel zlib-devel openssl-devel

2)创建运行用户,组

useradd -M -s /sbin/nologin nginx

3)编译安装nglinx

tar xf nglix-1.14.2.tar.gz -C /usr/src

4)配置编译

cd /usr/src/nginx-1.14.2

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

--with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module && make && make install

为了使nginx服务器运行方便,可以为主程序nginx 创建链接文件,以便管理员直接执行nginx命令

ln -s /usr/local/nginx/sbin/nginx /usr/local/bin

ll /usr/local/bin/nginx

5)nginx运行控制

nginx -t 检测语法

6)启动,停止nginx,如果服务器中已安装有httpd等其他web 服务软件,应关闭避免冲突

netstat -anpt |grep :80

nginx

netstat -anpt |grep :80

查看httpd:192.168.30.22窗口

welocome to nginx!

killall -s HUP nginx  重载配置

killall -s QULT nginx     退出进程

killall -9     可忽略

netstat -anpt |grep :80

为了更好管理nginx进程写个脚本并使用chkconfig工具来进行管理

vim /etc/init.d/nginx

#!/bin/bash

#chkconfig:2345 99 20

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

netstat -anpt |grep :80

给上权限

chmod +x /etc/init.d/nginx

chkconfig --add nginx

chkconfig nginx on

chkconfig --list nginx

然后测试脚本

/etc/init.d/nginx stop

netstat -anpt |grep :80

/etc/init.d/nginx start

netstat -anpt |grep :80

在http{}配置的server{} 子配置文件内添加如下配置项

vim /usr/local/nginx/conf/nginx.conf

location /status {

stub_status on;

access_log off;

}

systemctl restart nginx

浏览器访问http://192.168.30.22/status

虚拟主机应用

mkdir /usr/local/nginx/html/zc

mkdir /usr/local/nginx/html/cloud

echo "<h1>www.zc.com</h1>"> /usr/local/nginx/html/zc/index.html

echo "<h1>www.cloud.com</h1>" > /usr/local/nginx/html/cloud/index.html

vim /usr/local/nginx/conf/nginx.conf

user  nginx;

worker_processes  2;

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

pid        logs/nginx.pid;

events {

worker_connections  1024;

}

http {

include       mime.types;

default_type  application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

access_log  logs/access.log  main;

sendfile        on;

keepalive_timeout  65;

server {

listen       80;

server_name  www.zc.com;

charset utf-8;

access_log  logs/zc.access.log  main;

location / {

root   html/zc;

index  index.html index.htm;

}

}

server {

listen       81;

server_name  www.cloud.com;

charset utf-8;

access_log  logs/cloud.access.log  main;

location / {

root   html/cloud;

index  index.html index.html;

}

}

}

systemctl restart nginx

vim /etc/hosts

192.168.30.24 www.zc.com

192.168.30.24 www.cloud.com

虚拟主机访问测试   elinks 命令需要yum -y install elinks安装

elinks --dump http://www.zc.com

elinks --dump http://www.cloud.com

http://192.168.30.24

http://192.168.30.24:81

2)部署mysql 数据库

1)安装mysql 数据库

1)基于源码包安装mysql

rpm -q mysql mysql-server

ncurses-deve1 是cmake的依赖包

yum -y install ncurses-devel

rpm -q ncurses-dever

安装配置工具cmake

tar xf cmake-3.13.1.tar.gz -C /usr/src

cd /usr/src/cmake-3.13.1

./configure && gmake && gmake install

建议采用yum安装方式

yum -y install cmake

rpm -q cmake

创建运行 用户

useradd -M -s /sbin/nologin mysql

解包,配置,编译,安装

tar xf mysql-5.7.24.tar.gz -C /usr/src

cd /usr/src/mysql-5.7.24

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

出现错误然后解决

mkdir /usr/local/boost

cd /usr/local/boost    把包复制到这个目录

tar xf boost_1_59_0.tar.gz

cd /usr/src/mysql-5.7.24

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc -DWITH_BOOST=/usr/local/boost && make && make install

2)安装后的调整

cd  /usr/local/mysql

chown -R mysql:mysql ./

建立配置文件

vim /etc/my.cnf

[mysqld]

datadir=/usr/local/mysql/data

socket=/tmp/mysql.sock

[mysqld_safe]

log-error=/usr/local/mysql/data/mysql.log

pid-file=/usr/local/mysql/data/mysql.pid

3)初始化数据库

./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize

4)设置环境变量

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

. /etc/profile

5)添加系统服务

cd /usr/src/mysql-5.7.24

cp support-files/mysql.server /usr/local/mysql/bin/mysqld.sh

chmod +x /usr/local/mysql/bin/mysqld.sh

vim /usr/lib/systemd/system/mysqld.service

[Unit]

Description=MySQL Server

After=network.target

[Service]

User=mysql

Group=mysql

Type=forking

PLDFile=/usr/local/mysql/data/localhost.pid

ExecStart=/usr/local/mysql/bin/mysqld.sh start

ExecStop=/usr/local/mysql/bin/mysqld.sh stop

[lnstall]

WantedBy=mutil-user.target

systemctl start mysqld

systemctl enable mysqld

systemctl status mysqld

netstat -lnpt |grep mysqld

后期修改数据库用户的密码

systemctl stop mysqld

vim /etc/my.cnf

添加skip-grant-tables

启动服务systemctl start mysqld

mysql -uroot -p

mysql> use mysql;

mysql> update mysql.user set authentication_string=password("123456789") where user='root';

mysql> flush privileges;

mysql> exit

关闭服务,systemctl stop mysqld

把skip-grant-tables加#注释或删除

systemctl restart mysqld  启动服务

mysql -uroot -p进去密码已修改为123456789

此命令可以在在以后修改时生效 mysqladmin -u root -p'123456789' password '012345678'

3)安装PHP 解析环境

1)编译安装php

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

tar xf php-5.6.39.tar.gz -C /usr/src

cd /usr/src/php-5.6.39

./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/usr/lcoal/php5 --enable-mbstring --enable-fpm --with-jpeg-dir=/usr/lib && make && make install

2)安装后调整

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

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

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

3)安装zendguardlander 注意,若是64位系统,该软件得到其官网下载64位的相应软件包,若用32位的就会报错

tar xf zend-loader-php5.6-linux-x86_64_ipdate1.tar.gz -C /usr/src

cd /usr/src/zend-loader-php5.6-linux-x86-64

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

3,配置nginx 支持PHP环境

若要让Nginx能够解析PHP网页,有两种方法可以选择,其一:Nginx充当中介,将访问PHP页面的web

请求转交给其他服务器(lnmp)去处理,其二: 通过使用PHP的FPM模块来调用本机的PHP环境。

如果选用FPM 方式,则需要先启动PHP-FPM 进程,以便监听PHP解析请求,参考范例,建立php-fpm.conf

配置文件,并修改其中的pid文件,运行用户,服务数等相关设置,然后启动PHP-FPM程序即可

cd /usr/local/php5/etc

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

useradd -M -s /sbin/nologin php

vim php-fpm.conf

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

149 user = php     //运行用户

150 group = php   //运行组

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

251 pm.min_spare_server = 5   //最少空闲进程数

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

241 pm.max_children = 50  //最多空闲进程数

/usr/local/sbin/php-fpm

netstat -anpt |grep php-fpm

在Php-fpm.conf文件中,pid配置行指出了pid信息的存放位置,对应的实际路径为/usr/local/php5/var/run/php-fpm.pid

根据上述信息,可以修改Nginx服务脚本,以便在启动/停止nginx服务器时将PHP-fpm进程也自动启动/停止

vim /etc/init.d/nginx

#!/bin/bash

#chkconfig:2345 99 20

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

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

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

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

这样一旦启动或关闭nginx服务,php-fpm 程序也会随之启动或关闭,不需要额外再启动或关闭php-fpm

配置Nginx支持php解析

(调用本机的php-fpm进程)在conf/目录下的fastcgi.conf 文件中已经包含必须的宏设置,可以通过include语句添加进来

vim /usr/local/nginx/conf/nginx.conf

server {

.......//省略部分信息

location / {

root   html;

index  index.php index.html index.htm;

}

location ~ \.php$ {                                      //访问php 页面的配置端

root html;                                            //php 网页文档根目录

fastcgi_pass 127.0.0.1:9000;                //php-fpm 的监听地址

fastcgi_index index.php;                     //php 首页文件

include fastcgi.conf;                            //包括fastcgi.conf 样本配置

}

完成修改后重新加载Nginx服务即可生效

在php 文档根目录下创建一个测试网页,以便测试php 语句能否正常解析,以及访问mysql数据库

vim /usr/local/nginx/html/php.php

<?ph

phpinfo();

?>

vim /usr/local/nginx/html/mysql.php

<?php

$link=mysqli_connect('localhost','root','123456789');

if($link) echo "<h1>恭喜你,大功告成!! </h1>";

mysqli_close();

?>

4)lnmp 平台中部署web 应用

部署comsenzDISzuz BBS论坛系统

discuz社区论坛是一个采用php 与MySQL等多种数据库构建的性能优异,功能全面的且安全稳定

的社区论坛软件,其官网网站为http://www.discuz.net

unzip ComsenzDiscuzX-master.zip

cd DiscuzX

ls upload

设置权限及模块文件

cd /usr/local/nginx/html/bbs/config

cp config_global_default.php config_global.php

cp config_ucenter_default.php config_ucenter.php

cd /usr/local/nginx/html/bbs

chmod -R 777 config/ data/ uc_client/ uc_server/

给到权限之后目录文件可执行

准备数据库并配置相关授权

mysql -uroot -p123456789

mysql> create database bbs;

mysql> grant all on bbs.* to 'bbs'@'localhost' identified by 'bbs123456789';  //数据库账号与密码下面需要在浏览器中创建,注意一下,

mysql> flush privileges;

这个地方我的数据库密码为bbs123456789,截图有误,务必根据自己设置的填写,否则报错

LNMP动态网站架构及web应用部署,搭建discuz论坛的更多相关文章

  1. Centos7环境下部署搭建discuz论坛

    1.首先搭建lnmp环境 2.从官网复制git地址(https://gitee.com/ComsenzDiscuz/DiscuzX),在服务器上安装git命令 yum install git -y  ...

  2. office web apps 部署-搭建office web apps服务器

    二.搭建office web apps服务器 相关文件可以去焰尾迭分享的百度网盘下载,下载地址:http://pan.baidu.com/s/1o6tCo8y#path=%252Foffice%252 ...

  3. LNMP环境搭建(discuz论坛)

    一.操作系统级环境及软件版本 操作系统:CentOS release 6.5 (Final)minimal 内核版本:2.6.32-431.el6.x86_64 MySQL版本:MySQL-5.6.2 ...

  4. LAMP架构搭建+Discuz论坛搭建【weber出品必属精品】

    一.     本机简介: 本机系统: CentOS-6.4-x86_64 主机名:oracle.ywb IP地址:192.168.146.129 二.     在Linux环境下安装Apache步骤 ...

  5. Linux进阶之LAMP和LNMP动态网站搭建

    一.什么是LAMP LAMP=Linux Apache Mysql/MariaDB PHP/Perl/Python 这些软件都是开源免费的软件,几个程序各自是独立的,经常为了达到我们需要的效果而协同工 ...

  6. CentOS 7 架设LNMP动态网站

    1.安装Nginx 1)使用Nginx官方的yum源 [root@localhost ~]# vim /etc/yum.repos.d/nginx.repo [nginx] name=nginx re ...

  7. office web apps 部署-搭建域控服务器

    开始第一条先说注意事项:我所配置的环境是用了三台2012server虚拟机,三台虚拟机必须要加下域控,而且登录操作的时候必须以域账号登录,否则测试不通过!在笔记本上搭建了两个虚拟机(window se ...

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

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

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

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

随机推荐

  1. HLJU 1188 Matrix (二维树状数组)

    Matrix Time Limit: 4 Sec  Memory Limit: 128 MB Description 给定一个1000*1000的二维矩阵,初始矩阵中每一个数都为1,然后为矩阵有4种操 ...

  2. Shine.js实现动态阴影效果

    Shine.js 是一个用于实现美丽阴影的 JS 库. 特性 1.可动态旋转光的位置,投影出不同的阴影效果 2.可定制的阴影, 3.没有库依赖关系,AMD兼容使用基于内容的文本或框阴影 4.在浏览器支 ...

  3. Python3基础(六) 深入list列表

    正如Python FAQ1附录中说的, Python中任何值都是一个对象,所以任何类型(int.str.list-)都是一个类.而类就必然有它的方法或属性,我们要记下这么多类的所有方法显然是不可能的, ...

  4. BAT 前端开发面经 —— 吐血总结 前端相关片段整理——持续更新 前端基础精简总结 Web Storage You don't know js

    BAT 前端开发面经 —— 吐血总结   目录 1. Tencent 2. 阿里 3. 百度 更好阅读,请移步这里 聊之前 最近暑期实习招聘已经开始,个人目前参加了阿里的内推及腾讯和百度的实习生招聘, ...

  5. Asp.Net实现JS前台带箭头的流程图方法总结!(个人笔记,信息不全)

    Asp.Net实现JS前台带箭头的流程图方法总结!(持续更新中) 一.返回前台json格式 json5 = "[{\"Id\":2259,\"Name\&quo ...

  6. android 线程的开启和停止(借鉴java的技术)

    在onclick()点击事件中的 // 上传地理位置 case R.id.person_up_locat: System.out.println("====输出了.. .. ====&quo ...

  7. 【Eclipse提高开发速度-插件篇】安装VJET插件,JS等提示开发插件

    1.安装Apache Batik CSS 一般安装VJET插件会出现 Cannot complete the install because one or more required items co ...

  8. java有用的启动参数

    三大类选项: 1. 标准选项: 功能是很稳定的,所有的标准选项都是以-开头,比如-version, -server等. 2. X选项:以-X开头,这类选项的功能还是很稳定,但官方的说法是它们的行为可能 ...

  9. Set的非重复判断是根据什么判断的

    HashSet 首先来看下HashSet的add()这个方法的源代码: public boolean add(E e) { return map.put(e, PRESENT)==null; } 由此 ...

  10. DStream 转换操作------有状态转换操作

    import org.apache.spark.SparkConf import org.apache.spark.streaming.{Seconds, StreamingContext} obje ...