阿里云Linux部署PHP项目:LNMP搭建+域名HTTPS+性能优化全流程
一、环境准备与云服务器选型在阿里云上部署PHP项目的第一步是拥有一台Linux云服务器ECS。登录阿里云官网进入弹性计算-云服务器ECS根据项目规模选择合适的实例规格。对于初创项目或企业展示站推荐选择突发性能实例t6或共享标准型s6搭配2核4G内存配置即可流畅运行中等流量的PHP应用。操作系统镜像选择Alibaba Cloud Linux 3或CentOS 7.9它们稳定且对PHP生态支持完善。存储方面系统盘建议40GB高效云盘起步后续可根据需要扩容或挂载数据盘。网络按流量计费即可初期带宽选择5Mbps左右。需要先登录阿里云控制台点击阿里云控制台购买实例时务必设置好root密码并牢记同时启用安全组。安全组是云服务器的虚拟防火墙后续安装Web环境需要放行80HTTP、443HTTPS、22SSH以及3306MySQL远程如需要等端口。可以在创建实例时直接勾选放行这些端口或之后在安全组规则中添加入方向放行。实例运行后使用本地终端通过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] namenginx stable repo baseurlhttp://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck1 enabled1 gpgkeyhttps://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-FPMsystemctl 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 phpinfo(); ?访问该文件即可验证PHP解析成功。三、部署PHP项目代码常见的PHP项目如Laravel、ThinkPHP、WordPress等部署步骤大同小异。推荐使用Git将代码拉取到服务器并配合Composer管理依赖。1. 安装Git和Composeryum 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-autoloader3. 配置环境参数复制.env.example为.env修改数据库连接为RDS内网地址或自建MySQL的IP/账号密码。生成应用密钥php artisan key:generateLaravel示例。设置storage和bootstrap/cache目录写权限chmod -R 775 storage bootstrap/cache。4. Nginx站点配置创建一个新的Nginx配置文件/etc/nginx/conf.d/project.confserver { 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 OPcacheOPcache通过缓存预编译的脚本字节码大幅提升PHP性能。编辑/etc/php.d/10-opcache.ini建议参数opcache.enable1 opcache.memory_consumption128 opcache.interned_strings_buffer8 opcache.max_accelerated_files10000 opcache.revalidate_freq60 opcache.fast_shutdown1重启PHP-FPM生效。2. 使用Redis缓存对于高频读取的数据和Session可引入Redis。安装Redis服务器yum install -y redis启动并配置密码。PHP中通过predis或phpredis扩展连接。Laravel等项目只需修改.env中CACHE_DRIVERredis及SESSION_DRIVERredis即可。3. 配置阿里云CDN将静态资源CSS/JS/图片推送至阿里云CDN或OSSCDN。在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/javascript text/css image/svgxml; 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应用环境。希望这篇指南能帮助你顺利上线项目若遇到问题可查阅阿里云官方文档或社区进一步探索。