天天看点

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

一、初闻ECS

    本来刚入大学时最想就读的是计算机相关专业,奈何志愿填报出了岔子,阴差阳错来到物流工程专业并一直读到了大四。但是从大一到现在我一直将计算机知识学习作为自己业余爱好,于是就累积了不少相关知识。了解前端与后端相关知识后一直想找项目练手,但由于专业培养计划的原因前三年没什么课程会推着自己去实现相关项目,直到今年的电子商务实验课程要求最终提交一个前后端俱全且可与数据库交互的电子商务网站系统作为课程设计才使得我有动力去寻求相关实现。

    在此之前我已经了解到构建一个简单的网站系统需要的知识,小组也很快根据开源代码模板完成了网站前端页面、后端脚本、数据库的构建,但在如何实现网站公网访问时我们遇到了问题,恰巧这部分工作是我负责,于是我就收集了一些解决方案,经过经济与稳定的权衡后最终决定选择将网站上传至云服务器来完成该部分工作。为了确定云服务器的选择我咨询了具有相关专业背景的同学,他们一致向我推荐阿里云并向我解释了其在该领域具有的优势,于是我就去阿里云官网查看了其所提供的产品。在比较各种规格的云服务器价格时我发现了其有学生专享优惠,果断选择点进去,在这里我发现了现在阿里云有一个”飞天加速计划——高校学生在家实践“活动,参与该活动可以申请免费体验两周云服务器(规格足够做一些小项目,疯狂点赞!!!!!)而且后续参加社区撰文通过审核的话还可以续领两个月(简直是学生党福音有没有)。随后就是注册、学生身份核验、活动申请、完成ECS实例基础操作实验(超级简单但对后续操作很实用,建议用心学习),完成上述操作后就可去申请ECS实例了,整个流程中都有教程指引对于新手十分友好。

二、WEB环境搭建

    准备好ECS后我们就可以愉快的开始项目环境搭建了。首先,先用自己的阿里云账号或者支付宝扫码登录阿里云控制台并进入ECS控制台,进入后页面如下:

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

    页面总体布局一目了然,最左侧是导航菜单,其包括了对可以对ECS实例进行的相关操作/设置的入口;然后是实例概览,此部分可以查看目前账号下资源情况以及ECS资源使用概况(可以安装插件使情况显示更具体);实用教程部分则包括各方面操作的具体教程(eg:各种web环境搭建教程),初级到高级ECS玩法均可以在这里找到所以仰仗此部分可以自助解决很多问题;安全状态实时监测是阿里云一大优势,其非常适合企业生产环境安全监测;常用功能则包括常用功能入口。

    有了上述ECS基础后,我们就可以开始PHP WEB环境搭建了。在申请ECS时我选择的操作系统是Debian8.11,所以后文操作均在此环境完成,如果需要其他系统环境则可以在导航菜单点击实例与镜像下的实例按钮进入ECS实例详情界面然后点击管理并在该页面停止实例,然后就可以更换操作系统:

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

  1. 工具准备

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

  1. 软件安装

    安装好Xshell与Xftp并且建立会话即可开始通过命令行在ECS上安装我们需要的软件:

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

    首先我们需要更新系统软件包:

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           
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环境的镜像,只需要在购买服务器时自己选择就行(如此方便的功能却在做完后才发现,啊啊啊啊!),最方便的是镜像经过测试你完全不用担心上述的各种问题甚至可以定制镜像,太实用了有木有。