Linux网站搭建(nginx+php+mysql)

news2024/9/22 5:39:56

中间件

web服务器:nginx(前端网页)+php

数据库服务器:mysql

思路:

        先安装中间件nginx,nginx要采用源码安装。安装按之后启动,可以访问到一个静态初始页面;然后安装php(超文本预处理器,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中),他的源码要用rpm安装,执行环境用yum;最后安装mysql数据库。全部完成后就可以进行连接了。

nginx

安装nginx服务器依赖环境

yum -y install  gcc-c++  pcre-devel  zlib-devel

安装完之后,可以看到下面有六个包,其中devel是开发包(看到让我们选择那种安装包的话,一般都选devel)

源码安装和yum安装的区别

①yum安装相当与于一键安装,自动帮你解析安装,解决一切问题

②源码安装相当于手动安装,路劲什么的都需要自己下载

③源码安装没有写入系统,启动的时候不能用systemctl来执行

源码安装

wget https://nginx.org/download/nginx-1.22.1.tar.gz   #获取源码
#wget是获取网上的安装包

tar -zxvf nginx-1.22.1.tar.gz   #解压安装包
#-z是对应后面的.gz。如果只是单纯的tar,就不用z

获取解压完源码之后就可以看到在家目录下面出现了这两文件

源码安装三步走:

知识点:

源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。

Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure –help输出详细的选项列表。其中--prefix选项是配置安装的路径。

如果不配置 --prefix 选项,安装后:

可执行文件默认放在/usr /local/bin,

库文件默认放在/usr/local/lib,

配置文件默认放在/usr/local/etc,

其它的资源文件放在/usr /local/share,

进入到nginx目录中可以看到下面存在一个配置文件和一个可执行文件。其中,conf是配置文件,configure是可执行文件(用来进一步生成可编译执行文件(makefile))

 第一步:指定编译安装目录

./configure --prefix=/usr/local/nginx    #指定安装目录为/usr/local/nginx
#默认情况下不指定安装路径的话是默认安装在/usr/local下 

执行完configure,在我们指定路径下进行查看,并没有看到生成的文件夹,因为这个时候只是生成可编译文件(makefile)而已,并没有开始进行编译

可以看到nginx目录下生成了一个makefile

&&/;连续执行的区别

&&:先成功执行前面的语句,再执行后续语句

;:不管前面的语句是否执行成功都执行后面的语句

第二步:编译与安装

make&&make install    #进行编译并且生成编译文件
#前面的make就是自动对c语言文件进行编译,后面是生成编译文件  

 要注意进行编译的路径

编译完成后,在/usr/local中进行查看,可以看到多了一个nginx文件夹

 对nginx文件夹进行查看,可以下面还有四个文件

conf:nginx的配置文件(如果用yum安装的话就是在/etc/conf目录下)

html:默认是nginx的网站根目录(要看配置文件的内容,可在配置文件中进行更改)

logs:日志文件

sbin:下面存放着可执行命令字nginx(本应该放在/目录下面的sbin文件夹,但是他是使用源码安装的,所以sbin放在我们指定的目录下)

nginx的主配置文件

路径:/usr/local/nginx/conf/nginx.conf

#pid        logs/nginx.pid;    #这个是询问是否开启nginx的pid,如果报错的话再进行开启

