lnmp

news/2024/10/4 7:29:19

一、编译安装Nginx

1.前期准备

#安装依赖
yum -y install pcre-devel zlib-devel gcc gcc-c++ make#创建用户
useradd -M -s /sbin/nologin nginx#获取源码包
wget https://nginx.org/download/nginx-1.24.0.tar.gz
cd /opt 
tar xf nginx-1.24.0.tar.gz  #解压

2.开始编译安装

cd nginx-1.24.0/#编译
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

#安装
make -j2 && make install 
#让系统识别nginx操作命令,可以补全
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

3.添加到系统服务(systemd启动)

#新建nginx.service
vim /lib/systemd/system/nginx.service[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.targetsystemctl daemon-reload 
systemctl start nginx

二、编译安装MySQL服务

1.前置准备

#依赖环境
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake#添加用户
useradd -s /sbin/nologin  mysql
将MySQL源代码包放在 /opt目录下tar xf mysql-boost-5.7.20.tar.gz #解压cd mysql-5.7.20

2.编译安装

#编译
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-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#安装
make -j2 && make install 

3.编辑配置文件

#进入配置文件,把内容全删掉,然后加入以下内容
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
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1sql_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

4.更改mysql安装目录和配置文件的属主属组

chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

5.设置路径环境变量

echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile    
source /etc/profile

6.数据库初始化

cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

7.添加mysqld系统服务

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
#能用systemd启动
systemctl daemon-reload          刷新识别     
systemctl start mysqld.service   开启服务
systemctl enable mysqld          开机自启动ss -natp | grep 3306        查看端口

8.修改用户mysql 的登录密码

mysqladmin -u root -p password "123abc" mysql -u root -p #授权远程登录

三、编译安装PHP

1.前置准备

#安装依赖环境
#安装GD库和GD库关联程序,用来处理和生成图片
yum -y install \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel
将PHP源代码包放在 /opt目录下tar -jxvf php-7.1.10.tar.bz2 #解压cd /opt/php-7.1.10/

2.编译安装

#编译环境检测 功能模块添加
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip

#安装
make -j2 && make install

3.路径优化

ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/

4.调整PHP配置文件

php有三个配置文件
php.ini            主配置文件  
php-fpm.conf    进程服务配置文件 
www.conf        扩展配置文件

调整主配置文件

cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini #模板vim /usr/local/php/lib/php.ini #修改主配置文件

调整进程服务配置文件

cd /usr/local/php/etc/php-fpm.d/cp www.conf.default www.conf
vim php-fpm.conf

5.启动php-fpm

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.iniss -napt | grep 9000

cd /opt/php-7.1.10/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/php-fpm.servicesystemctl restart php-fpm.service

6.配置 Nginx 支持 PHP 解析

vim /usr/local/nginx/conf/nginx.conf

systemctl restart nginx.service

7.验证PHP 测试页

#创建网页文件
vi /usr/local/nginx/html/index.php<?php
phpinfo();
?>#重启nginx服务
systemctl restart nginx#在网页测试
http://192.168.100.140/index.php

四、安装论坛

1.以 root 用户身份登录到 MySQL 数据库,进行配置

mysql -u root -p 
#以 root 用户身份登录到 MySQL 数据库
mysql> CREATE DATABASE bbs;  #创建一个数据库mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';  #把bbs数据库里面所有表的权限授予给bbsuser,并设置密码mysql>flush privileges; #刷新数据库

2.解压Discuz源码包并配置

unzip /opt/Discuz_X3.4_SC_UTF8.zip #解压cd /opt/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/

3.安装Discuz论坛

浏览器访问
http://192.168.100.140/bbs/install/index.php

访问论坛

访问Discuz论坛
http://192.168.100.140/bbs/index.php

 

cd /usr/local/php/etc/ cp php-fpm.conf.default php-fpm.conf vim php-fpm.conf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/44342.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

手把手教你改造 Sentinel Dashboard 实现配置持久化

一. 概述 Sentinel客户端默认情况下接收到 Dashboard 推送的规则配置后,可以实时生效。但是有一个致命缺陷,Dashboard和业务服务并没有持久化这些配置,当业务服务重启后,这些规则配置将全部丢失。 Sentinel 提供两种方式修改规则:通过 API 直接修改 (loadRules) 通过 Data…

WPF修改MessageBox样式(.NET6版本)

.NET6版本及其以上版本,通过GlobalUsings 实现WPF中对MessageBox样式的全局应用一、问题场景 使用HandyControl简写HC 作为基础UI组件库时,希望系统中所有的MessageBox 样式都使用HC的MessageBox,常规操作如下: 在对应的xxxx.cs 顶部使用using 指定特定类的命名空间。 usin…

MISC——攻防世界

pdf 下载附件,一个PDF文件,打开,中间有一个框框,点一下,看见flag:flag{security_through_obscurity} 如来十三掌 下载附件: 夜哆悉諳多苦奢陀奢諦冥神哆盧穆皤三侄三即諸諳即冥迦冥隸數顛耶迦奢若吉怯陀諳怖奢智侄諸若奢數菩奢集遠俱老竟寫明奢若梵等盧皤豆蒙密離怯婆皤…

FreeRTOS简单内核实现4 临界段

本文内容较为简单,主要介绍如何实现临界段以及临界段如何使用@目录0、思考与回答0.1、思考一0.2、思考二0.3、思考三1、关中断1.1、带返回值1.2、不带返回值2、开中断3、临界段4、应用0、思考与回答 0.1、思考一 为什么需要临界段? 有时候我们需要部分代码一旦这开始执行,则…

第一章 进制,寄存器,汇编指令(公开课)

一、进制1、十进制:由0.1.2.3.4.5.6.7.8.9组成,逢十进一2、二进制:由0.1组成,逢二进一eg:0--01--12--103--114--1005--1016--1103、十六进制:由0.1.2.3.4.5.6.7.8.9.A.B.C.D.E.F组成,逢十六进一4、八进制eg:2-3=? 二、exe程序 1、PE文件结构:任何一个在Windows上运行的…

洛谷 P1216 数字三角形

题目链接:数字三角形思路dp:金字塔顶的元素为起点,金字塔每行的最左侧数字只能从上一层的最左侧数字到达,如7 -> 3 -> 8 -> 2 -> 4,这些数字中的每一个(除起点7外)都只能从上一层的最左侧数字到达,递推公式为dp[i][1] = max(dp[i][1], num[i][1] + dp[i - …

Qt/C++音视频开发77-获取本地有哪些摄像头名称/ffmpeg命令日志方式

一、前言 上一篇文章讲使用ffmpeg函数接口去获取本地摄像头信息,这种方式只能从ffmpeg5版本开始才具备,那ffmpeg3/4只能干瞪眼?那肯定不行的,必须要想办法打通这个功能,查阅信息发现可以执行命令 ffmpeg -f dshow -list_devices true -i dummy 去获取,会通过日志打印出来…

ants:强大的高性能与低成本 Go 协程池

ants:强大的高性能与低成本 Go 协程池 原创 K8sCat 源自开发者 2024-06-16 11:28 广东 听全文源自开发者 专注于提供关于Go语言的实用教程、案例分析、最新趋势,以及云原生技术的深度解析和实践经验分享。 256篇原创内容公众号在开发高并发程序时,管理并发的能力至关重要。在…