暂时放弃了开发VPS面板的想法

王志勇 发表于 2018年09月22日 10:20

前年开始了VPS面板的开发,用PHP+NoSQL的构架。一转眼,整整2年过去了,当时在本地用虚拟机,在CentOS, Debian, Ubuntu这3种系统的10多个版本中调试了一个多月,比如CentOS 5.3、CentOS 6.7、CentOS 7.0,Ubuntu 12、Ubuntu 14、Ubuntu 15等等。

原以为是个小项目,也许一两个月内能完成。结果,调试了一个多月,仅在Linux下判断系统的类型,修改相关文件的权限,网页都还没有写出来。这些调试里,遇到了很多种不同的条件,对这些条件的处理需要大量的构思,所以花了很多的时间。

之所以要开发这样的面板,是因为较好用的已有的面板,几乎没有。即使有,也只能用某一种系统,或者国外的收费很高。国人开发的最有名的面板之一是VPSMate(免费),他竟然是用Python语言写的,对他的作品感到很佩服,特别是他的这个面板能够安装Apache、PHP等很多软件。而我已有的技术,只有用纯PHP+Shell+NoSQL,用户原始的PHP环境,必须在Shell命令下完成,我来编写最原始的shell安装命令。

PHP+Shell完全可以实现开发VPS面板,实现如cPanel的绝大部分功能,很多特殊功能如安装某软件、重启Apache、重启系统、安装MySQL、备份MySQL等等都需要用PHP调用Shell命令就能轻松实现。Web上传文件,还有很多操作、写入相关数据需要在PHP程序里实现。

然而,当开始着手开发,会发现需要兼容不同用户的环境的种类会越来越多,比如有的用户是LAMP环境,有的用户是LNMP。Apache还好一点,Nginx以前我没有调试过,作为开发者,Nginx至少要演习、设置、安装上百次,彻底熟悉它,才能嵌入到这个项目里。

这个项目已经不是小项目,因为兼容性的原因,开发者需要记忆非常多的事情。

由于随时可能会出现兼容性问题,也需要资金储备,随着时间的流逝,这个项目的想法也逐渐放弃。因为开发像cPanel这样的功能的面板,涉及到的兼容性问题少一点,相对容易开发很多,比如添加站点、压缩和解压缩、重启Apache、重启系统,都是调用Shell命令。而操作MySQL,是在Shell命令下又运行了SQL命令,这一功能在调试中尚未在Web里实现,因为web只能调用shell命令,无法再调用shell命令下的SQL命令,或许有办法,但还需要很多时间来查阅资料和调试。

在没有VPS面板情况下,添加站点是在Apache、Nginx的配置文件里添加,压缩和解压缩、重启Apache、重启系统等操作,都可以在Shell命令里完成,VPS面板仅仅是为了简化这个操作,然而对于开发者而言,要考虑的因素和开发的复杂程度,则比这个操作要复杂1000倍以上,最后还不一定有多少用户在用。所以,这个艰苦的任务,暂停了。

VPS最好用的2个管理软件:Xshell、Xftp。其中,Xshell用来输入SSH命令,Xftp用来传输文件(端口一定要输入22)。有了这2个软件,完全不需要VPS面板。Xftp唯一的缺点是,不能像LeapFTP一样保存远程、本地路径,每次都要找路径,这一点相当麻烦。

为了解决Xftp的这个问题,我在本地写了一个迷你小工具,这样每次能节省至少2分钟。先在硬盘里找到本地站点的程序,把本地路径转换为VPS的远程路径,如下2图。实际上就是用str_replace()函数,把\替换成/,把D\:site替换成/var/www/html,于是再深的路径都能一次替换完成。这样,把2个路径直接复制到Xftp的左右两框,其中在Xftp里,左边是本地路径,右边是远程路径。

如下图,在Xftp里,左边是本地路径,右边是远程路径。

0条评论:

发表评论:
名字: (*必填)
博客: (可省)

正文:

  记住信息?

直接发送Trackback到此文章

说明:本评论系统不支持HTML代码。(您的留言需要审核,审核规则请见这里。)

王志勇:1980-09-26 (38周岁)
程序设计,前端设计。

版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。

Blog存档 Archives

2018年10月
2018年09月(17)
2016年-2017年(9)
2014年06月-09月(10)
2013年 +

2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

Copyright © 2006-2018 auiou.com All rights reserved.
此Blog程序由王志勇编写 已经发布在Arsue