linux cpu占用率如何看
219
2022-10-13
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]# 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- #状态统计模块 [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进程服务配置文件
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 conf.default [root@localhost php-fpm.d]# cp conf.default 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的网页
到这里我们的LNMP架构已经好了,去客户机测试一下网页
安装,配置论坛
[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]# lsdir_SC_UTF8 说明.htm[root@localhost mnt]# cd dir_SC_UTF8/[root@localhost dir_SC_UTF8]# lsreadme 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/
到网站上去加载数据包,加载论坛
登录论坛
以上就是我们全部的内容了
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~