#配置文件分为两部分,一部分是http,一部分是https
#http
http {
    include       mime.types;    #文件拓展名与文件类型映射表
    default_type  application/octet-stream;    #默认文件下载类型
    sendfile        on;           #支持文件发送下载
    keepalive_timeout  65;        #连接保持超时时间
    server {
        listen       80;          #对应http使用的80端口
        server_name  localhost;   #网站的名称
        location / {
            root   html;  #网站的根目录,对应前面看到的文件夹
            index  index.html index.htm;    #网站主页
        }

        另外的编译生成文件方法(不建议)

         如果不用make进行编译安装的话,我们需要在/root/nginx-1.22.1/src/core 下对他的所有c语言带啊吗进行一行一行的安装,很麻烦

第三步:执行开启nginx

这时候执行nginx指令,用tab键发现不能补齐,说明这个指令不能被系统所获取。(按理说ngxin是sbin下面的可执行命令字,是可以执行的。但是采用的是源码安装,这个命令字并没有存放在根目录下的sbin中,所以要让系统进行获取这个指令)

配置环境变量

路径:/etc/profile
 

export NGINX_PATH=/usr/local/nginx/sbin
export PATH=$PATH:$NGINX_PATH

重新加载环境变量文件:source /etc/profile

nginx
        -v                查看版本
        -s stop        强制退出
        -s quit         正常退出       
        -s reload     重新加载  
        -s reopen    重新打开

两种启动nginx方式:

        ①直接到sbin目录下对nginx进行启动

        ②nginx -c /usr/local/nginx/conf/nginx.conf
           //指定主配置文件并开启服务(标准启动方式)

可能出现的问题

1.启动完之后就可以进行网页的访问。再访问的时候出现访问不到的情况,就是防火墙和selinx没关掉,应影响到网页的访问

2.如果是搭建在云服务器上面的话,就要在安全组中打开对应的端口

php

PHP-fpm //主机成管理器,在5.多版本就融入到php中间

下载
 

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
#获取安装包

yum -y install epel-release-latest-7.noarch.rpm   
#安装源

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
#下载他的源码

安装所有扩展:(php运行所需要的环境)

yum -y install php72w-cli php72w-common php72w-devel php-mysqli php72w-fpm php72w php72w-cli php72w-fpm php72w-curl php72w-gd php72w-mysql php72w-xml php72w-mbstring

编辑/etc/php.ini

short_open_tag = On        #若不开启,则无法识别php函数

开启php-fpm

systemctl start php-fpm  

在html下创建index.php,看一下是否可以访问得到它

<?php
phpinfo()
?>

编辑nginx配置文件

location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name; 
                                            #如果不能索引到就加上他的路径
            include        fastcgi_params;
        }


#在nginx配置文件中把php的#都取消掉
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }

重启服务

nginx -s reload
systemctl restart php-fpm.service

正常可访问

mysql

安装mysql

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar    #获取安装包

tar -xvf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar  #解压安装包

rpm -ivh mysql-community-server-8.0.30-1.el7.x86_64.rpm  #安装server版
#用rpm安装的时候解决不了环境依赖问题,在安装server的时候会进行报错。缺少什么环境就进行安装什么环境。

 在安装的时候报错缺少环境,就直接后面加上所需要的包就可以(tab补齐)  可以同时安装多个包

 安装的时候报错启用或者冲突,直接卸载启用文件就可以

没有报错,安装完成

阿里云服务器要安装

yum install libaio

要实现站库分离就要使用两台服务器

mysql的使用

systemctl start mysqld
#启动服务

grep “password” /var/log/mysqld.log   
#查看初始随机生成的密码

mysql -u root –p   
#连接数据库

use mysql
#要先使用数据库才能进行查询
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
#初次使用数据库的时候会报错,要求你修改密码

alter user 'root'@'localhost' identified by 'zhss@0121Lin';
#初次需要修改密码

show databases;
#查看数据库

select user,host from mysql.user;
#查询账户信息;

update user set host='%' where user='root';
#将表的host登陆方式从localhost(本地登录)更新成%(任意方式)
#第一个user代表user表,第二个是表中的user字段

用nginx服务器连接mysql数据库

在nginx服务器的网站根目录的index.php中进行编辑

<?php
$servername = "192.168.100.150";
$username = "root";
$password = "Hzm666888.";
$conn = mysqli_connect($servername,$username,$password);
if($conn->connect_error){
        die("lianjieshibai:".$conn->connect_error);
}
echo "success";
phpinfo();
?>

报错情况

出现这个情况就是密码复杂度问题,需要在mysql进行修改

alter user 'root'@"%' identified with mysql_native_password by 'yourpassword";        
#修改身份验证插件

CMS

网站源码(cms)导入

sudo scp /mnt/c/Users/Administrator/Desktop/PHPCMS.tar 192.168.100.110:/root/
#后面的:/root/ 是指定传入的路径,也可以跟ssh一样在ip前面加上 用户@ 指定传输用户
#通过子系统ubuntu从桌面传到centenos,也可以直接拉进去

