开发一键Shell命令安装VPS的PHP环境遇到的几个难题

王志勇 发表于 2019年08月31日 12:51

兼容所有的系统,是巨大的挑战,也很可能是不可能完成的任务,只能做到尽可能兼容。这个自编的纯净版一键Shell命令,用了2年多,真的很好用,省去了我很多麻烦。因为我过去只用Ubuntu 12、CentOS 5,所以一直以来只兼容这2个系统。到了要发布的时候,需要兼容大多数的系统。这几天,为了测试,必须用真机重装系统,已经重装不下60次系统,VPS每月只能重装30次,其中有一个本月已经用完30次。

开发一键Shell命令安装VPS环境遇到的几个难题:

1. 最大的难题是VPS每月需要重装的次数太多,但服务商限制30次。所以每次重装时我必须计数,快用完时,把别的VPS上的网站挪到这个VPS,再在别的VPS上重装系统。

2. Ubuntu 16、Debian 9,安装时都会由于新装的系统存在apt-get进程,导致报错。解决的方法是重启,或者用命令的方式。而命令的方式,Debian 9系统下,在一台香港的VPS上的Debian 9.1完美运行;在一台美国VPS的Debian 9.9会报错,只能通过重启解决。

(说明,这个命令在Ubuntu 16下是通过搜索“apt.systemd.daily update”,然后自动杀死这个进程即可,有了这个命令就不用手动杀死进程:
a1=`ps -ef | grep 'apt.systemd.daily update' | grep -v grep | awk '{print $2}'`; if [ "$a1"x != ''x ]; then kill -9 $a1; fi;

Ubuntu 18上个月我还有真机,现在没有Ubuntu 18真机了。Ubuntu 18估计也能用完全一样的这个方法,杀死apt进程。

Debian 9的杀死apt进程的命令与此不一样,昨晚花了几个小时专门解决这个问题,这个方法可以办到:
rm -rf /var/cache/apt/archives/lock; rm -rf /var/lib/dpkg/lock; apt update; dpkg --configure -a;

其中,dpkg --configure -a; 这个命令是根据报错提示给出的解决方法。

但这个Debian 9的杀死apt进程的命令,正如上述所提,有的服务器完美运行,有的服务器会有报错,为了这个问题真的忙到焦头烂额。)

如果选用重启的方案,那么需要在运行一键Shell命令时,强制用户的VPS自动重启一次,重启后再次运行此命令,就可以自动安装。这种方法虽然好用,但是对有的用户来说,可能会觉得有点不方便。

用命令的方式解决此报错,则不需要重启,要彻底解决,还需要重装很多次系统来测试。因为我每走一遍,就需要重装一次系统。

3. 为了解除这个30次限制,为什么不用虚拟机?因为虚拟机下,大多数的PHP 7.X无法安装,由于PHP 7.X太大,虚拟机下的系统无法安装PHP 7.X,会有报错。另外,虚拟机下测试安装环境,网络速度很慢,需要花很多时间来等。真机的网络速度非常快,大约是5-10倍的速度。

4. 一台香港VPS的Ubuntu 16,安装中总是有报错。于是,更换了/etc/apt/sources.list的文件为国外服务器,顺利安装。因为这个香港VPS用的是aliyun国内的软件源,所以安装中有报错。
为了防止这个报错,很可能需要强制用户将sources.list源改为官方软件源。

5. 一台香港VPS的Debian 9.1,安装PPA+PHP 7.4,PHP怎么都不执行。
一台美国VPS的Debian 9.9,用完全一样的命令,安装PPA+PHP 7.4,顺利运行。
于是,把香港VPS的Debian 9.1的/etc/apt/sources.list(同样是aliyun的软件源),更换为美国VPS的Debian 9.9的文件,安装PPA+PHP 7.4,顺利运行。

这说明,和第4种的情况一样,是软件源的原因。

0条评论:

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

正文:

  记住信息?

直接发送Trackback到此文章

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

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

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

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

Blog存档 Archives

2019年12月
2019年11月
2019年10月
2019年09月
2019年08月
2019年07月
2019年06月
2019年05月
2019年04月(30)
2019年03月(30)
2019年02月(30)
2019年01月(30)
2018年12月(30)
2018年11月(30)
2018年10月(30)
2018年09月(17)
2016年-2017年(9)
2014年06月-09月(10)
2013年 +

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

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