当前位置: 首页 > news >正文

学习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&#xff1a;LinuxNginxMysqlPHP LNMP优势&#xff1a; 1.web服务器一种&#xff0c;Nginx处理静态文件、索引文件&#xff0c;自动索引的效率非常高&#xff1b; 2.作为代理服务器,Nginx可以实现无缓存的反向代理加速&#xff0c;提高网站运行…...

java实现文件上传到本地

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

基于springboot+vue的多媒体素材库的开发与应用系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…...

《GitHub新手入门指南:从零开始掌握基本用法》

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

K8S存储卷与PV,PVC

一、前言 Kubernetes&#xff08;K8s&#xff09;中的存储卷是用于在容器之间共享数据的一种机制。存储卷可以在多个Pod之间共享数据&#xff0c;并且可以保持数据的持久性&#xff0c;即使Pod被重新调度或者删除&#xff0c;数据也不会丢失。 Kubernetes支持多种类型的存储卷…...

(科目三)简答题汇总

模块一 信息和计算机基础 一、简述信息的的特征 【记忆技巧】普传功夫真驾驶 普遍性&#xff1a;信息是无时不有的&#xff0c;无时不在的载体依附性:信息不能独立存在&#xff0c;必须有载体。价值性:同一则信息&#xff0c;对不同的人来说&#xff0c;价值不同。时效性:同…...

8、Redis-Jedis、Lettuce和一个Demo

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

(Linux学习六)用户特殊权限类型,suid,chattr,umask

一、特殊位suid,针对文件/程序时&#xff0c;具备临时提升权限 分析:root运行是超管的权限&#xff0c;普通用户运行时是普通用户的权限 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 要进行数据转换的值&#xff08;可以为任何类型&#xff09;。type 要转换为的数据类型。type 的常见的类型可以为 &#xff1a; 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入门)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 虽然我们前面学习了很多的知识点&#xff0c;比如说在windows这边&#xff0c;用qt写界面&#xff0c;用opencv写图像处理代码&#xff1b;在linux…...

数据库事务问题整理-MySQL

什么是数据库事务&#xff1f; 数据库事务( transaction)是访问并可能操作&#xff08;增删改查都可能有&#xff09;各种数据项的一个数据库操作序列&#xff08;可能有1或多个SQL语句&#xff09;&#xff0c;这些操作要么全部执行,要么全部不执行&#xff0c;是一个不可分割…...

工具函数模板题(蓝桥杯 C++ 代码 注解)

目录 一、Vector容器&#xff1a; 二、Queue队列 三、Map映射 四、题目&#xff08;快递分拣 vector&#xff09;&#xff1a; 代码&#xff1a; 五、题目&#xff08;CLZ银行问题 queue&#xff09;&#xff1a; 代码&#xff1a; 六、题目&#xff08;费里的语言 map&…...

Ansible playbook 简介 使用场景

Ansible playbook 简介 playbook 是 ansible 用于配置&#xff0c;部署&#xff0c;和管理被控节点的剧本。   通过 playbook 的详细描述&#xff0c;执行其中的一系列 tasks &#xff0c;可以让远端主机达到预期的状态。playbook 就像 Ansible 控制器给被控节点列出的的一系…...

TS总结10、ts的 class 类型(配置项strictPropertyInitialization、非空断言)

一、简介 1.类&#xff08;class&#xff09;是面向对象编程的基本构件&#xff0c;封装了属性和方法 1.1、属性的类型&#xff1a;类的属性可以在顶层声明&#xff0c;也可以在构造方法内部声明&#xff0c;如果不给出类型&#xff1b;TypeScript 会认为x和y的类型都是any&a…...

leetcode 热题 100_找到字符串中所有字母异位词

题解一&#xff1a; 滑动窗口&#xff1a;类似于字符串匹配&#xff0c;但匹配异位词需要包含相同的字母及个数&#xff0c;可以分别用两个数组存储字符串s滑动窗口和字符串p的字母及个数&#xff0c;再用Array.equals()进行比对。对于s.length()<p.length()的情况需要特判。…...

百度百科数据爬取 python 词条数据获取

最近需要补充一些电力名词的解释&#xff0c;尤其是文字相关内容。百度百科上的词条质量有差异&#xff0c;因此我们需要先手工选择一些高质量词条。 假设我们选择了互感器页面中的仪用变压器词条&#xff0c;首先&#xff1a; import requests from bs4 import BeautifulS…...

为不同文章形式选择不同的WordPress文章模板

在写文章的时候选择不同的文章形式&#xff0c;然后打开文章的时候会调用不同文章形式的模板。比如&#xff0c;文章形式为video &#xff0c;就调用single-video.php模板&#xff0c;其它文章形式类似&#xff0c;可以添加多个文章样式。 //为不同文章形式的内容添加不同的si…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

全面解析数据库:从基础概念到前沿应用​

在数字化时代&#xff0c;数据已成为企业和社会发展的核心资产&#xff0c;而数据库作为存储、管理和处理数据的关键工具&#xff0c;在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理&#xff0c;到社交网络的用户数据存储&#xff0c;再到金融行业的交易记录处理&a…...

从零开始了解数据采集(二十八)——制造业数字孪生

近年来&#xff0c;我国的工业领域正经历一场前所未有的数字化变革&#xff0c;从“双碳目标”到工业互联网平台的推广&#xff0c;国家政策和市场需求共同推动了制造业的升级。在这场变革中&#xff0c;数字孪生技术成为备受关注的关键工具&#xff0c;它不仅让企业“看见”设…...