关于Web开发角色的服务器,我需要了解什么?[关闭]


12

我知道这听起来可能有点含糊,所以我将尝试进一步解释...

在从事自营开发人员多年之后,我现在正在寻找商业Web开发人员。我对服务器和托管的唯一经验是通过FTP上传并使用CPanel / WHM。我要使用的角色是Web开发PHP,MySQL,HTML,CSS类型角色,但是在最近的采访中,有人问我有关在服务器上进行设置的问题,我不知道在说什么...这不理想!

在不了解更多信息的情况下,很难解释我到底想学什么,但是基本上,这只是我作为Web开发人员应该知道的服务器元素?如果您是Web开发人员,除了上载文件之外,您还可以处理服务器吗?Web开发团队是否经常设置诸如Subversion(SVN)和版本控制系统之类的东西,这就是他们所说的吗?



3
我认为这是关于服务器的更具体的内容:)
Michael Durrant

2
我不愿意将它透露给您,但是如果您不能配置Web服务器,那么您不是一个非常有价值的Web开发人员,并且您不能在一本书中快速学习它。而不是半途而废地从书中学习服务器组件。您最好提高自己的PHP技能,并以PHP程序员的身份申请。
Reactgular 2013年

@MathewFoscarini因为我不擅长,所以应该避免使用它,只完善我所知道的?这个建议会不会导致世界陷入停顿?not a very valuable web developer是我要克服的问题,所以我很高兴正确地学习它,我只是不知道如何最好地进行这项学习,以及首先要关注的领域。
约翰,

@john您确实在被聘为网络开发人员时询问过。您不符合的条件。如果那是您想要被雇用的,那么一定要这么做,但不要指望在面试中回答问题的短期解决方案。我希望雇主正在尝试淘汰没有实际服务器经验的应聘者。您的问题给我的印象是,您正在尝试做一份自由职业者无法做到的工作。您可以尝试在学习这些服务器技能时找到愿意付款的客户。
Reactgular

Answers:


10

这是一个很大的问题,但我怀疑很多人需要解决这个问题,尤其是当他们开始以专注于前端的职业开始职业发展时。

您提到要担任一个包含PHP和MySQL开发的角色。这些都是需要在服务器上执行的事情。能够作为开发人员做出良好的技术判断,需要您了解这些东西在服务器上的工作方式以及它们与Web前端的交互方式。因此,您显然需要对服务器有所了解。

我建议您深入研究并构建一些东西,包括自己安装所有服务器端软件,而不是试图先弄清楚您可能需要的有关服务器的确切知识。 弄湿自己的一种好方法是在计算机上安装Linux。 您可以使用VirtualBox之类的东西使其与当前操作系统一起运行。安装MySQL,为PHP安装和设置服务器,然后尝试使所有内容协同工作。伟大的事情是,如今,装备精良的笔记本电脑可以运行所有这些功能并成为“服务器”。一开始这可能很难,尤其是如果您没有使用Linux和命令行的经验。作为开发人员,您至少应该掌握足够的知识,以便能够完成本练习,这将使您在确定如何进一步了解知识方面起步。

您可能需要在以下三个方面进行调整:

  1. Linux操作系统的基础。也许从像Ubuntu这样的易于安装的发行版开始。
  2. 设置Web服务器和PHP。安装Apache是​​一个不错的起点。还有其他选择,但这是大多数人开始的地方。
  3. 学习安装和运行MySQL的基础知识。至少,作为一名开发人员,您可能可能需要能够编写DDL来在数据库中创建表和其他结构,并且您肯定需要能够在服务器上查询数据库以探索数据并确保您所需要的内容。应用程序吐出匹配数据库中的内容。

如果要使用Ubuntu,则可以按照此处的基本说明进行操作。请注意,在开始安装和使用Web服务器/数据库组件之前,您必须在Linux基础上进行大量改进。

就开发人员如何与服务器进行交互(除了上传文件)而言,我认为这在组织之间存在很大差异。

  1. 开发人员通常至少要处理开发环境的管理。有时,是由开发人员设置版本控制系统(例如SVN)和部署过程(在环境之间移动代码)。
  2. 就您而言,至少开发人员将需要使用服务器上的版本控制系统。
  3. 您还需要做一些事情,例如查看服务器上的日志,以查看生成了哪些消息来帮助诊断和解决问题。
  4. 您可能需要与基础架构团队一起确定服务器的网络配置或存储配置。通常,应用程序问题是配置和代码的组合。

关键是,对于要如何触摸服务器并没有一个唯一的答案,但是在您的职业生涯中,它肯定不仅限于通过FTP等文件上传文件。现在开始学习基础知识将有所帮助。


好答案,谢谢!因此,当我为本地工作设置“ Mamp”时,是否一样,但是无法访问外界?我已经安装了一些Linux操作系统,并且了解一些命令行内容,但我不会轻易记住。我不了解服务器,但是我总是认为它们只能通过命令行访问,而不像用户友好的OS,是这样吗?
约翰,

2
最好习惯使用命令行。您将要处理的大多数“真实” Web服务器将是远程计算机,并且不会安装GUI。
2013年

2
正如@GrandmasterB所写,接触命令行很有用。在我看来,Linux是一个很好的学习平台,因为它迫使您在了解操作系统在屏幕上所看到的内容之外的其他方面变得“贴近现实”。查看httpd.conf文件,了解Web服务器实际在做什么以及PHP模块如何与其集成。对平台有基本的了解,它将使您成为更好的开发人员。
DemetriKots

几年前,我从Linux切换到Windows服务器,再也没有回头。Linux既强大又强大,但是您必须使用最适合工作要求的工具。
Reactgular

2

