游乐游手机版
首页/AI教程/文章详情

阿里云服务器Linux部署PHP项目LNMP搭建HTTPS配置性能优化教程

时间:2026-06-11 17:07
基于阿里云ECSLinux部署PHP项目,详细涵盖LNMP环境搭建、项目代码的上传与部署、域名绑定并配置HTTPS证书、使用OPcache和Redis进行缓存优化、启用CDN加速并对Nginx进行性能调优,以及实施安全加固与日常运维监控要点,形成一套完整的生产级部署与运维流程。

一、环境准备与云服务器选型

要在阿里云上跑起PHP项目,第一步当然是搞一台Linux云服务器(ECS)了。登录阿里云控制台,进入弹性计算-云服务器ECS,根据项目规模挑个合适的实例规格。如果只是初创项目或企业展示站,突发性能实例t6或者共享标准型s6就够用,配上2核4G内存,跑中等流量的PHP应用完全没问题。操作系统镜像这边,推荐用Alibaba Cloud Linux 3或者CentOS 7.9,稳定不说,对PHP生态的支持也很完善。存储方面,系统盘建议40GB高效云盘起步,后续不够用了再扩容或者挂载数据盘。网络按流量计费就行,刚开始带宽选个5Mbps左右,够用又不浪费。

阿里云Linux部署PHP项目:LNMP搭建+域名HTTPS+性能优化全流程

购买实例的时候,一定要把root密码设好并记牢,同时记得启用安全组。安全组说白了就是云服务器的虚拟防火墙,后面装Web环境的时候,需要放行80(HTTP)、443(HTTPS)、22(SSH)以及3306(MySQL远程,如果需要的话)这些端口。可以在创建实例时直接勾选放行,或者之后在安全组规则里添加入方向放行规则。

实例跑起来之后,用本地的终端通过SSH连上去:

ssh root@你的公网IP

第一次登录会提示确认指纹,输入yes再输密码就行了。为了后面操作方便,最好装个screen或者tmux,这样跑长任务的时候网络断了也不怕:

yum install -y screen

二、LNMP环境搭建

Linux + Nginx + MySQL + PHP,这套组合现在还是最主流的PHP运行架构。下面说说手动编译安装的方式,这样部署出来的生产环境更稳定可控。当然,也可以直接用阿里云市场的LNMP镜像,或者通过yum/apt快速安装,但手动安装的好处是版本控制更灵活。

1. 安装Nginx

先添加官方Nginx仓库,这样能拿到比较新的版本。创建/etc/yum.repos.d/nginx.repo文件,写入:

[nginx-stable]
name=nginx stable repo
baseurl=https://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

保存后执行安装:

yum install -y nginx

启动并设置开机自启:

systemctl start nginx
systemctl enable nginx

这时候访问服务器的公网IP,应该能看到Nginx的欢迎页。如果访问不了,记得检查安全组有没有放行80端口。

2. 安装MySQL或对接阿里云RDS

自己装MySQL比较适合开发测试用,生产环境的话,强烈建议用阿里云RDS MySQL版,自动备份、读写分离、故障切换这些功能都有。这里先演示一下自建MySQL的快速安装,方便本地开发:

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
yum install -y mysql-community-server

启动MySQL并修改初始密码:

systemctl start mysqld
systemctl enable mysqld
# 查看临时密码
grep 'temporary password' /var/log/mysqld.log
# 安全初始化
mysql_secure_installation

生产环境下,更规范的做法是在阿里云控制台买RDS实例,选MySQL 8.0,然后创建数据库和账号。RDS的内网地址在同地域的ECS上访问,延迟低、免流量,安全又高效。

3. 安装PHP 7.4及扩展

PHP版本建议用7.4或8.0,性能和兼容性都兼顾到了。通过Remi仓库来安装:

yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php74
yum install -y php php-fpm php-mysqlnd php-gd php-curl php-mbstring php-xml php-zip php-opcache php-redis

启动PHP-FPM:

systemctl start php-fpm
systemctl enable php-fpm

检查PHP版本:

php -v

接下来配置Nginx和PHP通信,编辑/etc/nginx/conf.d/default.conf,把PHP处理部分改成:

location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

