云服务器搭建动态 PHP 网站

本文介绍了如何在云服务器搭建动态PHP网站,包括选购云服务器、部署Linux系统(如Ubuntu/CentOS)、安装LAMPLNMP环境(Apache/Nginx + MySQL + PHP)、配置域名SSL证书、上传PHP代码及数据库,并进行安全加固性能优化,整个过程强调自动化脚本最佳实践,适合初学者快速上线可交互的动态网站

在云服务器快速搭建动态PHP网站实战指南

数字化时代,个人博客企业官网或小型Web应用往往需要一个稳定、可扩展且成本可控的运行环境,相比传统虚拟主机,云服务器(如阿里云ECS、腾讯云CVM或AWS EC2)凭借弹性配置、完全控制权和灵活部署能力,成为搭建动态PHP网站的理想选择,本文将带你用最简路径——不依赖宝塔等可视化面板,纯命令行操作,在主流Linux云服务器(以Ubuntu 22.04为例)上完成Nginx + PHP-FPM + MySQL(或轻量级替代SQLite)的动态PHP网站部署,全程原创实操,兼顾安全性与实用性。

第一步:选购与初始化云服务器
推荐选择基础配置:1核2GB内存、40GB SSD系统盘、带宽1–3Mbps(静态资源可后续接入CDN),购买后,通过SSH密钥登录(禁用密码登录更安全),执行基础加固:

sudo apt update && sudo apt upgrade -y  
sudo ufw allow OpenSSH && sudo ufw enable  
sudo timedatectl set-timezone Asia/Shanghai  

第二步:安装LNP环境(Linux+Nginx+PHP)
跳过Apache,选用更轻量高效的Nginx:

sudo apt install nginx php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip -y  

启动并设为开机自启:

sudo systemctl enable nginx php8.1-fpm  
sudo systemctl start nginx php8.1-fpm  

注意:Ubuntu 22.04默认PHP版本为8.1,若需兼容旧项目,可用sudo apt install php8.0-fpm并调整后续配置。

第三步:配置Nginx与PHP-FPM协同
编辑站点配置文件:

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

写入精简配置(关键点:启用FastCGI_pass指向PHP-FPM套接字,开启.php解析):

server {
    listen 80;
    server_name your-domain.com;  # 或直接用服务器IP测试
    root /var/www/myapp;
    index index.php index.html;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    location ~ /\.ht {
        deny all;
    }
}

启用站点并测试语法:

sudo ln -sf /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/  
sudo nginx -t && sudo systemctl reload nginx  

第四步:创建动态PHP站点示例
新建网站目录并写入测试脚本:

sudo mkdir -p /var/www/myapp  
sudo chown -R $USER:$USER /var/www/myapp  
echo '<?php echo "<h1>✅ 云服务器PHP环境就绪!</h1><p>当前时间:".date("Y-m-d H:i:s")."</p>"; ?>' | sudo tee /var/www/myapp/index.php  

访问服务器公网IP,即可看到动态时间输出——说明PHP已成功解析执行。

第五步:接入数据库(按需选型)
若需用户注册、文章管理等动态功能,推荐两种方案

  • 轻量首选:SQLite(无需额外服务,PHP原生支持
    sudo apt install php-sqlite3 -y  

    后续PHP中直接使用new PDO('sqlite:/var/www/myapp/data.db')即可。

  • 标准方案:MySQL(适合多用户、高并发
    sudo apt install mysql-server -y  
    sudo mysql_secure_installation  # 按向导设置root密码及安全选项  

    创建专用数据库与用户(非root):

    CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  
    CREATE USER 'webuser'@'localhost' IDENTIFIED BY 'StrongPass123!';  
    GRANT ALL PRIVILEGES ON myapp.* TO 'webuser'@'localhost';  
    FLUSH PRIVILEGES;  

第六步:安全收尾(关键!)

  • 禁用PHP危险函数(编辑/etc/php/8.1/fpm/php.ini):
    disable_functions = exec,passthru,Shell_exec,system,proc_open,popen,pcntl_exec
  • 设置目录权限:sudo chown -R www-data:www-data /var/www/myapp(仅Web服务可写必要子目录)
  • 启用HTTPS免费):安装Certbot并自动签发Let’s Encrypt证书,一行命令搞定:
    sudo apt install certbot Python3-certbot-nginx -y  
    sudo certbot --nginx -d your-domain.com  

至此,一个具备动态能力、安全合规、易于维护的PHP网站已在云服务器上稳健运行,整个过程耗时约15分钟,无冗余软件,所有操作均可脚本化复用,真正的“动态”,不仅在于PHP能输出实时数据,更在于你掌握了基础设施的主动权——当需求变化时,扩容备份迁移,尽在掌控,云不是黑盒,而是你亲手搭建的数字基石。

(全文共1986字)