首页 > 其他分享 >部署 LNMP 架构

部署 LNMP 架构

时间:2023-10-26 21:06:33浏览次数:39  
标签:PHP 架构 部署 LNMP nginx php71w Web01 php root

本篇文章介绍 LNMP 架构部署项目,包括 Nginx 安装配置、PHP 安装配置、数据库 Mariadb 安装配置、Nginx 连通 PHP、PHP 连通 MySQL。


0)LNMP 架构

Linux Nginx Mysql PHP

Nginx 不能处理动态请求,如果是动态请求,就需通过 fastcgi 协议转交给后端的 PHP 程序处理。

1)Nginx 安装配置

1.1)安装 Nginx

配置官网 yum 仓库

[root@Web01 ~] vim /etc/yum.repos.d/nginx.repo

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[root@Web01 ~] yum clean all
[root@Web01 ~] yum makecache
[root@Web01 ~] yum install nginx -y

1.2)创建虚拟用户

[root@Web01 ~] groupadd -g 666 www
[root@Web01 ~] useradd -u666 -g666 -M -s /sbin/nologin www

1.3)配置 Nginx 启动用户为 www

[root@Web01 ~] vim /etc/nginx/nginx.conf
user  www;
worker_processes  auto;

1.4)启动 Nginx 加入开机自启动

[root@Web01 ~] systemctl start nginx
[root@Web01 ~] systemctl enable nginx
[root@Web01 ~] systemctl status nginx

image.png

2)PHP 安装配置

2.1)配置 PHP 软件仓库并安装 PHP

1. 配置 PHP 仓库
[root@Web01 ~] rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@Web01 ~] rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
[root@Web01 ~] yum remove php-mysql-5.4 php php-fpm php-common


2. 配置第三方源
[root@Web01 ~] vim /etc/yum.repos.d/php.repo

[php-webtatic]
name = PHP Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
gpgcheck = 0


3. 安装 PHP
[root@Web01 ~] yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb --nogpgcheck

或者是使用 rpm 包,直接上传后解压。

链接:https://pan.baidu.com/s/1KERI097kxOhynDkNJ7RbXA 提取码:qlbt

yum -y localinstall *.rpm

2.2)修改PHP启动用户为 www

[root@Web01 ~] sed -i '/^user/c user = www' /etc/php-fpm.d/www.conf
[root@Web01 ~] sed -i '/^group/c group = www' /etc/php-fpm.d/www.conf

2.3)启动服务并设置开机自启

[root@Web01 ~] systemctl start php-fpm
[root@Web01 ~] systemctl enable php-fpm
[root@Web01 ~] systemctl status php-fpm

image.png

2.4)验证状态

[root@Web01 ~] netstat -nltp

image.png

3)安装数据库 Mariadb

3.1)安装数据库

[root@Web01 ~] yum install mariadb-server -y

3.2)启动数据库、设置开机自启动、查看状态

[root@Web01 ~] systemctl start mariadb
[root@Web01 ~] systemctl enable mariadb
[root@Web01 ~] systemctl status mariadb
[root@Web01 ~] netstat -nltp

image.png

3.3)配置用户密码,默认是 root

1. 配置 MySQL 密码为 P@ssw0rd123456
[root@Web01 ~] mysqladmin password 'P@ssw0rd123456'

2. 登录 MySQL 数据库
[root@Web01 ~] mysql -uroot -pP@ssw0rd123456
MariaDB [(none)]> show databases; 			# 查看有哪些库
MariaDB [(none)]> create database hehe; # 创建 haha 库
MariaDB [(none)]> drop database hehe; 	# 删除 haha 库
MariaDB [(none)]> exit 									# 退出数据库

注:配置数据库密码需服务启动后才能配置

4)测试 Nginx 连通 PHP

  • < 站点目录:/code >
  • < 反向代理:php.wuhanjiayou.cn 至 127.0.0.1:9000 >
  • < 优先索引:index.php index.html >
[root@Web01 /] vim /etc/nginx/conf.d/default.conf

server {
        listen 80;
        server_name php.wuhanjiayou.cn;
 
        location / {
                root /code;
                index index.php index.html;
        }
 
        location ~ \.php$ {
                root /code;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        	include fastcgi_params;
}
}

[root@Web01 /] nginx -t
[root@Web01 /] systemctl restart nginx

[root@Web01 /] mkdir /code
[root@Web01 /] cat /code/index.php
<?php
        phpinfo();
?>

Windows 本地 hosts 解析后,即可访问 PHP 有关信息