重载Nginx让配置生效:systemctl reload nginx。在/usr/share/nginx/html下创建info.php,写入,访问这个文件就能验证PHP解析成功了。

三、部署PHP项目代码

常见的PHP项目,像Lara vel、ThinkPHP、WordPress这些,部署步骤大同小异。推荐用Git把代码拉到服务器上,再用Composer管理依赖。

1. 安装Git和Composer

yum install -y git
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer

然后配置Composer镜像加速:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

2. 创建站点目录与克隆项目

规划项目放到/data/wwwroot/project,设置权限:

mkdir -p /data/wwwroot/project
chown -R nginx:nginx /data/wwwroot
cd /data/wwwroot/project
git clone https://你的仓库地址 .
composer install --no-dev --optimize-autoloader

3. 配置环境参数

复制.env.example.env,修改数据库连接为RDS内网地址或自建MySQL的IP/账号密码。生成应用密钥:php artisan key:generate(Lara vel示例)。设置storagebootstrap/cache目录的写权限:chmod -R 775 storage bootstrap/cache

4. Nginx站点配置

创建一个新的Nginx配置文件/etc/nginx/conf.d/project.conf

server {
    listen 80;
    server_name 你的域名或IP;
    root /data/wwwroot/project/public;
    index index.php index.html;

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

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

    access_log /var/log/nginx/project-access.log;
    error_log  /var/log/nginx/project-error.log;
}

验证并重载:nginx -t && systemctl reload nginx。这时候通过域名或IP就能访问PHP项目了。

四、域名解析与HTTPS配置

生产环境必须上HTTPS。推荐用阿里云的免费SSL证书和CDN。

1. 域名解析

在阿里云域名控制台,添加A记录,把域名指向ECS的公网IP。如果用CDN,后面把域名CNAME到CDN地址就行。

2. 申请免费SSL证书

在阿里云数字证书管理服务里,申请DV单域名免费证书,提交审核后通常几分钟就能签发。下载Nginx格式的证书,会得到.pem.key文件,上传到服务器/etc/nginx/ssl/目录。

3. 配置HTTPS

修改刚才的project.conf,添加443端口监听:

server {
    listen 443 ssl http2;
    server_name 你的域名;
    ssl_certificate     /etc/nginx/ssl/cert.pem;
    ssl_certificate_key /etc/nginx/ssl/cert.key;
    ... 其余配置同上 ...
}

server {
    listen 80;
    server_name 你的域名;
    return 301 https://$host$request_uri;
}

重载Nginx,全站HTTPS就生效了。可以配合HTTP/2来提升加载速度。

五、性能优化与缓存策略

1. 启用PHP OPcache

OPcache通过缓存预编译的脚本字节码,能大幅提升PHP性能。编辑/etc/php.d/10-opcache.ini,建议参数如下:

opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.fast_shutdown=1

重启PHP-FPM生效。

2. 使用Redis缓存

对于高频读取的数据和Session,可以引入Redis。安装Redis服务器:yum install -y redis,启动并配置密码。PHP这边通过predis或phpredis扩展连接。Lara vel这类项目只需修改.env中的CACHE_DRIVER=redisSESSION_DRIVER=redis就行。

3. 配置阿里云CDN

把静态资源(CSS/JS/图片)推到阿里云CDN或OSS CDN上。在CDN控制台添加加速域名,源站选择ECS的公网IP或OSS bucket,配置缓存规则。动态文件(.php)设置不缓存,静态文件设置较长的过期时间。启用CDN后,修改项目中资源URL指向CDN域名,能显著降低服务器负载,还能提升全国访问速度。

4. Nginx层面优化

开启gzip压缩:在nginx.conf的http块中加入:

gzip on;
gzip_min_length 1k;
gzip_comp_level 5;
gzip_types text/plain application/ja vascript text/css image/svg+xml;
gzip_vary on;

配置静态资源缓存:

location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2)$ {
    expires 30d;
    add_header Cache-Control "public, immutable";
}

