ECS初体验——基于ECS的PHP WEB项目部署

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 本文内容主要是关于在ECS上搭建PHP web环境操作流程,并且会结合笔者在搭建过程中遇到的一些常见或不常见的问题给出一些比较实用的避坑建议。ECS实例规格:云翼计划学生默认;服务器OS:Debian 8.11 64位;WEB环境:LAMP——Linux+Apache2+Mysql5.5.62+PHP5.6.4

一、初闻ECS
    本来刚入大学时最想就读的是计算机相关专业,奈何志愿填报出了岔子,阴差阳错来到物流工程专业并一直读到了大四。但是从大一到现在我一直将计算机知识学习作为自己业余爱好,于是就累积了不少相关知识。了解前端与后端相关知识后一直想找项目练手,但由于专业培养计划的原因前三年没什么课程会推着自己去实现相关项目,直到今年的电子商务实验课程要求最终提交一个前后端俱全且可与数据库交互的电子商务网站系统作为课程设计才使得我有动力去寻求相关实现。
    在此之前我已经了解到构建一个简单的网站系统需要的知识,小组也很快根据开源代码模板完成了网站前端页面、后端脚本、数据库的构建,但在如何实现网站公网访问时我们遇到了问题,恰巧这部分工作是我负责,于是我就收集了一些解决方案,经过经济与稳定的权衡后最终决定选择将网站上传至云服务器来完成该部分工作。为了确定云服务器的选择我咨询了具有相关专业背景的同学,他们一致向我推荐阿里云并向我解释了其在该领域具有的优势,于是我就去阿里云官网查看了其所提供的产品。在比较各种规格的云服务器价格时我发现了其有学生专享优惠,果断选择点进去,在这里我发现了现在阿里云有一个”飞天加速计划——高校学生在家实践“活动,参与该活动可以申请免费体验两周云服务器(规格足够做一些小项目,疯狂点赞!!!!!)而且后续参加社区撰文通过审核的话还可以续领两个月(简直是学生党福音有没有)。随后就是注册、学生身份核验、活动申请、完成ECS实例基础操作实验(超级简单但对后续操作很实用,建议用心学习),完成上述操作后就可去申请ECS实例了,整个流程中都有教程指引对于新手十分友好。
二、WEB环境搭建
    准备好ECS后我们就可以愉快的开始项目环境搭建了。首先,先用自己的阿里云账号或者支付宝扫码登录阿里云控制台并进入ECS控制台,进入后页面如下:
Inked首页_LI.jpg
    页面总体布局一目了然,最左侧是导航菜单,其包括了对可以对ECS实例进行的相关操作/设置的入口;然后是实例概览,此部分可以查看目前账号下资源情况以及ECS资源使用概况(可以安装插件使情况显示更具体);实用教程部分则包括各方面操作的具体教程(eg:各种web环境搭建教程),初级到高级ECS玩法均可以在这里找到所以仰仗此部分可以自助解决很多问题;安全状态实时监测是阿里云一大优势,其非常适合企业生产环境安全监测;常用功能则包括常用功能入口。
    有了上述ECS基础后,我们就可以开始PHP WEB环境搭建了。在申请ECS时我选择的操作系统是Debian8.11,所以后文操作均在此环境完成,如果需要其他系统环境则可以在导航菜单点击实例与镜像下的实例按钮进入ECS实例详情界面然后点击管理并在该页面停止实例,然后就可以更换操作系统:
实例.png
更换.png

  1. 工具准备

    由于ECS规格较低且是服务器端,笔者所选择的Debian系统并不需要桌面(添加桌面会占用实例资源,在规格较低的实例上不建议上桌面,但是如果购买了较高规格的实例且希望有GUI可以安装桌面)。笔者选择用Xshell作为远程访问软件,Xftp作为本地文件上传软件,这两者均有非商用免费许可且配合使用也较为方便(相关教程可以自行百度或社区搜索),或者可以使用阿里云官方的工具,当然如果你很熟悉命令行操作甚至可以使用cmd通过ssh远程连接ECS。

  1. 软件安装

    安装好Xshell与Xftp并且建立会话即可开始通过命令行在ECS上安装我们需要的软件:
XSHELL.png
    首先我们需要更新系统软件包:

apt-get update -y && apt-get upgrade -y

     这一步保证我们系统所有的软件、补丁都是最新的。而且这时也能够凸显出阿里云的优势,其提供的系统镜像已经将阿里云的源整合可以保证更新的速度。
    安装Apache并配置

apt-get install apache2 -y

    关闭不必要模块

a2dismod mpm_event
a2enmod mpm_prefork

    重启Apache

systemctl restart apache2

    重启完毕后,我们可以在浏览器地址栏输入云服务器公网IP地址,如果可以看到默认的apache界面则表示apache已经安装完毕,且其默认的网页根目录在"/var/www/html"中,我们可以根据需要替换该目录下的index.html文件,或者将项目文件置于该目录下。

    安装Mysql

apt-get install mysql-server -y

    运行上述代码,会进行数据库安装,安装过程会提示输入root账户密码,如果设置与系统root账户密码不一致请牢记该密码。如果建站需要添加数据库用户则需要我们登录该账户才能继续操作,登录操作:

mysql -u root -p

    安装PHP5

apt-get install php5 php-pear -y

    创建PHP日志目录并将权限赋予Apache用户

mkdir /var/log/php
chown www-data /var/log/php

    添加PHP相关Mysql支持

