暂时放弃了开发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的远程路径。实际上就是用str_replace()函数,把\替换成/,把D\:site替换成/var/www/html,于是再深的路径都能一次替换完成。这样,把2个路径直接复制到Xftp的左右两框,其中在Xftp里,左边是本地路径,右边是远程路径。

1条评论:
1   自由勇 2018-11-18 08:35
Trackback来自《VPS都已切换到Ubuntu系统/VPS面板开发的一点设想

这个一键的shell命令,是对服务器安装、配置的集成,全自动安装、配置。正当前些天决定,放弃VPS面板的开发,现在又有想把这个项目复活的冲动,做成VPS面板的项目。

2   自由勇 2018-12-19 07:59
Trackback来自《新项目的临时新计划(图床、相册、网站远程备份等程序)

Vaimt Panel是我在2016年计划的一个Linux VPS面板。

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

正文:

  记住信息?

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

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

与此相关的链接
自由勇专栏

Blog存档 Archives

2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +

2020年 +
2019年 +
2018年 +
2016年-2017年(9)
2014年06月-09月(10)
2013年 +
2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

Copyright © 2006-2024 auiou.com All rights reserved.
此Blog程序由王志勇编写