企业网站架构部署与优化 LNMP

news2024/9/24 15:19:52

【安装 Nginx 服务】
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
1、安装依赖包
yum -y install pcre-devel zlib-devel gcc gcc-c++ make

2、创建运行用户
useradd -M -s /sbin/nologin nginx

3、编译安装
cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/

cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

make && make install

4、优化路径
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

5、添加 Nginx 系统服务
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.target

chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service


【安装 MySQL 服务】
1、安装Mysql环境依赖包
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake

 

2、创建运行用户
useradd -M -s /sbin/nologin  mysql

3、编译安装
cd /opt
tar zxvf mysql-boost-5.7.20.tar.gz

cd /opt/mysql-5.7.20/
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_EXTRA_CHARSETS=all \
-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 && make install

4、修改mysql 配置文件
vim /etc/my.cnf
[client]
port = 3306
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
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
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

5、更改mysql安装目录和配置文件的属主属组
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

6、设置路径环境变量
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile    
source /etc/profile

7、初始化数据库
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

8、添加mysqld系统服务
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld

9、修改mysql 的登录密码
mysqladmin -u root -p password "abc123"

10、授权远程登录
mysql -u root -p


【安装配置 PHP 解析环境】
1、安装环境依赖包
yum -y install gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

 

2、编译安装
cd /opt
tar jxvf php-7.1.10.tar.bz2

cd 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 \
--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 && 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
--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
--939行--取消注释,修改
date.timezone = Asia/Shanghai

php -m                     #验证安装的模块

#调整进程服务配置文件:
cd /usr/local/php/etc/
cp  php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
--17行--去掉";"注释
pid = run/php-fpm.pid

#调整扩展配置文件:
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf

5、启动php-fpm
/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
netstat -anpt | grep 9000

#PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。

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


6、配置 Nginx 支持 PHP 解析
vim /usr/local/nginx/conf/nginx.conf
--65行--取消注释,修改
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;    #将 /scripts 修改为nginx的工作目录
   #fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;  #$document_root 代表当前请求在root指令中指定的值
    include        fastcgi_params;
}

 

systemctl restart nginx.service

7、验证PHP 测试页
vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>

浏览器访问
http://192.168.179.21/index.php

 

8、验证数据库工作是否正常
mysql -u root -p
CREATE DATABASE bbs;
GRANT all ON xny.* TO 'xny'@'%' IDENTIFIED BY 'admin123';
GRANT all ON xny.* TO 'xny'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;

