学习linux从0到初级工程师-3
一、LNMP
1.1 搭建LNMP
LNMP:Linux+Nginx+Mysql+PHP
LNMP优势:
1.web服务器一种,Nginx处理静态文件、索引文件,自动索引的效率非常高;
2.作为代理服务器,Nginx可以实现无缓存的反向代理加速,提高网站运行速度;
3.作为负载均衡服务器、Nginx可以在内部直接支持Redis和PHP,可以支持HTTP代理服务器对外进行服务,同时还支持简单的容错和利用算法进行负载;
4.性能方面,Nginx是专门为性能优化开发的,采用Poll模型,最大支持5万并发连接,而且占用很少一部分内存资源;使CPU占用资源非常的低,DDOS攻击对 Nginx来说基本上无效;高可用性,Nginx支持热部署,启动速度特别迅速,对软件版本或者配置升级,即使运行数月也无需启动,几乎可以做到7*24小时不间断运行。
安装基本环境准备
yum -y install gcc gcc-c++ wget expat-devel
##安装Nginx
添加nginx为系统用户
# groupadd -r nginx
# useradd -r -g nginx -d /usr/local/nginx -M nginx
# cd /usr/local/software
# tar -zxvf headers-more-nginx-module-0.32.tar.gz
# tar -zxvf nginx-1.20.1.tar.gz
# cd nginx-1.20.1
# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --add-module=/usr/local/software/headers-more-nginx-module-0.32
# make && make install && echo "say ok"
启动nginx
# /usr/local/nginx/sbin/nginx
##安装Mysql
由于是源码安装,所以需要我们创建用户
# groupadd -r mysql
# useradd -r -g mysql -s /bin/false mysql #注释:-r 创建系统账户(id低于499)。
# cd /usr/local/software
# tar -zxvf boost_1_59_0.tar.gz -C /usr/local
# tar -zxvf mysql-5.7.23.tar.gz
# cd mysql-5.7.23
# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/db/mysql/data \
-DWITH_BOOST=/usr/local/boost_1_59_0/ \
-DSYSCONFDIR=/etc \
-DEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all
# make && make install
如果编译报错,需要先删除CMakeCache.txt文件。
##配置mysql
1)创建存放数据库目录
# mkdir -p /db/mysql/data
# chown -R mysql:mysql /usr/local/mysql/
# chown -R mysql:mysql /db/mysql/
2)创建my.cnf配置文件
# touch /db/mysql/mysqld.log
# chown mysql:mysql /db/mysql/mysqld.log
# vim /etc/my.cnf
################ start #################
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /db/mysql/data
tmpdir = /tmp
character-set-server = utf8
collation-server = utf8_general_ci
[mysqld_safe]
log-error=/db/mysql/mysqld.log
################ stop #################
3)初始化mysql
# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/db/mysql/data
4)编辑启动脚本
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# vim /etc/init.d/mysqld
################ start #################
basedir=/db/mysql/data
datadir=/user/local/mysql
################ stop #################
# chmod +x /etc/init.d/mysqld
5)设置开机自启动
# chkconfig --add mysqld
# chkconfig mysqld on
# /etc/init.d/mysqld start
6)访问mysql
# ln -s /usr/local/mysql/bin/* /usr/bin/
# mysql -uroot -p #默认密码为空
##配置my.cnf
##mv /etc/my.cnf /etc/my.cnf.bak
cat >/etc/my.cnf<<EOF
[client]
port=3306
socket=/data/mysql/mysql.sock
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
skip-name-resolve
user=mysql
port=3306
basedir=/usr/local/mysql57
datadir=/data/mysql
tmpdir=/tmp
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysqld.log
pid-file=/data/mysql/mysqld.pid
EOF
##安装PHP
#安装前确保系统没有安装其他版本的php
rpm -qa | grep php
#下载源码安装包
tar jxf php-7.4.6.tar.bz2
cd php-7.4.6
./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-curl --with-iconv --with-mhash --with-zlib --with-openssl --enable-mysqlnd --with-mysqli --with-pdo-mysql --disable-debug --enable-sockets --enable-soap --enable-inline-optimization --enable-xml --enable-ftp --enable-gd --enable-exif --enable-mbstring --enable-bcmath --with-fpm-systemd
make && make install
##根据安装提示进行依赖包安装,解决依赖性
# yum install -y systemd-devel.x86_64
# yum install -y libxml2-devel.x86_64
# yum install -y sqlite-devel.x86_64
# yum install -y libcurl-devel.x86_64
# yum install -y libpng-devel.x86_64
# yum install -y oniguruma-6.8.2-1.el7.x86_64.rpm oniguruma-devel-6.8.2-1.el7.x86_64.rpm
#根据提示安装以来后,再次进行make && make install
路径优化,方便命令识别
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/
修改php文件配置
php有三个配置文件:
php.ini 主配置文件
php-fpm.conf 进程服务配置文件
www.conf 扩展配置文件
#使用命令进行文件修改:
cp php.ini-development /usr/local/php/lib/php.ini
vi /usr/local/php/lib/php.ini
/1170 mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai
/usr/local/php/bin/php -m //验证安装的模块
#复制主配置文件及php-fpm 配置文件
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf
cd /usr/local/php/etc/
vi php-fpm.conf
#开启pid 支持(可运行)
pid = run/php-fpm.pid
#启动php -c 代表 conf
/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
netstat -anpt | grep 9000
#识别命令
ln -s /usr/local/php/bin/* /usr/local/bin/
#
ps aux | grep -c "php-fpm" //查看php的进程
#让nginx支持PHP功能
vi /usr/local/nginx/conf/nginx.conf //在合适的位置
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;
}
vi /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
systemctl restart nginx
#部署 Discuz!社区论坛 Web 应用
cd /opt
unzip Discuz_X3.4_SC_UTF8.zip -d /tmp
cd /tmp/dir_SC_UTF8/
cp -r upload/ /usr/local/nginx/html/bbs/
cd /usr/local/nginx/html/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/
http://IP地址/bbs/install/index.php
相关文章:
学习linux从0到初级工程师-3
一、LNMP 1.1 搭建LNMP LNMP:LinuxNginxMysqlPHP LNMP优势: 1.web服务器一种,Nginx处理静态文件、索引文件,自动索引的效率非常高; 2.作为代理服务器,Nginx可以实现无缓存的反向代理加速,提高网站运行…...

java实现文件上传到本地
很多时候我们都需要进行文件上传和下载的操作,具体怎么实现网上的代码其实也是挺多的,刚好我的项目中也遇到了文件上传和下载的需求,本篇博文具体讲解上传操作,下篇博文讲解下载操作。 我们具体来想一想要将一个从前端传来的文件…...

基于springboot+vue的多媒体素材库的开发与应用系统
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 主要内容:毕业设计(Javaweb项目|小程序|Pyt…...

《GitHub新手入门指南:从零开始掌握基本用法》
在现代软件开发和技术社区中,GitHub已经成为了一个不可或缺的平台。它不仅是一个代码托管平台,更是一个技术交流、学习分享的社交平台。但对于初学者来说,GitHub可能会有些令人望而却步。本文将详细介绍GitHub的基本用法,帮助新手快速入门并融入这个充满活力的技术社区。 …...

K8S存储卷与PV,PVC
一、前言 Kubernetes(K8s)中的存储卷是用于在容器之间共享数据的一种机制。存储卷可以在多个Pod之间共享数据,并且可以保持数据的持久性,即使Pod被重新调度或者删除,数据也不会丢失。 Kubernetes支持多种类型的存储卷…...
(科目三)简答题汇总
模块一 信息和计算机基础 一、简述信息的的特征 【记忆技巧】普传功夫真驾驶 普遍性:信息是无时不有的,无时不在的载体依附性:信息不能独立存在,必须有载体。价值性:同一则信息,对不同的人来说,价值不同。时效性:同…...

8、Redis-Jedis、Lettuce和一个Demo
目录 一、Jedis 二、Lettuce 三、一个Demo Java集成Redis主要有3个方案:Jedis、Lettuce和Redisson。 其中,Jedis、Lettuce侧重于单例Redis,而Redisson侧重于分布式服务。 项目资源在文末 一、Jedis 1、创建SpringBoot项目 2、引入依赖 …...

(Linux学习六)用户特殊权限类型,suid,chattr,umask
一、特殊位suid,针对文件/程序时,具备临时提升权限 分析:root运行是超管的权限,普通用户运行时是普通用户的权限 root /usr/bin/cat(root) /root/file1.txt ok alice/usr/bin/cat(alice) /root/file1.txt 无法访问rootchmod us filename …...
Mysql 数据类型的转换之 cast()
语法 cast( value as type) value 要进行数据转换的值(可以为任何类型)。type 要转换为的数据类型。type 的常见的类型可以为 : decimal十进制浮点数。可以使用可选的 M 和 D 参数指定最大位数 (M) 和小数点后的位数 (D)float浮点数dou…...
python重命名指定文件夹下的所有文件
最近要测试OCR功能,图片的命名有点杂乱无章.每次找指定名字的图片非常的不容易,所以写了一个小工具来重名了所有的图片. 我这里就用0001到9999的字符串命名了. import os def rename_files(folder_path):# 获取文件夹中所有文件名files os.listdir(folder_path)num 1# 遍历…...
通过多线程并发方式实现服务器
与多进程实现对比来看。 示例来源于网络视频 #include <stdio.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> #include <ctype.h> #include <unistd.h> #include <fcntl.h>#include "wrap.h"#de…...

【C语言】指针超级无敌金刚霹雳进阶(但不难,还是基础)
点击这里访问我的博客主页~~ 对指针概念还不太清楚的点击这里访问上一篇指针初阶2.0 上上篇指针初阶1.0 谢谢各位大佬的支持咯 今天我们一起来学习指针进阶内容 指针进阶 一、指针变量1、字符指针变量2、数组指针变量①数组指针变量的定义②数组指针变量的初始化 3、函数指…...

上位机图像处理和嵌入式模块部署(qmacvisual入门)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 虽然我们前面学习了很多的知识点,比如说在windows这边,用qt写界面,用opencv写图像处理代码;在linux…...
数据库事务问题整理-MySQL
什么是数据库事务? 数据库事务( transaction)是访问并可能操作(增删改查都可能有)各种数据项的一个数据库操作序列(可能有1或多个SQL语句),这些操作要么全部执行,要么全部不执行,是一个不可分割…...

工具函数模板题(蓝桥杯 C++ 代码 注解)
目录 一、Vector容器: 二、Queue队列 三、Map映射 四、题目(快递分拣 vector): 代码: 五、题目(CLZ银行问题 queue): 代码: 六、题目(费里的语言 map&…...
Ansible playbook 简介 使用场景
Ansible playbook 简介 playbook 是 ansible 用于配置,部署,和管理被控节点的剧本。 通过 playbook 的详细描述,执行其中的一系列 tasks ,可以让远端主机达到预期的状态。playbook 就像 Ansible 控制器给被控节点列出的的一系…...
TS总结10、ts的 class 类型(配置项strictPropertyInitialization、非空断言)
一、简介 1.类(class)是面向对象编程的基本构件,封装了属性和方法 1.1、属性的类型:类的属性可以在顶层声明,也可以在构造方法内部声明,如果不给出类型;TypeScript 会认为x和y的类型都是any&a…...

leetcode 热题 100_找到字符串中所有字母异位词
题解一: 滑动窗口:类似于字符串匹配,但匹配异位词需要包含相同的字母及个数,可以分别用两个数组存储字符串s滑动窗口和字符串p的字母及个数,再用Array.equals()进行比对。对于s.length()<p.length()的情况需要特判。…...
百度百科数据爬取 python 词条数据获取
最近需要补充一些电力名词的解释,尤其是文字相关内容。百度百科上的词条质量有差异,因此我们需要先手工选择一些高质量词条。 假设我们选择了互感器页面中的仪用变压器词条,首先: import requests from bs4 import BeautifulS…...
为不同文章形式选择不同的WordPress文章模板
在写文章的时候选择不同的文章形式,然后打开文章的时候会调用不同文章形式的模板。比如,文章形式为video ,就调用single-video.php模板,其它文章形式类似,可以添加多个文章样式。 //为不同文章形式的内容添加不同的si…...

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...

蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...