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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
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
相关文章
|
3月前
|
缓存 NoSQL 数据库
高性能Web服务器架构设计
【8月更文第28天】在当今互联网时代,网站的响应速度直接影响用户体验和业务成功率。因此,构建一个高性能的Web服务器架构至关重要。本文将从硬件配置、软件架构以及网络设置三个方面探讨如何提高Web服务器的性能,并提供一些实际的代码示例。
224 0
|
13天前
|
PHP 开发者
PHP作为一门流行的服务器端脚本语言,深入理解PHP的命名空间
【10月更文挑战第22天】PHP作为一门流行的服务器端脚本语言,自1995年诞生以来,已经发展了二十多年。在这二十多年的时间里,PHP经历了多次重大版本的更新,不断增加新特性和改进。其中,命名空间(Namespace)是PHP 5.3.0引入的一个重要特性,它为PHP的代码组织和重用提供了一种新的方式。本文将从三个部分深入理解PHP的命名空间:一是命名空间的基本概念和作用;二是PHP命名空间的使用方法;三是通过实例讲解命名空间的应用。
21 4
|
16天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
153 2
|
1月前
|
关系型数据库 应用服务中间件 数据库
项目部署二:服务器和环境配置
项目部署二:服务器和环境配置
|
1月前
|
Java PHP
PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。理解其垃圾回收机制有助于开发高效稳定的PHP应用。
【10月更文挑战第1天】PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。其垃圾回收机制包括引用计数与循环垃圾回收,对提升应用性能和稳定性至关重要。本文通过具体案例分析,详细探讨PHP垃圾回收机制的工作原理,特别是如何解决循环引用问题。在PHP 8中,垃圾回收机制得到进一步优化,提高了效率和准确性。理解这些机制有助于开发高效稳定的PHP应用。
43 3
|
2月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:如何提高代码的可维护性与扩展性在软件开发领域,PHP 是一种广泛使用的服务器端脚本语言。随着项目规模的扩大和复杂性的增加,保持代码的可维护性和可扩展性变得越来越重要。本文将探讨 PHP 中的设计模式,并通过实例展示如何应用这些模式来提高代码质量。
设计模式是经过验证的解决软件设计问题的方法。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理地使用设计模式可以显著提高代码的可维护性、复用性和扩展性。本文将介绍几种常见的设计模式,包括单例模式、工厂模式和观察者模式,并通过具体的例子展示如何在PHP项目中应用这些模式。
|
28天前
|
前端开发 Java Shell
后端项目打包上传服务器部署运行记录
后端项目打包上传服务器部署运行记录
27 0
|
1月前
|
Java Linux Maven
服务器部署之项目打包及命令行输出
服务器部署之项目打包及命令行输出
20 0
|
2月前
|
JavaScript Linux 开发工具
如何将nodejs项目程序部署到阿里云服务器上
该文章详细描述了将Node.js项目部署到阿里云服务器的步骤,包括服务器环境配置、项目上传及使用PM2进行服务管理的过程。
|
3月前
|
JavaScript 搜索推荐 前端开发
从零搭建到部署:Angular与Angular Universal手把手教你实现服务器端渲染(SSR),全面解析及实战指南助你提升Web应用性能与SEO优化效果
【8月更文挑战第31天】服务器端渲染(SSR)是现代Web开发的关键技术,能显著提升SEO效果及首屏加载速度,改善用户体验。Angular Universal作为官方SSR解决方案,允许在服务器端生成静态HTML文件。本文通过具体示例详细介绍如何使用Angular Universal实现SSR,并分享最佳实践。首先需安装Node.js和npm。
63 1
下一篇
无影云桌面