centos7 nginx安装_网站服务器怎么搭建?centos7.5搭建LNMP (详细+实战)

本文详细介绍了如何在Linux CentOS 7.5上搭建LNMP环境,包括安装Nginx、PHP7.2和MariaDB10.2,并进行了防火墙配置、数据库初始化以及权限设置等关键步骤。通过这个过程,读者可以学习到服务器端的基础配置和管理知识。
摘要由CSDN通过智能技术生成

2f2e2c543740e0e54ba4e202da671f7b.png

目录:

1)LNMP简介

2)安装nginx1.4

3)安装php7.2

4)安装mariadb10.2

5)总结

一、LNMP简介

L:linux,是目前最流行的免费操作系统,版本有很多,rehat,debian,ubuntu,centos等等,我用的是centos7.5。

N:nginx,是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。nginx市场份额越来越大,这里也可以选择Apache,老大哥,宝刀未老。

M:Mysql是一个小型关系型数据库管理系统,我觉得已经不小了,对于绝大多数的情况,够用了,这里我用的mariadb10.2,mariadb和mysql都是出自同个作者,这里不讲它们的故事。

P:世界上最好的编程语言,一种在服务器端执行的嵌入HTML文档的脚本语言。

linux+nginx+mysql/mariadb+php,这四个开源项目组在一起,成为一个免费、高效、扩展性强的网站服务系统,这是一个网站服务器架构,学会它就能打通任督二脉,无忌,跟着为师走。

二、安装nginx

1. 防火墙设置,允许http,https通信。

firewall-cmd --zone=public --add-service=http --permanent //允许http通信

firewall-cmd --zone=public --add-service=https --permanent  //允许https通信

firewall-cmd --zone=public --add-port=80/tcp --permanent //打开80端口

firewall-cmd --zone=public --add-port=443/tcp --permanent //打开443端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent //打开8080端口

firewall-cmd --reload //重新加载配置

2. 下载基本的库文件

yum intall pcre pcre-devel yum install zlib zlib-devel yum install openssl; openssl-devel

3. 配置nginx官方源,下载和安装

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

yum install nginx //安装nginx

4. 了解基本配置文件

主配置文件:/etc/nginx/nginx.conf

默认配置文件:/etc/nginx/conf.d/default.conf

我们编辑一下default.conf这个文件。

注意,这里server_name 我写的是我这台电脑的局域网地址及访问端口,你可以设置其它或者默认不变,如果是默认的话浏览器那里不需要输入端口号。

d40bdffdca39ab9acb06000c833e6efd.png
nginx

5. 局域网访问测试一下。

dc3f0bf13ad95f79eb095bf03009240a.png
nginx运行成功

到这里nginx安装使用成功,如果你这里无法访问,绝大多数情况下是SELINUX和防火墙的问题。注意,如果你是云服务器的话是需要在服务商后台那里添加安全组策略的。

三、安装php7.2

1. 配置php7.2yum源

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

2. 安装php7.2及一些扩展工具

yum install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml

3. 启动php-fpm

systemctl php-fpm //启动

systemctl enable php-fpm //设置开机启动

注意,nginx是通过php-fpm处理php文件的。

4. 让nginx支持php,红色方框就是改的地方。

vim /etc/nginx/conf.d/default.conf

a853706bf9f062bcb910a71f6fc1bad0.png
nginx支持php

运行一个php文件

vim /usr/share/nginx/html/index.php //编辑文件

<?php phpinfo();?>

保存,在浏览器访问试一下。

6f3223c1491df3c11d44d25ddd01f2c9.png
phpinfo()

四、安装数据库mariadb10.2

1. 卸载系统自带的数据库

首先,centos7.5里面自带的mariadb5.5版本的,所以第一步,我先卸载掉很老老老老老老的版本。

rpm -qa|grep mariadb

yum remove mariadb-*文件

它会删除一些依赖文件,不用担心。

2. 配置mariadb10.2yum源

vim /etc/yum.d.repos.d/MariaDB.repo

# MariaDB 10.2 CentOS repository list - created 2019-01-08 08:30 UTC

# http://downloads.mariadb.org/mariadb/repositories/

[mariadb] name = MariaDB

baseurl = http://yum.mariadb.org/10.2/centos7-amd64

gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck=1

以上配置的源是mariadb官方源,下载速度,一个星期的时间是完全可以下载下来的。

如果你想一根烟的时间就能完成下载,替换为国内源:

[mariadb] name = MariaDB

baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.2/centos7-amd64

gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB

gpgcheck=1

保存退出。

yum clean&&yum update //更新一下yum源

yum install MariaDB-client MariaDB-server //安装

systemctl start mariadb

systemctl enable mariadb //设置开机启动

OK,mariadb安装完成。

3. 初始化mariadb

首先使用mysql_secure_installation命令进行配置。

根据自己的要求配置,可以按照我的图片走

Set root password? [Y/n]

New password:

Re-enter new password:

其他配置

Remove anonymous users? [Y/n]

Disallow root login remotely? [Y/n]

Remove test database and access to it? [Y/n]

Reload privilege tables now? [Y/n]

f6e5e169b6fd49840c57c92204031421.png
mariadb初始化

登录

mysql -uroot -p //本地登录

a84ededa47d64b3af928c8c5414ff962.png
mariadb登录成功

登录成功

4. 简单配置mariadb

先配置服务端,配置文件:/etc/my.cnf.d/server.cnf

vim /etc/my.cnf.d/server.cnf

在[mysqld]标签下添加以下内容

init_connect='SET collation_connection = utf8_unicode_ci'

init_connect='SET NAMES utf8'

character-set-server=utf8

collation-server=utf8_unicode_ci

skip-character-set-client-handshake

保存退出

