部署 LNMP 架构
  MCWYWqSAMsot 2023年11月02日 46 0

本篇文章介绍 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 完成

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  bYdMetjCLs2g   2023年11月28日   21   0   0 bash
  wwLZeziuqjLR   2023年12月08日   100   0   0 Dockercentosbash
  mjtHZIki74si   2023年12月06日   31   0   0 ubuntubash
  hHWnOnebRjW2   2023年11月27日   23   0   0 PostgreSQLsqlbash
  vxoexqgjyiCS   2023年11月25日   19   0   0 linuxbash数组
  O3FLR83nwSoe   2023年11月22日   28   0   0 nginxHTTPbash
  vxoexqgjyiCS   2023年11月22日   23   0   0 linuxvimbash