< 如访问报错:403 Forbidden > [ 关闭 SElinux ] image.png

setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld

image.png

5)测试 PHP 连通 MySQL

[root@Web01 /]# vim /code/mysql.php

<?php
    $servername = "localhost";
    $username = "root";
    $password = "P@ssw0rd123456";
    
    // 创建连接
    $conn = mysqli_connect($servername, $username, $password);
    
    // 检测连接
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
    echo "PHP 成功连接 MySQL 数据库 ...";
?>

image.png 完成

标签:PHP,架构,部署,LNMP,nginx,php71w,Web01,php,root
From: https://blog.51cto.com/blogking/8042557

相关文章

  • Logstash架构介绍
    1.1为什么需要Logstash对于部分生产上的日志无法像Nginx那样,可以直接将输出的日志转为Json格式,但是可以借助Logstash来将我们的”非结构化数据“,转为“结构化数据”;filbeat-->logstash(inputfileteroutput)--es1.2什么是LogstashLogstash是免费且开放的服务器端数......
  • ros架构
    ros架构简介ROS架构的三个层次:基于Linux系统的OS层;实现ROS核心通信机制以及众多机器人开发库的中间层;在ROSMaster的管理下保证功能节点的正常运行的应用层。·从系统实现角度将ROS划分成的三个层次:计算图、文件系统和开源社区,其中涵盖了ROS中的关键概念,如节点、消息、话题、服......
  • 深度解读MediaBox SDKs如何实现技术架构升级
    本专栏将分享阿里云视频云MediaBox系列技术文章,深度剖析音视频开发利器的技术架构、技术性能、开发能效和最佳实践,一起开启音视频的开发之旅。本文为MediaBox技术架构篇,重点从音视频终端SDK的技术架构、优化设计、架构优势等方面,介绍MediaBoxSDKs如何实现技术架构升级。善师|作者......
  • 深度解读MediaBox SDKs如何实现技术架构升级
    本专栏将分享阿里云视频云MediaBox系列技术文章,深度剖析音视频开发利器的技术架构、技术性能、开发能效和最佳实践,一起开启音视频的开发之旅。本文为MediaBox技术架构篇,重点从音视频终端SDK的技术架构、优化设计、架构优势等方面,介绍MediaBoxSDKs如何实现技术架构升级。:::hlj......
  • 简单脚本部署——下
     华为云耀云服务器L实例的获取界面:https://www.huaweicloud.com/product/hecs-light.html 在华为云耀云服务器L实例上搭载了脚本并且需要测试其功能时,以下是一些步骤和考虑事项: 测试环境设置:确保有一个独立的测试环境来运行脚本,这样可以避免对生产环境造成任何影响。......
  • 简单脚本部署——上
     在华为云耀云服务器L实例上搭载脚本可以实现让机器自动执行一系列任务的功能。而注入百度贴吧自动签到这样的功能是其中之一。通过在华为云耀云服务器L实例上安装相应的脚本,可以使服务器在设定的时间间隔内自动登录百度贴吧,并进行签到操作。实现这个功能的关键是一个能够模......
  • 前后端系统部署——前端篇
     在华为云耀云服务器L实例上部署前端需要经过以下几个步骤:首先登录华为云耀云界面:https://www.huaweicloud.com/product/hecs-light.html 创建华为云耀云服务器L实例账号,购买服务器并登录控制台。 创建华为云耀云服务器L实例。在控制台界面上,选择ECS(云服务器)服务,然后......
  • 架构漫谈读后感
    首先,最近在课上老师推荐我们阅读王概凯老师的架构漫谈连载博客,通过详细的阅读,我确实收获颇丰。首先就是对于架构是什么,架构解决的是什么有了一个深入的了解。第一,什么架构呢?王概凯老师认为他没有一个确切的定义,在软件行业,每个人都有自己的理解,所以一百个人心目中就有一百个哈姆雷......
  • 关键数字技术架构2023
     1.关键数字技术分支架构 2.人工智能技术分支架构 3.高端芯片技术分支架构 4.量子信息技术分支架构 5.物联网技术分支架构  6.区块链技术分支架构 7.工业互联网技术分支架构  8.元宇宙技术分支架构 摘自《关键数字技术专利分类体系......
  • Generative AI 新世界 | Falcon 40B 开源大模型的部署方式分析
    在上期文章,我们探讨了如何在自定义数据集上来微调(fine-tuned)模型。本期文章,我们将重新回到文本生成的大模型部署场景,探讨如何在AmazonSageMaker上部署具有400亿参数的Falcon40B开源大模型。亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开......