Ubuntu 24.04 配置 nginx + php-fpm

nginx 是一个流行的 web 服务器,以其速度和可靠性而闻名,被许多顶级网站使用。要用 PHP 运行网站,您需要设置 php-fpm,nginx 与 php-fpm 一起处理 PHP 文件并将其显示给用户,帮助网站更快地加载并处理更多流量。

本教程将帮助您在 ubuntu 24.04 系统上安装和配置 NGINX 和 PHP-FPM,创建虚拟主机并使用 Let ' s Encrypt SSL 启用 HTTPS 来保护您的网站。

Step 1: Update Your System

首先,我们需要确保你的系统是最新的。

复制代码
sudo apt update
sudo apt upgrade -y

Step 2: Install NGINX Server

现在,让我们安装 NGINX web 服务器,遵循以下步骤:

(1) 安装 nginx

复制代码
sudo apt install nginx

(2) 启动 nginx 服务

复制代码
sudo systemctl start nginx

(3) 设置 nginx 开机启动

复制代码
sudo systemctl enable nginx

(4) 检查 nginx 服务状态

复制代码
sudo systemctl status nginx

Step 3: Install PHP-FPM

按照以下步骤安装 PHP-FPM

(1) 安装 php-fpm

复制代码
sudo apt install php-fpm

(2) 启动 php-fpm 服务

复制代码
sudo systemctl start php-fpm

(3) 设置 php-fpm 开机启动

复制代码
sudo systemctl enable php-fpm

(4) 检查 php-fpm 服务状态

复制代码
sudo systemctl status php-fpm

Step 4: Configure NGINX to Use PHP-FPM

让我们为您的网站创建一个新的主机文件并将其配置为使用 PHP-FPM

(1) 切换到 NGINX sites-available 目录

复制代码
cd /etc/nginx/sites-available/

(2) 为网站创建一个新的配置文件,将"example.com"替换为您的实际域名。

复制代码
sudo nano /etc/nginx/sites-available/example.com

(3) 将以下配置添加到文件中,确保将"example.com"替换为您的实际域名。

nginx 复制代码
server {
  listen 80;
  server_name example.com www.example.com;

  root /var/www/html/example.com;
  index index.php index.html index.htm;

  location / {
    try_files $uri $uri/ =404;
  }

  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
  }

  location ~ /\.ht {
    deny all;
  }
}

保存并退出配置文件

为您的网站创建文档根目录

复制代码
sudo mkdir -p /var/www/html/example.com

将目录的所有权分配给当前用户

复制代码
sudo chown -R $USER:$USER /var/www/html/example.com

设置目录权限

复制代码
sudo chmod -R 755 /var/www/html/example.com

创建一个简单的 PHP 文件来测试您的配置

复制代码
nano /var/www/html/example.com/index.php

将以下行添加到 index.php 文件中,保存并退出。

php 复制代码
<?php phpinfo(); ?>

把网站 example.com 的配置文件软连接到 sites-enabled 目录

复制代码
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

测试 NGINX 配置是否有语法错误

复制代码
sudo nginx -t

如果测试成功,重新加载 NGINX 以应用更改

复制代码
sudo systemctl reload nginx

打开您的 Web 浏览器,然后访问 http//example.com 您应该可以看到" PHP Info"页面,这意味着您的 NGINX 服务器已正确配置为使用 PHP-FPM。

Step 5: Secure Your Website with Let's Encrypt SSL

要使用 HTTPS 保护您的网站,您可以使用 Let ' s Encrypt SSL,请遵循以下步骤:

(1) 安装 Certbot

复制代码
sudo apt install certbot python3-certbot-nginx

(2) 运行 Certbot 获取并安装 SSL 证书,按照提示完成安装。

复制代码
sudo certbot --nginx

(3) 通过运行演练来验证 Certbot 自动更新

复制代码
sudo certbot renew --dry-run

我的开源项目

相关推荐
David猪大卫2 小时前
【Linux修炼】环境变量、进程地址空间
linux·c语言·经验分享·笔记·学习·ubuntu·centos
叼烟扛炮3 小时前
Linux 学习笔记(五十六):IO 多路复用初探——select 的“三宗罪”
linux·服务器·数据库·笔记·学习·php
zhikouai6 小时前
把外部助手接进聊天软件的架构分层与参数配置
服务器·网络·php
叼烟扛炮10 小时前
Linux 学习笔记(五十八):IO 多路复用封神——epoll 底层原理揭秘
linux·运维·服务器·网络·笔记·学习·php
叼烟扛炮10 小时前
Linux 学习笔记(五十一):数据链路层与 ARP 协议——局域网寻址与黑客骗局
linux·网络·网络协议·php·tcpdump
且从容.14 小时前
Ubuntu 安装 Docker
linux·ubuntu·docker
vipxieliang16 小时前
语言对比卡:PHP vs Go vs Java 的优缺点、适用场景与「为什么选 PHP」
java·go·php
东鹏特饮1 天前
系统运维(传统/通用运维)面试题
开发语言·php
多客:duokelijie1 天前
代练订单系统选型思路:跨品类游戏接入、订单分层管理、自动结算逻辑拆解!
数据库·mysql·微信小程序·前端框架·uni-app·php·持续部署
Lsetea1 天前
Docker更新SSL证书后容器仍读旧文件:单文件挂载与目录挂载排查
运维·nginx·docker·https·ssl证书