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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 本文内容主要是关于在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环境的镜像,只需要在购买服务器时自己选择就行(如此方便的功能却在做完后才发现,啊啊啊啊!),最方便的是镜像经过测试你完全不用担心上述的各种问题甚至可以定制镜像,太实用了有木有。

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
22天前
|
开发框架 .NET PHP
网站应用项目如何选择阿里云服务器实例规格+内存+CPU+带宽+操作系统等配置
对于使用阿里云服务器的搭建网站的用户来说,面对众多可选的实例规格和配置选项,我们应该如何做出最佳选择,以最大化业务效益并控制成本,成为大家比较关注的问题,如果实例、内存、CPU、带宽等配置选择不合适,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文将详细解析企业在搭建网站应用项目时选购阿里云服务器应考虑的一些因素,以供参考。
|
1月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
48 3
|
1月前
|
SQL 安全 前端开发
PHP与现代Web开发:构建高效的网络应用
【10月更文挑战第37天】在数字化时代,PHP作为一门强大的服务器端脚本语言,持续影响着Web开发的面貌。本文将深入探讨PHP在现代Web开发中的角色,包括其核心优势、面临的挑战以及如何利用PHP构建高效、安全的网络应用。通过具体代码示例和最佳实践的分享,旨在为开发者提供实用指南,帮助他们在不断变化的技术环境中保持竞争力。
|
1月前
|
自然语言处理 编译器 应用服务中间件
PHP在服务器上的运行过程
PHP在服务器上的运行过程
47 7
|
1月前
|
监控 PHP Apache
优化 PHP-FPM 参数配置:实现服务器性能提升
优化PHP-FPM的参数配置可以显著提高服务器的性能和稳定性。通过合理设置 `pm.max_children`、`pm.start_servers`、`pm.min_spare_servers`、`pm.max_spare_servers`和 `pm.max_requests`等参数,并结合监控和调优措施,可以有效应对高并发和负载波动,确保Web应用程序的高效运行。希望本文提供的优化建议和配置示例能够帮助您实现服务器性能的提升。
72 3
|
1月前
|
PHP 开发者
深入浅出PHP:构建你的第一个Web应用
【10月更文挑战第35天】在数字时代的浪潮中,掌握编程技能已成为通往未来的钥匙。本文将带你从零开始,一步步走进PHP的世界,解锁创建动态网页的魔法。通过浅显易懂的语言和实际代码示例,我们将共同打造一个简单但功能强大的Web应用。无论你是编程新手还是希望扩展技能的老手,这篇文章都将是你的理想选择。让我们一起探索PHP的魅力,开启你的编程之旅!
|
1月前
|
SQL 安全 PHP
探索PHP的现代演进:从Web开发到框架创新
PHP是一种流行的服务器端脚本语言,自诞生以来在Web开发领域占据重要地位。从简单的网页脚本到支持面向对象编程的现代语言,PHP经历了多次重大更新。本文探讨PHP的现代演进历程,重点介绍其在Web开发中的应用及框架创新,如Laravel、Symfony等。这些框架不仅简化了开发流程,还提高了开发效率和安全性。
35 3
|
1月前
|
前端开发 PHP 云计算
PHP在Web开发中的不可替代性###
——守护Web开发基石,PHP的独特魅力与广泛应用解析
|
1月前
|
SQL 安全 PHP
探索PHP的现代演进:从Web开发到框架创新
PHP 自发布以来一直在 Web 开发领域占据重要地位,历经多次重大更新,从简单的脚本语言进化为支持面向对象编程的现代语言。本文探讨 PHP 的演进历程,重点介绍其在 Web 开发中的应用及框架创新。自 PHP 5.3 引入命名空间后,PHP 迈向了面向对象编程时代;PHP 7 通过优化内核大幅提升性能;PHP 8 更是带来了属性、刚性类型等新特性。
33 3
|
1月前
|
XML 安全 PHP
PHP与SOAP Web服务开发:基础与进阶教程
本文介绍了PHP与SOAP Web服务的基础和进阶知识,涵盖SOAP的基本概念、PHP中的SoapServer和SoapClient类的使用方法,以及服务端和客户端的开发示例。此外,还探讨了安全性、性能优化等高级主题,帮助开发者掌握更高效的Web服务开发技巧。