文章更新:
20161019 初次成文
问题提出:
在写这篇文章之前,小苏本身有一台腾讯云的学生主机,但是因为域名没有备案的原因,小苏一直没有把网站部署在腾讯云上。最近小苏比较有时间,于是就在腾讯云申请了域名备案。在写这篇文章的时候,小苏已经通过了域名备案初审在等待幕布到货了。
根据管局要求,域名备案期间要求网站不能正常访问才可以通过备案,所以这篇文章可能是mlapp.cn这个域名在备案之前的最后一篇文章了。
于是写篇文章来纪念一下(这个理由也太牵强了吧)。
解决方案:
在这篇文章中,我们将从重装系统开始,在Centos上部署LNMP环境并安装amh控制面板。
不知道amh为何物?请点击这里。
登陆腾讯云的云主机控制台,选中你想要配置的腾讯云主机,选择"重装系统" - "公共镜像" - "Centos6.5 64位",耐心等待系统重装完成后,使用ssh方式登录进服务器执行以下操作:
yum install -y wget #安装wget yum install -y screen #安装screen
这里不得不吐槽,腾讯云的yum源有问题。所以我们需要手动更换可以使用yum源:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak #备份默认的yum源(默认源本来就就有问题,所以在腾讯云上这一步几乎没有什么卵用) wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo #更换默认的yum源为阿里云镜像源
同时,腾讯云的EPEL源也有问题,所以我们还需要修改EPEL源:
cp /etc/yum.repos.d/CentOS-Epel.repo /etc/yum.repos.d/CentOS-Epel.repo.bak #备份默认EPEL源(虽然在腾讯云上这一步也没有什么卵用) vim /etc/yum.repos.d/CentOS-Epel.repo #编辑EPEL源文件
执行以上命令之后,我们将使用vim编辑器编辑EPEL源配置文件,键入按键i后可以进入编辑模式,使用退格键清除文件全部内容之后,我们在vim编辑器中粘贴以下内容:
[epel]
name=epel
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-$releasever&arch=$basearch
enabled=1
gpgcheck=0
粘贴完成之后,键盘键入:wq!强制保存文件并退出vim编辑器。
这里不得不再次吐槽,在腾讯云上,我在ssh界面使用编辑器是有问题的,不论是vi还是vim,都不能正常编辑文件(但是装其他系统就没有这个问题)。所以小苏推荐大家使用sftp登陆云主机,找到并编辑/etc/yum.repos.d/CentOS-Epel.repo
这个文件,清除文件所有内容并粘贴以上内容,保存并上传文件,和先前我们用vim编辑这个文件的操作实质上是一样的。
做完以上操作之后,我们需要执行makecache
生成缓存:
yum clean all yum makecache
至此,腾讯云换源操作完成。接下来我们进行amh控制面板的安装:
screen -S amh #新建一个名为amh的screen,当ssh意外断开时可以恢复原来的会话 cd ~ rm -rf amh* #清除可能残留的amh文件
做完以上准备工作我们就可以安装amh4.2了。amh4.2是一款免费的主机控制面板(amh从5.0版本开始收费,4.2是amh的最后一个免费版本),管理员可以在web端对主机进行操作,无需在终端敲代码进行繁复的命令行操作。
此次安装中,小苏使用的是amh4.2彩虹修改版。详情请看:http://blog.cccyun.cc/?post=233
同时,小苏也推荐大家使用amh4.2麦葱修改版:https://maicong.me/t/145
当然,你也可以使用amh4.2官方的一键安装脚本,详情请看:https://amh.sh/install.htm
彩虹修改版提供了两个版本,小苏推荐大家使用支持php7.0的版本。我们继续在ssh中执行:
wget http://api.cccyun.cc/amh.sh && chmod 775 amh.sh && ./amh.sh 2>&1 | tee amh.log #获取并执行amh4.2一键安装脚本(php7.0)
执行脚本后,终端将返回:
[Notice] Confirm Install/Uninstall AMH? please select: (1~3)
1) Install AMH 4.2
2) Uninstall AMH 4.2
3) Exit
这个提示为询问用户是要安装amh还是卸载amh,由于我们是要安装amh,所以我们键入1并回车:
[OK] You Selected: Install AMH 4.2
[Error] empty server ip.
[Notice] Please input server ip:
这个提示为询问此云主机的公网IP,我们将云主机控制台的云主机公网IP键入,并回车(这里以公网IP为123.123.123.123做示例):
[OK] Your server ip is:
123.123.123.123
[Notice] Please input MySQL password:
此提示为要求用户设置一个MySQL数据库密码,建议设置得复杂一些(这里以MySQL密码设置为mysqlpassword做示例):
[OK] Your MySQL password is:
mysqlpassword
[Notice] Please input AMH password:
此提示为要求用户设置amh控制面板的登陆密码,同样不要设置得太简单(这里以amhpassword做示例):
[OK] Your AMH password is:
amhpassword
回车之后amh就开始安装了。由于各模块为编译安装,所以安装时间较长(大约20~40分钟)。当你看到终端返回以下结果时代表amh安装成功:
[AMH] Congratulations, AMH 4.2 install completed.
AMH Management: http://123.123.123.123:8888
User:admin
Password:amhpassword
MySQL Password:mysqlpassword
安装完成后你可以通过访问http://公网IP:8888进入amh控制面板,默认的用户名为admin,密码为安装最开始时你输入的控制面板密码。
虽然在之前我们已经做了大量的准备工作,但是在安装过程中,还是不可避免地出现一些问题,当安装过程中出现以下问题时,你可以采取以下解决方法:
1.安装过程中,在Nginx部分可能会出现错误(在安装成功尝试启动nginx时可能也会报错):
Nginx [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
这个错误代表80端口被其他程序占用,此错误出现时,nginx不会正常启动,所以也无法通过访问http://ip:8888进入控制面板。
为了解决这个问题,我们需要进入amh的nginx命令行控制选项,在终端中执行:
amh nginx
终端返回:
[AMH] Nginx Management please select: (1~4)
1) start
2) stop
3) restart
4) reload
5) exit
我们先键入2来停止nginx(停止前nginx应该为未启动状态),然后执行:
fuser -k 80/tcp
停止占用80端口的程序,执行成功之后,再次执行amh nginx,键入1启动nginx,当终端提示:[OK] Nginx start 时表示nginx已成功启动,但是小苏还是建议重启云主机然后访问amh控制面板来测试一下是否能够成功打开页面(不出意外的话应该是没问题的)。
2.安装过程中,ssh连接意外中断: 由于amh4.2为编译安装,且只有编译安装这一种方式(在amh5.x版本上,是可以免编译安装amh的,安装速度很快,奈何收费),所以安装时间比较长(20~40分钟)。在等待安装的过程中,ssh必须一直处于连接状态,如果ssh连接意外中断,安装过程也会随之中止。但如果你是按照小苏的流程走下来的,由于我们在安装amh之前已经安装了screen程序,并且我们的整个安装过程都在screen中进行,所以即使ssh连接断开,会话还是会在screen中继续进行的,那么如何恢复断开的会话呢?很简单,只需要在终端中执行:
screen -r
即可恢复原来的会话。
参考资料:
将Centos的yum源更换为国内的阿里云源 CentOS使用EPEL源 自用的amh4.2优化版,已升级到php7 - 彩虹博客 AMH 4.2 – 麦葱修改版 [20150526更新] - 麦田一根葱 screen命令 - Linux命令大全 fuser命令 - Linux命令大全