将源码解压到网站根目录


修改PHPCMS/includes/db.php

<?php

$db['db_host'] = "localhost";    //数据库服务器地址
$db['db_user'] = "root";    //账户
$db['db_pass'] = "root";    //密码
$db['db_name'] = "cms";

将cms.sql传给数据库服务器 

scp PHPCMS/cms.sql root@192.168.100.150:/root/
#scp 文件 账户@IP地址:路径

mysql -u 账户名 -p < cms.sql
#导入数据库


 

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

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

相关文章

可节省40%MCU开发成本的音乐睡眠灯语音扩展芯片方案N9300-S16

随着社会节奏的加快&#xff0c;人们每天的生活节奏也在不断的加快&#xff0c;工作压力也在不断的加大&#xff0c;越来越多的人都面临着失眠的痛苦&#xff0c;当拖着疲惫不堪的身体躺到床上时&#xff0c;却发现由于担忧每天的工作或月底需要交房租等问题&#xff0c;久久无…

『赠书活动 | 第七期』《硅基物语》

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; 『赠书活动 &#xff5c; 第七期』 本期书籍&#xff1a;《硅基物语》 赠书规则&#xff1a;评论区&#xff1a;点赞&#xff5c;收藏&#xff5c;留言 评论区留言&a…

数据为基 成峰化海|GBASE南大通用openGauss Developer Day 2023精彩看点一览

5月26日&#xff0c;面向数据库开发者的年度技术盛会「openGauss Developer Day 2023」在北京圆满召开。本届大会以“聚数成峰&#xff0c;共赢未来”为主题&#xff0c;汇集产学研用各层面技术专家、企业领军&#xff0c;分享openGauss社区前沿技术创新、优秀实践和生态成果。…

linux内核升级详细步骤

# 安装yum源; rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm # 查看内核可用版本 yum --disablerepo"*" --enablerepo"elrepo-kernel" list available # 安装最…

Docker部署yolov5

目录 环境下载源码构建Docker镜像运行docker镜像运行目标检测出现partially initialized module cv2 has no attribute _registerMatType错误出现ImportError: libSM.so.6: cannot open shared object file: No such file or directory错误出现AttributeError: Upsample object…

产品设计需要学的8款软件

1、即时设计&#xff1a; 即时设计是国内广受 UI/UX 设计师和产品经理欢迎的专业产品设计工具。它内置了 iOS 和 Android 设计系统资源&#xff0c;可帮助用户快速启动设计工作。该工具集成了原型设计、UI 设计、交互设计、交付和资源管理等多种功能&#xff0c;并自带专业设计…

【云原生|探索 Kubernetes 系列 8】探究 Pod 的 API 对象属性级别与重要字段用法

前言 大家好&#xff0c;我是秋意零。 本专栏上一篇中&#xff0c;我们介绍了 Pod 的核心思想以及 Pod 的工作原理。今天我们还是探讨 Pod &#xff0c;聊一聊 Pod 的基本概念。 &#x1f47f; 简介 &#x1f3e0; 个人主页&#xff1a; 秋意零&#x1f9d1; 个人介绍&#x…

科研工具-Citespace和vosviewer文献计量及其可视化

文献计量学是指用数学和统计学的方法&#xff0c;定量地分析一切知识载体的交叉科学。它是集数学、统计学、文献学为一体&#xff0c;注重量化的综合性知识体系。特别是&#xff0c;信息可视化技术手段和方法的运用&#xff0c;可直观的展示主题的研究发展历程、研究现状、研究…

【正点原子STM32连载】 第二十二章 高级定时器实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第二十…

Yolov8轻量级:EfficientViT,基于级联分组注意力模块的全新实时网络架构,better speed and accuracy

EfficientViT: Memory Efficient Vision Transformer with Cascaded Group Attention 论文:https://arxiv.org/abs/2305.07027 代码:Cream/EfficientViT at main microsoft/Cream GitHub 🏆🏆🏆🏆🏆🏆Yolo轻量化模型🏆🏆🏆🏆🏆🏆 近些年对视觉Tra…