我的第一点建议是不要将自己局限于任何一个角色。能成为专家,并且对特定技能(例如PHP)有深入的了解真是太好了。但是,拥有跨域其余部分的广泛知识也同样重要。

以我的经验,大多数团队并不想聘请具有重写PHP核心功能知识的人,而是可以解决所遇到的任何问题的人(尽管拥有一定水平的知识当然不会伤害到他们)。或者至少有人可以帮助解决团队遇到的任何问题。例如,设想一下您的应用程序出现故障而客户受到影响的情况。您可以举手说“我不知道该怎么做...”,也可以SSH进入服务器,开始扫描日志,注意特定文件系统的磁盘空间已满,然后继续进行清理。这是一个较小的例子,但我认为重点很明确。有了这些基础知识,作为开发人员,您可以编写一个脚本来监视该特定文件系统,并在达到特定阈值时将其清除。现在,您已变得对您的经理更有价值。

我在职业生涯中学到的另一件事是,事情发展很快,如果不跟上,就会被抛在后面。您对整个环境(包括业务方面)的了解越多,您的情况就越好。这并不是说您需要做任何事情的专家,但至少要知道不要被标记为无知。您越熟悉,适应性就越高,资产对公司的价值就越高。

为了专门回答您的问题...

  • 作为开发人员,我应该知道哪些服务器元素?

熟悉整个应用程序堆栈。了解正在使用什么Web服务器,数据库,缓存机制等。还有哪个版本。足够熟悉,您可以在自己的服务器上重新创建环境。就其本身而言,这至关重要。您应该努力在开发和生产中或多或少具有相同的环境,因为这样可以减少意外(http://12factor.net/dev-prod-parity)。

  • 作为开发人员,您与服务器有何交易?

这真的取决于团队。在我的特殊情况下,开发人员在分阶段环境中发挥着巨大作用。我们最熟悉应用程序的内部工作原理,因此最适合确定运行该应用程序的服务器技术。我想并不是所有的团队都有这样的实践方法,但是拥有足够的熟悉度并能够参与讨论是一个很大的优势。特别是在版本控制方面,您作为开发人员会受到选择哪种技术(Git,Subversion,Mercurial等)的强烈影响,因此应努力使自己参与决策过程。

那么现在怎么办?

至于我关于如何最好地学习所有这些的建议?移动你的脚。不必担心尝试阅读有关该主题的所有内容,大多数内容可能会在您完成课程时从大脑中泄漏出来。而是从头开始开发一些东西。从流浪汉开始; 它可以让您轻松创建和管理可用作新游乐场的虚拟机。然后,安装Web服务器和数据库并开始创建。如果您有一个理想的应用程序构想,那就继续吧...如果没有,请查找教程或尝试重新创建现有的应用程序。关键是要熟悉整个过程。另外,作为PHP开发人员,请务必查看PHP:正确的方法...它确实包含许多出色的信息。最重要的是,不要压力太大。我想您会沿着开发人员的道路前进,因为这是您喜欢并热衷的事情……请不要忽视这一点!


1

专注于您需要成为Web开发人员的服务器方面的哪些知识?...

实际上少得令人惊讶。您的主要知识领域应该是编程,html,php等。

您需要知道的是如何在本地运行事物,并且在执行此操作时,您将盒子用作“服务器”。因此,在本地运行时,您可以使用网络浏览器来查看页面,就像在任何互联网站点上一样...除了您的网站将是http://localhosthttp://127.0.0.1

至于配置cgi,http等。我不希望您需要知道这一点。您可以随时阅读任何有关为您使用的操作系统设置Web服务器的通用书籍,这足以了解通用术语。

对于更大的前景,我建议您进入Linux并学习如何设置和配置机器(例如Web服务器)。但前提是您实际上对这些东西感兴趣。不仅仅是在访谈中留下深刻的印象。

最后,我建议您考虑在面试时就您不太了解的领域做笔记。如果您的问题更具体地说明了您所不知道的术语等,这将有所帮助。


谢谢。如果时间允许,我还是想学习。一本“傻瓜Linux”类型的书对我有帮助吗?我将很快搬迁主机,是Amazon AWS云托管的东西可以通过一些工作使我受益,还是完全不同?
约翰

1
我不会使用假人书。许多可能不相关。我想尝试略读像管理的探讨Web服务器,如cengagebrain.com/shop/en/US/storefront/...
迈克尔·达兰特

是的,将Linux作为开发机器运行,并在其上设置Web服务器。习惯于对其进行配置。这样您将学到足够的知识。基本上,这就是您在工作中学习的方式。一半的内容由sysadmins控制,一开始可能会很好,但是随着您的前进,您将更愿意自己获得更多控制设置。
wobbily_col

0

您需要了解以下内容才能完成Web开发周期。

1)IDE(Netbeans和Eclipse等)

2)任何用于编码的编程语言。(PHP,Java等)

3)网页设计的前沿技术(HTML,CSS等)

4)支持数据库存储和检索数据。(MySQL等)

3)版本控制系统,用于检查和检索您的代码表单存储库。

4)构建工具,用于使用相关文件编译代码。(蚂蚁,Maven)

6)Web服务器部署并运行您的代码。

7)需要了解服务器上的基本部署过程,以运行和测试Web和ejb组件。(Tomcat,Web逻辑服务器)


0

除了DemetriKots答案外,我还将添加针对自动化部署和持续集成的解决方案。最初设置服务器只是一个步骤,而通过FTP进行部署既痛苦又容易出错,并且没有适当的解决方案来回退不良的部署。

  • Hudson-持续集成服务器
  • Phing-基于Ant的自动化构建工具,专门用于PHP
  • Ant-自动构建工具
  • Capistrano-创建部署脚本以自动化并简化Web应用程序的部署。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.