热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

lnmpmysqltcp6_LNMP架构详解

LNMP架构详解(需要本实验的源码包请私信我)Nginx安装挂载源码包[rootlocalhost~]#smbclient-L192.168.100.23#访问宿主机EnterSA

20191113104133165856.jpg

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]# ls

mysql-boost-5.7.20.tar.gz nginx-1.12.2.tar.gz php-7.1.20.tar.gz

nginx-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 nginx

uid=1001(nginx) gid=1001(nginx) 组=1001(nginx)

[root@localhost opt]# cd nginx-1.12.2/

[root@localhost nginx-1.12.2]# ls

auto CHANGES.ru configure html man src

CHANGES 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 ok

nginx: 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]# ls

access.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 Script

PROG="/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 1

esac

exit 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 nginx

tcp 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]# ls

mysql-boost-5.7.20.tar.gz nginx-1.12.2.tar.gz php-7.1.20.tar.gz

nginx-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 = 3306

default-character-set=utf8

socket = /usr/local/mysql/mysql.sock

[mysql] ##客户端

port = 3306

default-character-set=utf8

socket = /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 3306

tcp6 0 0 :::3306 :::* LISTEN 73971/mysqld

设置mysql密码

[root@localhost mysql]# mysqladmin -u root -p password #一开始是空的密码,可以设置abc123

Enter 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 -p

Enter 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]# ls

mysql-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.ini

1170 行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.conf

pid = run/php-fpm.pid

#扩展的文件中我们复制一份出来

[root@localhost etc]# cd php-fpm.d/

[root@localhost php-fpm.d]# ls

www.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 9000

tcp 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]# ls

50x.html index.html

[root@localhost html]# mv index.html index.php

[root@localhost html]#vim index.php

#把原来的内容删掉,写PHP的网页

phpinfo();

?>

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

20191113104133545754.png

安装,配置论坛

[root@localhost html]# mysql -u root -p

mysql> 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]# ls

Discuz_X3.4_SC_UTF8.zip nginx-1.12.0.tar.gz php-7.1.10.tar.bz2

mysql-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/

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

20191113104133643414.png

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

20191113104133865102.png

20191113104133905143.png

登录论坛

20191113104134064328.png

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



推荐阅读
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 嵌入式处理器的架构与内核发展历程
    本文主要介绍了嵌入式处理器的架构与内核发展历程,包括不同架构的指令集的变化,以及内核的流水线和结构。通过对ARM架构的分析,可以更好地理解嵌入式处理器的架构与内核的关系。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • PeopleSoft安装镜像版本及导入语言包的方法
    本文介绍了PeopleSoft安装镜像的两个版本,分别是VirtualBox虚拟机版本和NativeOS版本,并详细说明了导入语言包的方法。对于Windows版本,可以通过psdmt.exe登录进入,并使用datamover脚本导入语言包。对于Linux版本,同样可以使用命令行方式执行datamover脚本导入语言包。导入语言包后,可以实现多种语言的登录。参考文献提供了相关链接以供深入了解。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • PG12新增的VACUUM命令的SKIP_LOCKED选项
    PG12版本的VACUUM命令新增了SKIP_LOCKED选项,该选项使得vacuum命令在遇到被lock住的table时可以跳过并被视为成功执行。之前的版本中,vacuum命令会一直处于等待状态。本文还提到了PostgreSQL 12.1版本的相关信息。 ... [详细]
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
  • 本文介绍了在无法联网的情况下,通过下载rpm包离线安装zip和unzip的方法。详细介绍了如何搜索并下载合适的rpm包,以及如何使用rpm命令进行安装。 ... [详细]
author-avatar
梦里有很多很多
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有