C++ 进阶篇复习:

本篇仅对本人C五月份的学习做一个大致的思维导图和总结&#xff0c;各个详细的知识点在具体文章中都有提到&#xff0c;本文不对所有的知识点做详细的解释&#xff0c;如有需要可以移步具体文章进行阅读理解。 目录 &#x1f914;类和对象&#xff1a; &#x1f642; 什么是类…

Spring Boot如何实现自定义条件注解

Spring Boot如何实现自定义条件注解 在Spring Boot中&#xff0c;条件注解是一种非常强大的工具&#xff0c;它可以根据特定的条件来选择是否加载某个类或某个Bean。Spring Boot已经提供了一些内置的条件注解&#xff0c;例如ConditionalOnClass、ConditionalOnBean等&#xf…

spring自定义注解及使用

文章目录 简介一、定义注解1.注解示例2.元注解含义&#xff08;1&#xff09;Target&#xff08;2&#xff09;Retention&#xff08;3&#xff09;Documented&#xff08;4&#xff09;Inherited&#xff08;5&#xff09;Native&#xff08;6&#xff09;Repeatable 二、使用…

mqtt订阅地址有串了情况是怎么回事「艾思科技」

当mqtt订阅地址出现串连的情况时&#xff0c;可能有以下几种可能的原因&#xff1a; 订阅主题错误&#xff1a;订阅地址中指定的主题可能有误。在mqtt中&#xff0c;订阅地址通常由主题和客户端ID组成&#xff0c;如果主题名称或者客户端ID设置错误&#xff0c;可能会导致订阅地…

高完整性系统工程(四): Checking Formal Specifications

目录 1. Alloy Modelling Overview 2. 有限状态机&#xff08;Finite State Machines&#xff09; 3. 在Alloy中建模有限状态机&#xff08;Modelling FSMs in Alloy&#xff09; 4. 在Alloy中检查规格&#xff08;CHECKING SPECIFICATIONS IN ALLOY&#xff09; 4.1 Allo…

Apache Kafka - 灵活控制Kafka消费_动态开启/关闭监听实现

文章目录 概述思路Code扩展KafkaListenerEndpointRegistry 概述 在实际应用中&#xff0c;往往需要根据业务需求动态开启/关闭Kafka消费者监听。例如&#xff0c;在某些时间段内&#xff0c;可能需要暂停对某个Topic的消费&#xff0c;或者在某些条件下才开启对某个Topic的消费…

毫米波雷达信号处理中的通道间相干与非相干积累问题

说明 相干和非相干积累是雷达信号处理中的常用方法&#xff0c;这两个概念一般是用在多脉冲积累这个问题上&#xff1a;积累可以提高信号的SNR&#xff0c;从而提高检出概率。不过本文内容与脉冲积累无关&#xff0c;本文讨论的话题是将这两个概念(non-coherent combination、c…

HEVC变换编码介绍

介绍 ● 图像变换编码是指将以空间域中像素形式描述的图像转化至变换域&#xff0c;以变换系数的形式加以表示&#xff1b; ● 图像都含有较多平坦区域和内容变化缓慢的区域&#xff0c;适当的变换可使图像能量在空间域的分散分布转为在变换域的相对集中分布&#xff0c;实现…

推出“百亿生态”,拼多多“极限左移”

文 | 螳螂观察 作者 | 陈小江 任何一个成功穿越周期的企业&#xff0c;都有一个共同的特点——在发展顺利的时候&#xff0c;主动跳出“舒适圈”&#xff0c;进而跳出一般企业“起始、成长、成熟、衰退”的发展周期&#xff0c;为企业发展画出漂亮的S型增长曲线。 日前&…

DC1通关

环境自己百度装好。 我的一台kali&#xff0c;一台DC都是52网段 1.nmap 扫一扫52网段 确定是143&#xff0c;然后针对143进行扫描 80开放&#xff0c;进去。 老熟人了 Drupal&#xff0c;直接msf开打 试了几个&#xff0c;use2直接getshell了 看看权限 尝试SUID提权 进入sh…