再配置客户端,配置文件:/etc/my.cnf.d/mysql-clients.cnf

vim /etc/my.cnf.d/mysql-clients.cnf

在[mysql]中添加

default-character-set=utf8 保存退出

重启mariadb服务

systemctl restart mariadb

之后登录mariadb,输入下面代码,查看一下我们的设置有没有成功。

show variables like "%character%";show variables like "%collation%";

4d85314a1636d19186b6fcf09ffd4395.png
mariadb字符配置

5. 测试mariadb

现在nginx,php,mariadb都有了,我们来做个简单的测试,写个简单的代码,访问数据库。

vim /usr/share/nginx/html/index.php

代码:

if(!$link){ e

cho "Game Over." .PHP_EOL;

echo "Debugging errno:" .mysqli_connect_errno() .PHP_EOL;

echo "Debugging error:" .mysqli_connect_error() .PHP_EOL;

exit;

}

else{

echo "Very Good" .PHP_EOL;

echo "Host information:" .mysqli_get_host_info($link) .PHP_EOL;

}

mysqli_close($link);

我们在浏览器访问看看。

e862f4bdfae6bc2fe32c1739ac82b8a0.png
php connect mariadb

有些朋友写的不是localhost,而是127.0.0.1,可能会出现Permission denied权限问题,如下图。

c54955e125f65e39eea0305a954bd8cb.png
permission denied

这是因为selinux拦截了,我们设置以下就可以。

setsebool httpd_can_network_connect_db = on

用localhost比127.0.0.1在安全及性能上都要好,感兴趣的朋友可以阅读相关文档。

五、总结

到这里,LNMP就搭建成功了,我第一次配置的时候遇到很多权限问题,其实也是好事。从问题出现,到分析问题,再到解决问题,你会收获很多知识,那些问题让你的脑袋不断的思考,最后,任督二脉打通了。

喜欢的话就关注我吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 目标检测的定义 目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。 目标检测任务可分为两个关键的子任务,目标定位和目标分类。首先检测图像中目标的位置(目标定位),然后给出每个目标的具体类别(目标分类)。输出结果是一个边界框(称为Bounding-box,一般形式为(x1,y1,x2,y2),表示框的左上角坐标和右下角坐标),一个置信度分数(Confidence Score),表示边界框中是否包含检测对象的概率和各个类别的概率(首先得到类别概率,经过Softmax可得到类别标签)。 1.1 Two stage方法 目前主流的基于深度学习的目标检测算法主要分为两类:Two stage和One stage。Two stage方法将目标检测过程分为两个阶段。第一个阶段是 Region Proposal 生成阶段,主要用于生成潜在的目标候选框(Bounding-box proposals)。这个阶段通常使用卷积神经网络(CNN)从输入图像中提取特征,然后通过一些技巧(如选择性搜索)来生成候选框。第二个阶段是分类和位置精修阶段,将第一个阶段生成的候选框输入到另一个 CNN 中进行分类,并根据分类结果对候选框的位置进行微调。Two stage 方法的优点是准确度较高,缺点是速度相对较慢。 常见Tow stage目标检测算法有:R-CNN系列、SPPNet等。 1.2 One stage方法 One stage方法直接利用模型提取特征值,并利用这些特征值进行目标的分类和定位,不需要生成Region Proposal。这种方法的优点是速度快,因为省略了Region Proposal生成的过程。One stage方法的缺点是准确度相对较低,因为它没有对潜在的目标进行预先筛选。 常见的One stage目标检测算法有:YOLO系列、SSD系列和RetinaNet等。 2 常见名词解释 2.1 NMS(Non-Maximum Suppression) 目标检测模型一般会给出目标的多个预测边界框,对成百上千的预测边界框都进行调整肯定是不可行的,需要对这些结果先进行一个大体的挑选。NMS称为非极大值抑制,作用是从众多预测边界框中挑选出最具代表性的结果,这样可以加快算法效率,其主要流程如下: 设定一个置信度分数阈值,将置信度分数小于阈值的直接过滤掉 将剩下框的置信度分数从大到小排序,选中值最大的框 遍历其余的框,如果和当前框的重叠面积(IOU)大于设定的阈值(一般为0.7),就将框删除(超过设定阈值,认为两个框的里面的物体属于同一个类别) 从未处理的框中继续选一个置信度分数最大的,重复上述过程,直至所有框处理完毕 2.2 IoU(Intersection over Union) 定义了两个边界框的重叠度,当预测边界框和真实边界框差异很小时,或重叠度很大时,表示模型产生的预测边界框很准确。边界框A、B的IOU计算公式为: 2.3 mAP(mean Average Precision) mAP即均值平均精度,是评估目标检测模型效果的最重要指标,这个值介于0到1之间,且越大越好。mAP是AP(Average Precision)的平均值,那么首先需要了解AP的概念。想要了解AP的概念,还要首先了解目标检测中Precision和Recall的概念。 首先我们设置置信度阈值(Confidence Threshold)和IoU阈值(一般设置为0.5,也会衡量0.75以及0.9的mAP值): 当一个预测边界框被认为是True Positive(TP)时,需要同时满足下面三个条件: Confidence Score > Confidence Threshold 预测类别匹配真实值(Ground truth)的类别 预测边界框的IoU大于设定的IoU阈值 不满足条件2或条件3,则认为是False Positive(FP)。当对应同一个真值有多个预测结果时,只有最高置信度分数的预测结果被认为是True Positive,其余被认为是False Positive。 Precision和Recall的概念如下图所示: Precision表示TP与预测边界框数量的比值 Recall表示TP与真实边界框数量的比值 改变不同的置信度阈值,可以获得多组Precision和Recall,Recall放X轴,Precision放Y轴,可以画出一个Precision-Recall曲线,简称P-R
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值