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. load函数

    load函数的作用 1.load函数的作用是,从server获取数据,而且把数据放到指定的元素(通常是div元素)中. 2.说的再具体一些就是,把获取到的数据插入到当前文档的某个div元素中. ser ...

  2. Android 好看的搜索界面,大赞Animation

    转载请注明出处王亟亟的大牛之路 一直对Animation属于可有可无的不在意.看到个样例,认为在不切换的情况下,适当的应用还真是蛮好看的. 包结构: 一个类一个控件.内容简单. 执行效果: 下方的下方 ...

  3. Git实战(三)环境搭建

    上次的博文中.我们介绍了一下关于Git作为版本号控制工具的基本原理,接下来我们来搭建一个主要的Git环境(因为我使用的是Windows系统.所以重点側重在这方面). Git安装 Git的安装很easy ...

  4. 数据结构之中序遍历转兴许遍历(JAVA实现)(二)

    算法流程: 主要分为四步: 1.当前字符为数字或者字母,则直接输出 2.当前字符为).则在栈中匹配输出.一直匹配到),则停止输出(就是将)及其顶上的元素所有弹出来输出) 3.当前字符为操作符.则比較当 ...

  5. apache在windows下的命令安装与报错解决

    1.在windows下能够通过执行apache的exe文件就能够,但当我们打包的时候,就须要命令来安装apache.apache在windows下用命令下的安装为: apache.exe -k ins ...

  6. 【翻译自mos文章】将expdp的dmp文件从asm磁盘组里边放到本地文件系统里边

    将expdp的dmp文件从asm磁盘组里边放到本地文件系统里边 參考原文: How To Extract Datapump File From ASM Diskgroup To Local Files ...

  7. java有用的启动参数

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

  8. 如何理解Apache License, Version 2.0(整理)

    如何理解Apache License, Version 2.0(整理) 问题: 最近看到apache发布了2.0版本的License.而且微软也以此发布了部分源代码.我对OpenSource不是特熟, ...

  9. ORACLE数据删除数据删除的解决办法

    今天主要以oracle数据库为例,介绍关于表中数据删除的解决办法.(不考虑全库备份和利用归档日志)删除表中数据有三种方法:·delete(删除一条记录)·drop或truncate删除表格中数据 1. ...

  10. 字典(Trie树)

    4189 字典  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 大师 Master     题目描述 Description 最经,skyzhong得到了一本好厉害的字典,这个 ...