apt-get install php5-mysql -y

    重启Apache

systemctl restart apache2

    完成上述操作后将PHP项目部署到Apache对应根目录下即可实现公网项目访问。
三、避坑
    由于是实践小白,在搭建上述LAMP环境时踩了不少可坑,现在把避坑建议总结如下:

  1. php5安装

    现在最新的PHP版本是7,不少LINUX发行版比较新的版本自带的PHP包也是PHP7,但是相较于PHP5其移除了sqlconnection对象,这导致一些在PHP5下写的项目可能无法正常运行(没错,笔者就是这种倒霉蛋——好不容易搞定了LAMP环境却发现是PHP7)。针对此种情况一般有两种解决办法(笔者查资料得到):1)高版本Linux发行版——添加PPA源;2)选择较低版本Linux发行版直接安装;但是我实测第一种方法时屡次翻车,翻遍了教程都无法解决报错,所以建议直接选择第二种方法。如果已经安装了比较新的系统请参见上面ECS更换操作系统操作。

  1. 环境搭建完毕后项目中PHP网页图片无法显示
        两种情况:1)图片路径引用错误;2)php GD库未安装。
  2. http服务错误
        在控制台检查安全组设置,看端口是否允许;检查apache设置或者百度。

四、总结与建议
    因为时第一次实践ECS项目,所有的操作都是查询相关资料并一一尝试才完成,其中遇到过不少问题但由于各种原因未能在此全部列出,但当完成LAMP环境搭建并成功将网站项目跑起来时拥有的成就感时前所未有的。经过此次实践,我不禁惊叹于云服务的神奇与便捷,我也坚定了自己自学相关知识的决心,相信未来可以基于ECS完成更多有意思的项目。
    ps:我是完成自己搭建后才发现阿里云其实还提供镜像市场,而镜像市场中其实已经有了免费但好用的整合了LAMP/LNMP环境的镜像,只需要在购买服务器时自己选择就行(如此方便的功能却在做完后才发现,啊啊啊啊!),最方便的是镜像经过测试你完全不用担心上述的各种问题甚至可以定制镜像,太实用了有木有。

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
9月前
|
移动开发 数据挖掘 开发者
服务器发送事件(SSE)在现代Web开发中的关键作用
服务器发送事件(SSE)是HTML5标准协议,用于服务器主动向客户端推送实时数据,适合单向通信场景。相比WebSocket,SSE更简洁高效,基于HTTP协议,具备自动重连、事件驱动等特性。常见应用场景包括实时通知、新闻推送、数据分析等。通过Apipost等工具可轻松调试SSE,助力开发者构建高效实时Web应用。示例中,电商平台利用SSE实现秒杀活动通知,显著减少延迟并简化架构。掌握SSE技术,能大幅提升用户体验与开发效率。
|
10月前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
323 20
|
10月前
|
应用服务中间件 PHP nginx
当你的nginx服务器和php服务器不在一起的时候,这个nginx 的root目录问题
两个服务器的网站代码目录需要对齐,docker容器里面也是一样
|
10月前
|
监控 关系型数据库 MySQL
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
291 0
|
自然语言处理 编译器 应用服务中间件
PHP在服务器上的运行过程
PHP在服务器上的运行过程
215 7
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
290 3
|
监控 PHP Apache
优化 PHP-FPM 参数配置:实现服务器性能提升
优化PHP-FPM的参数配置可以显著提高服务器的性能和稳定性。通过合理设置 `pm.max_children`、`pm.start_servers`、`pm.min_spare_servers`、`pm.max_spare_servers`和 `pm.max_requests`等参数,并结合监控和调优措施,可以有效应对高并发和负载波动,确保Web应用程序的高效运行。希望本文提供的优化建议和配置示例能够帮助您实现服务器性能的提升。
665 3
|
开发框架 自然语言处理 PHP
PHP在Web开发中的持久魅力与创新实践###
【10月更文挑战第17天】 本文探讨了PHP作为一门老牌却充满活力的编程语言,在现代Web开发中的独特优势和未来趋势。通过分析其简洁性、灵活性、强大生态系统及不断创新的特性,本文旨在揭示PHP为何能持续吸引开发者,并在技术快速迭代的时代保持竞争力。同时,文章也展望了PHP在未来Web开发领域的发展潜力,强调其在技术创新和社区支持下,依然能够引领Web开发的新潮流。 ###
144 9
|
XML 安全 PHP
PHP与SOAP Web服务开发:基础与进阶教程
本文介绍了PHP与SOAP Web服务的基础和进阶知识,涵盖SOAP的基本概念、PHP中的SoapServer和SoapClient类的使用方法,以及服务端和客户端的开发示例。此外,还探讨了安全性、性能优化等高级主题,帮助开发者掌握更高效的Web服务开发技巧。
|
PHP 开发者
PHP作为一门流行的服务器端脚本语言,深入理解PHP的命名空间
【10月更文挑战第22天】PHP作为一门流行的服务器端脚本语言,自1995年诞生以来,已经发展了二十多年。在这二十多年的时间里,PHP经历了多次重大版本的更新,不断增加新特性和改进。其中,命名空间(Namespace)是PHP 5.3.0引入的一个重要特性,它为PHP的代码组织和重用提供了一种新的方式。本文将从三个部分深入理解PHP的命名空间:一是命名空间的基本概念和作用;二是PHP命名空间的使用方法;三是通过实例讲解命名空间的应用。
129 4