![低维护 php 或 python (perl) 和 mysql 或 sqlite 数据库 web 应用程序的最佳服务器选择](https://linux22.com/image/539868/%E4%BD%8E%E7%BB%B4%E6%8A%A4%20php%20%E6%88%96%20python%20(perl)%20%E5%92%8C%20mysql%20%E6%88%96%20sqlite%20%E6%95%B0%E6%8D%AE%E5%BA%93%20web%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%9C%80%E4%BD%B3%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%80%89%E6%8B%A9.png)
抱歉,这个新手问题之前已经有人问过了。(我查过了,但没有找到)。
我刚刚发现,我无法再在我使用的非常可靠(无需维护)的内部托管服务器上运行我的 Web 应用程序,因为我的硬盘空间超出了最大分配(仅 2GB!),并且我还超出了活动内存分配(仅几 MB)。现在有人告诉我,我必须设置自己的服务器。那么,最好的服务器选择是什么?
这些是我的需求:
- 我需要一个安全且只需极少设置和管理的服务器操作系统。(周围没有 IT 专业人员,所以我必须自己做所有事情。)
- 我需要运行一些 php(后来是 python?)Web 应用程序,这些应用程序驱动大小为几 GB 的后端语言语料库 sqlite(后来是 mysql)数据库,理想情况下,我希望将其完全存储在活动内存中,以加快我们对选择结果的排序。在语料库应用程序中,选择通常会产生数百或数千个结果,这些结果都必须在多个列上进行排序。(索引是必不可少的,但快速排序也是关键)。
- 我需要运行一个需求很低但很关键的 Drupal 内容管理系统,每周点击量可能不到 10,000 次。
- (我不需要任何文件服务器、打印服务器、电子邮件服务器功能)
当前托管服务器是通过 cPanel 管理的 Linux/Apache。我正在考虑购买一台配备 48GB DDR3 RAM、Raid 1 和两个 SAS 驱动器的服务器。(这完全是小菜一碟吗?)
最大的问题是我应该选择 Linux(例如 CentOS、SME Server 或类似产品)还是 Windows Server 2008 R2?Linux 似乎最适合 php/mysql 应用程序,但我想知道 Win Server 2008 R2 是否更易于管理。
如有任何意见/建议我将不胜感激。
答案1
满足这些需求的最佳解决方案是选择云托管提供商。市场上有很多云托管提供商,它们都提供强大的产品,最终决定因素很可能是价格和提供的服务数量。
从操作平台开始,我最想说的是,你应该坚持使用你当前正在运行的平台。如果你利用第三方进行迁移,那么将所有内容从应用程序迁移到数据库层将非常耗时且成本高昂。
就管理角度而言,一些云提供商提供管理作为附加服务,其范围不仅限于操作系统,还扩展到数据库领域和应用程序。
您提到了 CMS,听起来像是 LAMP 堆栈。我可以推荐一些托管公司,它们有模板可供您使用,价格低至 0.06 美元/GB 内存小时。
看看亚马逊、Rackspace 和 Logicworks 会是一个很好的起点。我实际上是上述其中一家公司的工程师,所以我非常熟悉服务模式并能够为您提供帮助,如果您有任何问题,请联系我,祝您好运!
答案2
- 如果您只是寻求易于管理,我会选择您最熟悉/最习惯的操作系统。如果您无法决定,就选择您当前正在使用的操作系统。您可能希望仔细检查将来要使用的任何应用程序/软件包是否可在您选择的系统上运行。
- 另一个需要考虑的问题是,您选择的操作系统/系统和应用程序有多少支持。例如,我远非 Linux 专家,但有很多关于设置和管理 Linux 系统的 HowTos/论坛,因此当我需要时,很容易找到信息和帮助。
- 对于只有几 GB 大小的数据库来说,48GB 的 RAM 似乎太多了。考虑最初使用较少的内存(4-8GB),看看这对性能有何影响,并根据需要升级 RAM。这完全取决于您的应用对内存的需求程度、添加 RAM 的难易程度以及您的总体预算。
- 在考虑需要多少内存时,请将活动记录集大小与数据库总大小进行比较。例如,我使用的数据库总大小为 7GB,但活动记录集比这小得多,可能只有 0.5-1GB。尽管为 MySQL 提供了 4GB 内存,但它只使用了其中的 1-1.5GB。