在VPS上部署PHP应用:从A到Z的逐步指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

引言:为什么VPS是PHP项目的最佳选择?

用PHP开发Web应用只是工作的一半。另一半同样重要的部分是合理的部署。如果您已经超越了共享主机的限制,并希望完全控制环境,那么虚拟专用服务器(VPS)是理想的解决方案。在本文中,我们将走完从购买服务器到在生产模式下启动PHP应用的整个过程。您将学习如何配置Nginx + PHP-FPM + MySQL组合、设置域名、SSL证书以及自动化代码更新。



步骤1:VPS初始配置与连接

1.1 选择操作系统与首次登录

我们推荐使用Ubuntu 22.04 LTS——稳定且具有长期支持。购买VPS后,您将获得IP地址和root密码。

通过SSH连接:

ssh root@您的服务器IP


1.2 创建用户与安全配置

以root身份工作是不良实践。让我们创建一个具有sudo权限的独立用户:

adduser deployerusermod -aG sudo deployer

现在配置SSH密钥以便便捷安全地登录。在本地机器上生成密钥(如果没有的话):

ssh-keygen -t rsa -b 4096

将公钥复制到服务器:

ssh-copy-id deployer@您的服务器IP

验证密钥登录后,禁用密码登录和root访问:

sudo nano /etc/ssh/sshd_config# 修改:PermitRootLogin noPasswordAuthentication no# 重启SSH:sudo systemctl restart sshd


步骤2:安装与配置LEMP栈(Nginx、PHP、MySQL)

2.1 安装Nginx

更新软件包并安装Web服务器:

sudo apt update && sudo apt upgrade -ysudo apt install nginx -y

检查状态:

sudo systemctl status nginx


2.2 安装PHP 8.x及所需扩展

添加包含最新PHP版本的仓库:

sudo apt install software-properties-commonsudo add-apt-repository ppa:ondrej/phpsudo apt updatesudo apt install php8.2 php8.2-fpm php8.2-mysql php8.2-xml php8.2-mbstring php8.2-curl php8.2-zip -y


2.3 安装MySQL (MariaDB)

sudo apt install mariadb-server mariadb-client -ysudo mysql_secure_installation

为您的应用创建数据库和用户:

sudo mysql -u rootCREATE DATABASE myapp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;CREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'strong_password';GRANT ALL PRIVILEGES ON myapp_db.* TO 'myapp_user'@'localhost';FLUSH PRIVILEGES;EXIT;


步骤3:在Nginx中配置虚拟主机(Server Block)

为我们的域名(例如 myapp.ru)创建配置文件:

sudo nano /etc/nginx/sites-available/myapp

粘贴以下PHP-FPM模板:

server {    listen 80;    server_name myapp.ru www.myapp.ru;    root /var/www/myapp/public;    index index.php index.html;

location / { try_files $uri $uri/ /index.php?$query_string; }

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

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

激活站点并重新加载Nginx:

sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/sudo nginx -t  # 检查配置sudo systemctl reload nginx


步骤4:部署应用代码(Git + Composer)

4.1 克隆仓库

创建项目目录并克隆代码(例如从GitHub):

sudo mkdir -p /var/www/myappsudo chown -R deployer:depl                

博客

书籍推荐