王志勇 发表于 2018年09月22日 10:20
原以为是个小项目,也许一两个月内能完成。结果,调试了一个多月,仅在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里,左边是本地路径,右边是远程路径。
这个一键的shell命令,是对服务器安装、配置的集成,全自动安装、配置。正当前些天决定,放弃VPS面板的开发,现在又有想把这个项目复活的冲动,做成VPS面板的项目。
置顶的文章:
论朋友圈可以发什么?
短信验证开发的方案分享
巡回更新:2018-09-21
速度是永恒的主题
UTF-8、HTTPS原来都是浮云
https安全吗?
独立博客有必要安装https吗?
近期的主题:
2024.9感言
人生讨论(20):有人借钱怎么办?(2)
人生讨论(19):迄今为止最强的情感频道
数码评测(67):让小米/红米手机的反应提高1~2倍
数码评测(66):无线网卡FW150UH VS FW150UH
数码评测(65):如何快速自制CPU天梯图?
数码评测(64):2024年,你还在用VGA线吗?
人生讨论(18):6年就可以实现财务自由
人生讨论(17):为什么总是受欺负?
人生讨论(16):要钱的最新妙招
创业杂谈(17):什么项目能赢利?
人生讨论(15):有人借钱怎么办?
数码评测(63):高清切换超级神器
数码评测(62):再谈视频的尺寸
数码评测(61):近期数码采购和折腾
人生讨论(14):看穿尊重
数码评测(60):图拉丁-最佳中配工作“免费”手机
创业杂谈(16):博客何时终结?
创业杂谈(15):互联网项目
创业杂谈(14):LAMP项目
版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。
与此相关的链接
自由勇专栏
Blog存档 Archives
2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +