zoukankan      html  css  js  c++  java
  • LNMP动态网站架构及web应用部署,搭建discuz论坛

    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

    5nginx运行控制

    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)去处理,其二: 通过使用PHPFPM模块来调用本机的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,截图有误,务必根据自己设置的填写,否则报错

  • 相关阅读:
    decode函数
    自我介绍
    语法》第六章 数组
    语法》第二章 数据类型
    语法》第四章 字符串
    语法》第七章 函数
    取模和取余的区别
    语法》第五章 对象
    语法》第三章 数值
    语法》第一章 基本语法
  • 原文地址:https://www.cnblogs.com/zc1741845455/p/10472368.html
Copyright © 2011-2022 走看看