千家信息网

LNMP架构详解

发表于:2024-10-04 作者:千家信息网编辑
千家信息网最后更新 2024年10月04日,LNMP架构详解(需要本实验的源码包请私信我)Nginx安装挂载源码包[root@localhost ~]# smbclient -L //192.168.100.23/ #访问宿主机Enter S
千家信息网最后更新 2024年10月04日LNMP架构详解

LNMP架构详解

(需要本实验的源码包请私信我)

Nginx安装

挂载源码包

[root@localhost ~]# smbclient -L //192.168.100.23/  #访问宿主机Enter SAMBA\root's password: OS=[Windows 10 Enterprise 17763] Server=[Windows 10 Enterprise 6.3]    Sharename       Type      Comment    ---------       ----      -------    ADMIN$          Disk      远程管理    C$              Disk      默认共享    D$              Disk      默认共享    E$              Disk      默认共享    F$              Disk      默认共享    G$              Disk      默认共享    IPC$            IPC       远程 IPC    LAMP            Disk          LAMP-C7         Disk          LNMP            Disk          share           Disk          Users           Disk      [root@localhost ~]# mkdir chen/  #创建挂载点[root@localhost ~]# mount.cifs //192.168.100.23/LNMP chen/  #挂载Password for root@//192.168.100.23/LNMP:  

解压nginx包到opt底下

[root@localhost ~]# cd chen/[root@localhost chen]# lsmysql-boost-5.7.20.tar.gz  nginx-1.12.2.tar.gz  php-7.1.20.tar.gznginx-1.12.0.tar.gz        php-7.1.10.tar.bz2[root@localhost chen]# tar zxvf nginx-1.12.2.tar.gz -C /opt/

安装nginx环境包

[root@localhost opt]# yum install gcc gcc-c++ pcre-devel zlib-devel -y#c语言,c++语言,pcre语言,数据压缩用的函数库已安装:  gcc.x86_64 0:4.8.5-39.el7          gcc-c++.x86_64 0:4.8.5-39.el7        pcre-devel.x86_64 0:8.32-17.el7    zlib-devel.x86_64 0:1.2.7-18.el7   作为依赖被安装:  cpp.x86_64 0:4.8.5-39.el7                                                glibc-devel.x86_64 0:2.17-292.el7                                        glibc-headers.x86_64 0:2.17-292.el7                                      kernel-headers.x86_64 0:3.10.0-1062.4.1.el7                              libmpc.x86_64 0:1.0.1-3.el7                                              libstdc++-devel.x86_64 0:4.8.5-39.el7                                  作为依赖被升级:  glibc.x86_64 0:2.17-292.el7       glibc-common.x86_64 0:2.17-292.el7    libgcc.x86_64 0:4.8.5-39.el7      libgomp.x86_64 0:4.8.5-39.el7         libstdc++.x86_64 0:4.8.5-39.el7   zlib.x86_64 0:1.2.7-18.el7        

创建nginx用户去管理,安装组件,编译安装

[root@localhost opt]# useradd -M -s /sbin/nologin nginx  #创建nginx用户,不指定家目录,不让它登录本地控制台[root@localhost opt]# id nginxuid=1001(nginx) gid=1001(nginx) 组=1001(nginx)[root@localhost opt]# cd nginx-1.12.2/[root@localhost nginx-1.12.2]# lsauto     CHANGES.ru  configure  html     man     srcCHANGES  conf        contrib    LICENSE  README[root@localhost nginx-1.12.2]# ./configure \  #执行脚本,安装组件--prefix=/usr/local/nginx \  #指定路径--user=nginx \  #指定用户--group=nginx \  #指定组--with-http_stub_status_module  #状态统计模块[root@localhost nginx-1.12.2]# make  #编译[root@localhost nginx-1.12.2]# make install  #编译安装

启动服务查看端口有没有被开启

