部署 LNMP 架构

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

### LNMP项目搭建与配置教程 #### 一、环境准备 确保服务器已安装必要的依赖包并更新系统软件源。对于CentOS 7,可以执行如下命令来完成基础设置[^1]: ```bash yum update -y && yum install epel-release -y ``` #### 二、安装Nginx 通过官方仓库或其他可靠渠道获取最新版本的Nginx,并启动服务: ```bash yum install nginx -y systemctl start nginx systemctl enable nginx ``` #### 三、安装MySQL/MariaDB 选择合适的数据库管理系统进行部署,这里以MariaDB为例: ```bash yum install mariadb-server -y systemctl start mariadb systemctl enable mariadb mysql_secure_installation # 设置root密码等安全选项 ``` #### 四、编译安装PHP及其扩展模块 下载指定版本的PHP源码包至本地目录 `/usr/local/src` 下解压后进入相应文件夹操作: - 配置编译参数(可根据需求调整) ```bash ./configure --prefix=/usr/local/php \ --with-config-file-path=/etc \ --enable-fpm ... ``` - 编译安装 ```bash make && make install ``` - 将 `php.ini-production` 复制到 `/etc/` 目录下重命名为 `php.ini` 并编辑其中的关键配置项。 - 安装完成后复制 PHP-FPM 的 systemd service 文件以便后续管理进程: ```bash cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/ ``` #### 五、创建测试页面验证LNMP工作状态 编写简单的PHP信息展示脚本保存于Web根路径内供浏览器请求调用查看运行情况: ```php <?php phpinfo(); ?> ``` 放置该文件的位置应为 Web 服务器默认文档根目录下的某个位置,比如 `/var/www/html/test.php` 。此时可以通过访问形如 `http://<server_ip>/test.php` 这样的URL地址来进行功能检测[^2]。 #### 六、优化与安全管理 针对不同组件实施性能调优措施以及加强安全性防护策略,具体做法涉及但不限于修改主配置文件中的各项参数设定、启用防火墙规则限制外部连接范围等方面的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jaxx.Wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值