六、安全加固与运维要点

  1. 系统更新:定期执行yum update -y修补漏洞。
  2. SSH防护:修改SSH默认22端口,禁用密码登录改用密钥对,或者直接用阿里云密钥对登录。
  3. 防火墙:只开放业务必需的端口,管理后台地址可以加IP白名单限制。
  4. 自动快照:在阿里云ECS控制台给系统盘和数据盘设置自动快照策略,防止数据丢失。
  5. 日志与监控:开启阿里云云监控,对CPU、内存、磁盘使用率设置报警规则;Nginx和PHP的错误日志定期检查。
  6. 数据库备份:RDS自带自动备份;自建MySQL的话,需要配置mysqldump定时任务脚本,结合OSS存储备份文件。

七、总结

这篇文章从零开始,演示了在阿里云ECS Linux上部署PHP项目的完整流程,包括环境搭建、代码部署、域名HTTPS,以及性能优化和安全实践。关键技术点有LNMP组合、Composer依赖管理、Nginx站点配置、SSL证书、CDN加速,还有OPcache和Redis缓存。实际项目中,还可以进一步用负载均衡SLB实现横向扩展,利用对象存储OSS分离用户上传文件,搭建成高可用、弹性伸缩的架构。借助阿里云生态,就算是个人开发者,也能轻松搭建出媲美大型企业级的PHP应用环境。希望这篇指南能帮你顺利把项目上线,遇到问题的话,可以翻翻阿里云官方文档或者去社区里探索探索。

来源:https://developer.aliyun.com/article/1740330
上一篇年AI应用开发趋势预测 下一篇Vibe Coding实战:工程规范才是高效关键
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Windows Docker Desktop RabbitMQ生产级部署完整指南
AI教程 · 2026-06-29

Windows Docker Desktop RabbitMQ生产级部署完整指南

前言 在 Windows 本地开发环境中,直接安装 RabbitMQ 确实颇为周折:需要单独配置 Erlang 运行环境、手动管理环境变量、服务启停全凭手工操作。更令人困扰的是,版本兼容冲突、端口占用、环境不一致等问题层出不穷。笔者见过不少开发者为搭建环境就得耗费整整半天时间。 相比之下,借助 Do

AI搜索重构制造业采购逻辑的阿里云企业级GEOCMS优化实践
AI教程 · 2026-06-29

AI搜索重构制造业采购逻辑的阿里云企业级GEOCMS优化实践

先分享一个切实感受。过去两年,我们与福建制造企业合作较为频繁,发现一个非常突出的现象:超过80%的企业官网,产品参数仍然存放在PDF或图片中。AI爬虫?根本无法抓取。这些企业技术实力不弱、资质证照齐全、应用案例也丰富,但在AI搜索这一全新战场上,它们几乎处于隐身状态。 一、一个正在发生的行业变化 A

阿里云Token Plan团队版功能价格与省钱购买指南
AI教程 · 2026-06-29

阿里云Token Plan团队版功能价格与省钱购买指南

阿里云百炼近期推出了名为“Token Plan 团队版”的全新服务,这一服务专为企业与开发者量身打造,定位为AI大模型订阅平台。通过引入Credits作为统一计量单位,将文本生成、图像生成等多模态AI能力纳入单一计费体系,同时无缝兼容主流AI编程工具及智能体(Agent)生态系统。其核心亮点包括:全

阿里云物联网.NET Core客户端位置信息上报
AI教程 · 2026-06-29

阿里云物联网.NET Core客户端位置信息上报

阿里云物联网平台的位置服务并非一个完全独立的功能模块。位置信息可包含二维坐标与三维坐标,而位置数据的来源本质上是借助设备属性进行上传。换言之,若要让设备上报位置,您需先将其视为一个普通属性进行处理。 1)添加二维位置数据 操作过程十分简洁。进入数据分析 → 空间数据可视化 → 二维数据,点击添加,将

年阿里云服务器选型配置与网站部署全攻略
AI教程 · 2026-06-29

年阿里云服务器选型配置与网站部署全攻略

2026年,阿里云服务器生态已高度成熟,形成了清晰的轻量应用服务器与ECS云服务器两大产品阵营。无论你是计划搭建个人博客、企业官网,还是运营电商平台、进行应用开发,基本都能找到理想的解决方案。本指南将从服务器选型、配置选择、部署流程到安全运维,系统梳理2026年最实用的操作要点,帮助你少走弯路,让网