[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx  /usr/local/sbin/  #做个软链接让系统能识别nginx的命令[root@localhost nginx-1.12.2]# nginx -t  #检查nginx配置语法有没有错误nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[root@localhost logs]# nginx  #开启nginx服务[root@localhost nginx-1.12.2]# netstat -ntap | grep nginx  #查看nginx端口tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      8878/nginx: master  [root@localhost nginx-1.12.2]# systemctl stop firewalld.service  #关闭防火墙[root@localhost nginx-1.12.2]# setenforce 0  #关闭增强功能

做个脚本让service管理器方便管理nginx服务

[root@localhost init.d]# cd /usr/local/nginx/logs/[root@localhost logs]# lsaccess.log  error.log  nginx.pid[root@localhost logs]# cat nginx.pid   #查看nginx的进程号,我们关闭,启动,都是靠这个进程号8878[root@localhost nginx-1.12.2]# cd /etc/init.d/  #到系统脚本中[root@localhost init.d]# vim nginx  #添加nginx脚本#!/bin/bash#chkconfig: - 99 20  #注释信息#description: Nginx Service Control ScriptPROG="/usr/local/nginx/sbin/nginx"  #这个变量,指向我的命令文件PIDF="/usr/local/nginx/logs/nginx.pid"  #这个变量,指向nginx的进程号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 1esacexit 0[root@localhost logs]# chmod +x /etc/init.d/nginx #添加执行权限[root@localhost logs]# chkconfig --add nginx  #添加nginx[root@localhost logs]# service nginx stop  #关闭nginx[root@localhost logs]# service nginx start  #开启nginx[root@localhost logs]# netstat -ntap | grep nginxtcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      9185/nginx: master  

mysql安装配置

安装环境包,创建程序用户

[root@localhost logs]# cd ~[root@localhost ~]# yum -y install \gcc \  #c语言gcc-c++ \ #c++语言ncurses \  ncurses-devel \  #控制终端屏幕显示的库bison \  #语法分析工具cmake  #cmake工具[root@localhost ~]# useradd -s /sbin/nologin mysql  #创建程序性用户

解压缩,编译安装

[root@localhost ~]# cd chen/[root@localhost chen]# lsmysql-boost-5.7.20.tar.gz  nginx-1.12.2.tar.gz  php-7.1.20.tar.gznginx-1.12.0.tar.gz        php-7.1.10.tar.bz2[root@localhost chen]# tar zxvf mysql-boost-5.7.20.tar.gz -C /opt #解压缩到opt底下[root@localhost chen]# cd /opt/[root@localhost opt]# cd mysql-5.7.20/cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \  #安装路径-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \  #定义sock文件连接数据库文件-DSYSCONFDIR=/etc \  #配置文件目录-DSYSTEMD_PID_DIR=/usr/local/mysql \  #PID文件目录-DDEFAULT_CHARSET=utf8 \  #指定字符集-DDEFAULT_COLLATION=utf8_general_ci \  #指定字符集默认-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #存储引擎,以下三个都是-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/usr/local/mysql/data \  #数据库数据文件目录-DWITH_BOOST=boost \ #底层运行库-DWITH_SYSTEMD=1  #主从参数[root@localhost mysql-5.7.20]#make #编译[root@localhost mysql-5.7.20]#make install #编译安装

配置mysql

[root@localhost mysql-5.7.20]#cd /usr/local/[root@localhost local]# chown -R mysql:mysql mysql/ #提升mysql权限,属祝,属组[root@localhost local]# cd /opt/mysql-5.7.20/[root@localhost mysql-5.7.20]# vim /etc/my.cnf     ##调整配置文件[client]                            ##客户端port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysql]                           ##客户端     port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysqld]                         ##服务器        user = mysql                  ##用户basedir = /usr/local/mysql      ##设置mysql的安装目录datadir = /usr/local/mysql/data    ##设置mysql数据库的数据的存放目录port = 3306                    ##设置3306端口character_set_server=utf8            ##中文字符集pid-file = /usr/local/mysql/mysqld.pid     ##pid文件路径socket = /usr/local/mysql/mysql.sock     ##sock文件路径server-id = 1                                           ##主从参数sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

使系统能识别mysql所有命令

[root@localhost local]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile#设置环境变量,使系统能识别bin和lib下的所有命令[root@localhost local]# echo 'export PATH' >> /etc/profile#全局变量[root@localhost local]# source /etc/profile #重新启动系统环境变量

初始化数据库

[root@localhost local]# cd /usr/local/mysql/bin/mysqld \--initialize-insecure \  #初始化--user=mysql \  #指定用户--basedir=/usr/local/mysql \ #指定安装目录--datadir=/usr/local/mysql/data #数据库数据文件目录

开启mysql数据库

[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /lib/systemd/system/#把mysql启动脚本放到系统中可以systemctl可以管理[root@localhost mysql]# systemctl start mysqld.service[root@localhost mysql]# netstat -ntap | grep 3306tcp6       0      0 :::3306                 :::*                    LISTEN      73971/mysqld        

设置mysql密码

[root@localhost mysql]# mysqladmin -u root -p password #一开始是空的密码,可以设置abc123Enter password: New password: Confirm new password: Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.[root@localhost mysql]# mysql -u root -pEnter password: 

安装配置PHP

安装环境包

yum install -y \libjpeg \                              ##jpeg图片格式和开发包libjpeg-devel \libpng libpng-devel \           ##png图片和开发包freetype freetype-devel \    ##字体库libxml2 \                              ##xml文件库libxml2-devel \zlib zlib-devel \                    ##压缩库 curl curl-devel \                   ##支持数据文件下载工具openssl openssl-devel        ##安全访问连接

解压,压缩

[root@localhost chen]# cd chen/[root@localhost chen]# tar zxvf php-7.1.20.tar.gz -C /opt/[root@localhost chen]# cd /opt/[root@localhost opt]# lsmysql-5.7.20  nginx-1.12.2  php-7.1.20  rh

安装PHP组件

[root@localhost opt]# cd php-7.1.10/[root@localhost php-7.1.10]# ./configure --prefix=/usr/local/php                        ##安装路径--with-mysql-sock=/usr/local/mysql/mysql.sock   ##连接文件建立通信桥梁--with-mysqli                                    ##客户端支持库--with-zlib                                         ##压缩--with-curl                                        ##支持上传下载功能--with-gd                                          ##gd图像支持图片处理库--with-jpeg-dir                                  ##jpeg--with-png-dir                                   ##png--with-freetype-dir                            ##字体--with-openssl                                  ##安全访问连接--enable-fpm                                    ##fpm支持动态请求模块--enable-mbstring                            ##支持多字节的字符串--enable-xml                                    ##xml文件--enable-session                             ##session支持会话--enable-ftp                                     ##ftp服务--enable-pdo                                   ##驱动连接管理--enable-tokenizer                          ##PHP自带函数--enable-zip                                    ##zip压缩包

编译安装

[root@localhost php-7.1.20]# make[root@localhost php-7.1.20]# make install

配置PHP

PHP有三个配置文件,php.ini核心配置文件 php-fpm.conf进程服务配置文件

www.conf 扩展配置文件

cp php.ini-development /usr/local/php/lib/php.ini  #把核心文件复制一份出来工作目录底下vim /usr/local/php/lib/php.ini1170 行mysql.default_socket= /usr/local/mysql/mysql.sock#添加mysql   sock路径 939 行 date.timezone = Asia/Shanghai#添加时区,上海的时区/usr/local/php/bin/php -m #验证安装模块#配置及优化FPM模块[root@localhost php-7.1.20]# cd /usr/local/php/etc/[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf#开启监控PID[root@localhost etc]# vim php-fpm.confpid = run/php-fpm.pid#扩展的文件中我们复制一份出来[root@localhost etc]# cd php-fpm.d/[root@localhost php-fpm.d]# lswww.conf.default[root@localhost php-fpm.d]# cp www.conf.default www.conf#启动用sbin配置文件指向lib下的配置文件[root@localhost php-fpm.d]# /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini 

查看端口有没有被开启

[root@localhost php-fpm.d]# netstat -natp | grep 9000tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      92879/php-fpm: mast 

做个软链接让系统能识别PHP下的所有命令

[root@localhost php-fpm.d]# ln -s /usr/local/php/bin/* /usr/local/bin/[root@localhost php-fpm.d]#cd /usr/local/nginx/conf/[root@localhost php-fpm.d]#vim nginx.conf#让nginx能支持PHP功能#指定站点目录路径       location ~ \.php$ {            root           html;            fastcgi_pass   127.0.0.1:9000;            fastcgi_index  index.php;            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;            include        fastcgi_params;        }[root@localhost conf]# systemctl stop nginx.service[root@localhost conf]# systemctl start nginx.service

修改网页文件

[root@localhost conf]# cd /usr/local/nginx/html/[root@localhost html]# ls50x.html  index.html[root@localhost html]# mv index.html  index.php[root@localhost html]#vim index.php#把原来的内容删掉,写PHP的网页

到这里我们的LNMP架构已经好了,去客户机测试一下网页

安装,配置论坛

[root@localhost html]# mysql -u root -pmysql> CREATE DATABASE bbs;  #创建数据库mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123'; #提权数据库当中的所有表格用户bbsuser为管理员设定密码mysql> GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';mysql> flush privileges; #刷新数据库mysql> quit[root@localhost opt]# cd ~mount.cifs //192.168.100.23/LNMP /opt/[root@localhost ~]# cd /opt/[root@localhost opt]# lsDiscuz_X3.4_SC_UTF8.zip    nginx-1.12.0.tar.gz  php-7.1.10.tar.bz2mysql-boost-5.7.20.tar.gz  nginx-1.12.2.tar.gz  php-7.1.20.tar.gz

解压安装论坛包

[root@localhost opt]# unzip Discuz_X3.4_SC_UTF8.zip -d /mnt/
[root@localhost opt]# cd /mnt/
[root@localhost mnt]# ls
dir_SC_UTF8 说明.htm
[root@localhost mnt]# cd dir_SC_UTF8/
[root@localhost dir_SC_UTF8]# ls
readme upload utility

[root@localhost dir_SC_UTF8]# cp -r upload/ /usr/local/nginx/html/bbs#复制/opt目录里的内容到html站点的bbs目录中
[root@localhost dir_SC_UTF8]# cd /usr/local/nginx/html/bbs/ ##进入bbs站点目录

给程序用户提权

[root@localhost bbs]# chown -R root:nginx ./config/chown -R root:nginx ./data/chown -R root:nginx ./uc_client/chown -R root:nginx ./uc_server/chmod -R 777 ./config/chmod -R 777 ./data/chmod -R 777 ./uc_client/chmod -R 777 ./uc_server/

到网站上去加载数据包,加载论坛



登录论坛

以上就是我们全部的内容了

0