vim /usr/local/nginx/html/index.php              #替换原来的测试页内容
<?php
$link=mysqli_connect('localhost','xny','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

浏览器访问
http://192.168.179.21/index.php

 


【部署 Discuz!社区论坛 Web 应用】
cd /opt
unzip Discuz_X3.4_SC_UTF8.zip  -d /opt/dis
cd /opt/dis/dir_SC_UTF8/
cp -r upload/ /usr/local/nginx/html/bbs/

调整论坛目录的权限:
cd /usr/local/nginx/html/bbs/
chown -R nginx ./config/
chown -R nginx ./data/
chown -R nginx ./uc_client/
chown -R nginx ./uc_server/

chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/

论坛页面访问
http://192.168.179.21/xny/index.php


----------------------------------------------------------------------------------------------------------
数据库服务器:localhost     ###本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号
数据库名字:xny
数据库用户名:xny
数据库密码:admin123
管理员账号:admin
管理员密码:admin123
----------------------------------------------------------------------------------------------------------
访问论坛页面:
http://192.168.179.21/xny/index.php
http://192.168.179.21/xny/admin.php

 

【部署 Wordpress!社区论坛 Web 应用】

cd /opt
tar xf wordpress-4.9.4-zh_CN.tar.gz
cp -r wordpress/ /usr/local/nginx/html/xny1

cd /usr/local/nginx/html

chown -R nginx xny1 或 chmod -R 777 xny1

http://192.168.179.21/wordpress/xny1/index.php

创建新的数据库表:

create database workpress;

GRANT all ON xny.* TO 'xny'@'%' IDENTIFIED BY 'admin123';
GRANT all ON xny.* TO 'xny'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;

----------------fpm参数优化-------------------
Nginx的PHP解析功能实现如果是交由FPM处理的,为了提高PHP的处理速度,可对FPM模块进行参数的调整
根据服务器的内存与服务负载,调整FPM模块参数

vim /usr/local/php/etc/php-fpm.conf 
pid = run/php-fpm.pid

vim /usr/local/php/etc/php-fpm.d/www.conf
--96行--
pm = dynamic                #fpm进程启动方式,动态的
--107行--
pm.max_children=20            #fpm进程启动的最大进程数
--112行--
pm.start_servers = 5        #动态方式下启动时默认开启的进程数,在最小和最大之间
--117行--
pm.min_spare_servers = 2    #动态方式下最小空闲进程数
--122行--
pm.max_spare_servers = 8    #动态方式下最大空闲进程数


kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`            #重启php-fpm
netstat -anpt | grep 9000
ps -elf | grep php-fpm

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

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

相关文章

Apifox软件的基础使用方式

Apifox软件的基础使用方式 简单方便的用途 该工具是接口在线调试工具&#xff0c;这里我给到连接供大家去官网下载&#xff0c;我个人觉得是比较于postman工具好用&#xff0c;提供的语言操作是中文版本的便于操作 下载和安装 https://apifox.com/?utm_sourcebaidu&ut…

【超详细】【YOLOV8使用说明】一套框架解决CV的5大任务:目标检测、分割、姿势估计、跟踪和分类任务【含源码】

目录 1.简介2.环境安装2.1安装torch相关库2.2 获取yolov8最新版本&#xff0c;并安装依赖 3. 如何使用模型用于各种CV任务3.1 目标检测任务实现检测图片代码检测视频代码 3.2 分割任务实现分割图片代码分割视频代码 3.3 追踪任务3.4 姿态检测任务姿态检测&#xff08;图片&…

27.Linux网络编程 掌握三次握手建立连接过程掌握四次握手关闭连接的过程掌握滑动窗口的概念掌握错误处理函数封装实现多进程并发服务器实现多线程并发服务器

基本概念叫协议 什么叫协议? 协议是一个大家共同遵守的一个规则&#xff0c; 那么在这个网络通信当中&#xff0c;其实就是双方通信和解释数据的一个规则&#xff0c;这个概念 你也不用记&#xff0c;你只要心里明白就可以了&#xff0c; 分层模型&#xff0c; 物数网传会表应…

Tensorflow GPU 版本安装教程

非常详细的 Tensorflow GPU 版本安装教程 一、安装Anaconda二、TensorFlow GPU 一、安装Anaconda 这一步比较简单&#xff0c;也没有太多的需要注意的&#xff0c;去官网下载即可&#xff1a; 官网地址如下&#xff1a; https://www.anaconda.com/blog/individual-edition-2…

百家云在人工智能领域再有新动作,发布应用于多个行业的AIGC解决方案

4月17日消息&#xff0c;音视频SaaS上市公司百家云&#xff08;股票代码&#xff1a;RTC&#xff09;今日宣布&#xff0c;公司将正式推出应用于多个垂直行业及场景的人工智能生成内容及视频解决方案。 百家云总裁马义表示&#xff0c;此次发布的解决方案&#xff0c;将在极短…

谷歌SEO优化技巧方法

谷歌SEO排名对于许多公司和个人来说都非常重要。随着谷歌成为人们搜索信息的首选&#xff0c;拥有良好的谷歌排名可以帮助我们的网站在搜索引擎中展现出更高的可见度&#xff0c;吸引更多的访问量和潜在客户。优化谷歌SEO排名需要一定的时间和专业知识&#xff0c;无法一蹴而就…

Vulnhub项目:Lin.Security(Linux提权大合集)

靶机地址&#xff1a;linsecurity 靶机描述了用户名和密码 用户名&#xff1a;bob、密码&#xff1a;secret 登录后看到了IP地址&#xff0c;或者在kali上像之前那样进行ip收集&#xff0c;端口收集 开放的端口有很多&#xff0c;从22端口开始&#xff0c;知道用户名和密码&…

供水管网爆管预测模型研究现状

配水管网是供水系统中最昂贵的组成部分。管网运行管理和调度技术难度高&#xff0c;爆管事故 容易发生&#xff0c;对人民生活、工业生产、城市交通及社会安定造成不利影响&#xff0c;造成严重的经济损 失。合理的管道的修复更新计划是满足供水目标、实现对管网的科学管理的重…

回炉重造五--软件管理

1.软件管理 1.1软件包中的文件分类 二进制文件库文件配置文件帮助文件 1.2包查询–rpm -a&#xff1a;所有包 -p:针对尚未安装的程序包文件做查询工作 -l:查看指定的程序包安装后生成的所有文件 -i:查看包的信息 #常用的查询方法 -qa/q/qi2、yum和dnf 2.1 yum/dnf工作原理…

数据库基础篇 《5. 排序与分页》

目录 1. 排序数据 1.1 排序规则 1.2 单列排序 1.3 多列排序 2. 分页 2.1 背景 2.2 实现规则 2.3 拓展 1. 排序数据 1.1 排序规则 使用 ORDER BY 子句排序 ASC &#xff08; ascend &#xff09; : 升序 DESC &#xff08; descend &#xff09; : 降序 ORDER …

【Java 数据结构】栈的实现及相关OJ题

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了 博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点!人生格言&#xff1a;当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔&#x1f9be;&am…

Flutter 通过 VS code 连接 Android 模拟器(Windows)

环境配置 Flutterhttps://flutter.cn/docs/get-started/install/windowsAndroid Studiohttps://developer.android.google.cn/studioVS code安装Flutter插件https://flutter.cn/docs/get-started/editor?tabvscode夜神模拟器https://www.yeshen.com 注意事项 Flutter安装之…

第五章_Redis事务

是什么 官网 能做什么 一个队列中&#xff0c;一次性、顺序性、排他性的执行一系列命令 Redis事务 VS 数据库事务 1 单独的隔离操作 Redis的事务仅仅是保证事务里的操作会被连续独占的执行&#xff0c;redis命令执行是单线程架构&#xff0c;在执行完事务内所有指令前是不可…

【浅学 Linux】

浅学 Linux 一、 Linux1. 目录2. 虚拟机的设置2.1 克隆与快照 3.系统与设置命令3.1 用户相关命令3.2 用户组3.3 管理用户组内成员3.4 日期管理3.5 显示用户3.6 id命令&sudo命令3.7 进程相关的命令top 查看进程ps 查看进展kill 杀死进程 4. Linux目录管理4.1 关机与重启命令…

RIP协议(路由信息协议)简介

一.动态路由简介 1.动态相对静态路由来说&#xff0c;找路更灵活&#xff0c;相互传递 2.分类&#xff1a; 二.RIP协议简介 1.三个版本RIPV1和RIPV2 (在IPV4中使用)&#xff0c; RIPNG (在IPV6中使用) 2.原理简介 三.配置 1.启用Rip 并指定进程ID (进程ID 只具有本地意义…

即插即用! | 国防科大联合慕尼黑工业大学提出新型解耦头 TSCODE: 引入yolov5/yolov7助力目标检测器轻松涨点!

1.Task-Specific COntext DEcoupling, TSCODE 介绍 论文:https://arxiv.org/pdf/2303.01047.pdf 本文提出了一种新颖的即插即用的特定于任务的上下文解耦头(Task-Specific COntext DEcoupling, TSCODE),通过进一步解开两个任务的特征编码来提升网络整体的性能 TSCODE整体的…

SYSU程设c++(第九周)函数对象、友元函数、友元类

函数对象&#xff1a; 如果一个类定义了operator()运算符函数&#xff0c;则可以使用该类的对象名为函数名调用这个函数. 函数对象是一个对象&#xff0c;但调用形式和普通函数调用一样&#xff0c;因此取名叫函数对象 (注意operator()先有个括号&#xff0c;接着才是括号(参数…

XHR 和 AJAX 的结合 - API 测试

大家好&#xff0c;之前一期介绍了怎样通过工具类进行对API 接口测试&#xff0c;这一期将演示如何手写一个 Ajax的请求。 什么是 XHR ? 全称为 XMLHttpRequest &#xff0c;它是浏览器内置的对象&#xff0c;使得 JavaScript 可以发送 HTTP 请求。 什么是Ajax ? Ajax是一种用…

Ubuntu用户权限、查看文件路径、防火墙

一、Ubuntu用户权限 1、设置root用户密码 sudo passwd root 新的 密码&#xff1a; 重新输入新的 密码&#xff1a; passwd&#xff1a;已成功更新密码2、普通用户赋予root权限 修改 /etc/sudoers 文件 su root vim /etc/sudoers把用户加入到root组 # root用户下操作 # -…

Elasticsearch 整合机器学习强化排序

作者&#xff1a;彭晟&#xff0c;2023 年 Elastic 开发者大会讲师 概述 Elasticsearch 整合机器学习强化排序, 介绍如何将机器学习预测能力迁移至 ES 内部&#xff0c;增强排序能力, 构建一个高性能&#xff0c;分布式搜排一体系统&#xff0c;并通过落地更多复杂模型特征和更…