(已更新Vesta 0.9.8-17版使用问题总结)
写这篇文章的时候,VestaCP的最新版为Vesta 0.9.8-15
因为我用的vps配置比较低,所以选择了nginx + phpfpm + mysql。

一、下载安装脚本

wget http://vestacp.com/pub/vst-install.sh

二、安装VestaCP

1. VestaCP要求在纯净系统中才能安装,而我装的CentOS 7 初始自带httpd,所以要先卸载掉它:

yum -y remove httpd*

清理一下home目录:

rm -rf /home/*

2. 然后安装

bash vst-install.sh

如果一直提示不允许安装,也可以在安装命令后添加--force参数尝试强制安装:

bash vst-install.sh --force

如果不想在安装过程中再输入什么,可以在最后再添加两个参数:

--hostname 域名 --email 邮件

2.1. (可选)自定义安装项:

bash vst-install.sh --nginx yes --apache no --phpfpm yes --vsftpd yes --proftpd no --named no --mysql yes --postgresql no --mongodb no --exim no --dovecot no --spamassassin no --clamav no --iptables yes --fail2ban no --remi yes --quota no --lang cn --interactive yes

2.2. (可选)直接安装php7.0

如果你想要直接安装php7.0,你可以直接下载对应系统的安装脚本(在vst-install.sh中有),如CentOS对应的是vst-install-rhel.sh

wget http://vestacp.com/pub/vst-install-rhel.sh

然后替换脚本中的epel库和remi库(前提是已安装epel库和remi库)

# 启用安装php 7.0
sed -i 's/rpm -Uvh --force $vestacp\/epel-release.rpm//g' vst-install-rhel.sh
sed -i 's/vesta-php expect/vesta-php expect --enablerepo=remi-php71/g' vst-install-rhel.sh

PS

部分VPS有几率开机启动nginx失败,我的解决方法是在/etc/rc.local中修改sleep 3的数值大一些,比如sleep 10。

# vi /etc/rc.local
sleep 10 && systemctl restart nginx

如果有其他程序也启动失败,也可以添加至后面(因为安装面板启动失败的,比如crond、shadowsocks-libev)。

sleep 10 && systemctl restart nginx && systemctl restart crond && systemctl restart shadowsocks-libev

2.3. (可选)使用Beta版VestaCP:

我试过切换成功,但恢复失败,可能是我的原因。

# 备份当前的VestaCP
zip -r /home/backup/vesta-back.zip /usr/local/vesta

# 从git下载最新的VestaCP
git clone https://github.com/serghey-rodin/vesta.git /home/backup/vesta-new

#移动至运行目录
\cp -rf /home/backup/vesta-new/* /usr/local/vesta

# 重启服务
bash /usr/local/vesta/bin/v-restart-service "nginx";
bash /usr/local/vesta/bin/v-restart-service "crond";

############################################################
# 恢复备份
rm -rf /usr/local/vesta/*
unzip /home/backup/vesta-back_16.zip -d /usr/local/vesta

# 重启服务
bash /usr/local/vesta/bin/v-restart-service "nginx";
bash /usr/local/vesta/bin/v-restart-service "crond";

3.安装完成

最后,安装成功后会显示:

成功界面(以后补上)

修改面板默认端口(替换“端口”为目标端口号):

# 进入后台界面->防火墙,找到vestacp那一行,修改8083为目标端口号
sed -i 's/ 8083;/ 端口;/g' /usr/local/vesta/nginx/conf/nginx.conf
systemctl restart vesta

清理一下安装备份:

rm -rf vst-install-rhel.sh vst_install_backups

另附:网站添加SSL后,可以在配置文件中添加http强制跳转至https

server {
    listen      x.x.x.x:80
    server_name xxx;
    root        /home/admin/web/xxx/public_html;
    index       index.php index.html index.htm;
    access_log  /var/log/nginx/domains/xxx.log combined;
    access_log  /var/log/nginx/domains/xxx.bytes bytes;
    error_log   /var/log/nginx/domains/xxxerror.log error;

    include     /home/admin/conf/web/nginx.xxx.conf*;

    rewrite ^/(.*) https://$server_name/$1 permanent;
    # 其他的要不要都行
}

PS: 如果还使用tomcat等JAVA Web 应用服务器,且用到数据库连接池的话,最好修改一下MySQL的配置文件/etc/my.cnf

    # 修改wait_timeout和interactive_timeout值大一点,具体可以按自己的需求
    wait_timeout=600
    interactive_timeout=600

或直接命令行中修改:

    show global variables like 'wait_timeout';
    set global wait_timeout=600;
    set global interactive_timeout=600;

记录: (20之前发生过)

※0day漏洞
https://forum.vestacp.com/viewtopic.php?f=10&t=16556
一定要升级到20,我的服务器可能因此变成肉鸡了一段时间(也许是巧合)


记录: (16升17时发生过)

邮件服务无法使用:Roundcube 提示“连接至 IMAP 服务器失败。”
  dovecot的配置文件/etc/dovecot/conf.d/auth-passwdfile.conf.ext未正确配置,要把“%d”或“default.hostname”改为启用的邮箱域名。

邮件服务提示异常:Initialization failed: namespace configuration error: inbox=yes namespace missing”
  重命名或删除/etc/dovecot/conf.d/15-mailboxes.conf文件即可,原因是15-mailboxes.conf和10-mail.conf的命名空间冲突。(似乎是dovecot的常见问题,如有错误请指明)

邮件服务提示异常:Warning: autocreate plugin is deprecated”
  在这个文件中/etc/dovecot/conf.d/20-imap.conf关闭autocreate插件,大概就像下面这样

protocol imap {
mail_plugins = $mail_plugins 
}

plugin {
  #autocreate = Trash
  #autocreate2 = Spam
  #autocreate3 = Sent
  #autocreate4 = Drafts
  #autocreate5 = Custom
  autosubscribe = Trash
  autosubscribe2 = Spam
  autosubscribe3 = Sent
  autosubscribe4 = Drafts
  #autosubscribe5 = Custom
}

无法在/tmp/tmp.xxx找到文件
  先关闭SSL支持再打开SSL支持。

error: letsencrypt account registration 400
  需要安装vim-common

yum install vim-common

记录: (16版发生过)

在我其中一台vps(CentOS 7 x64)上正常安装后却无法启动vestacp,查看日志后发现还需要关闭以下服务。(应该只是个例,写在这记录一下)

# journalctl -f
systemctl stop console-getty.service
systemctl stop getty@tty1.service
systemctl stop getty@tty2.service
systemctl stop getty@tty3.service
systemctl stop getty@tty4.service

systemctl disable console-getty.service
systemctl disable getty@tty1.service
systemctl disable getty@tty2.service
systemctl disable getty@tty3.service
systemctl disable getty@tty4.service

systemctl mask console-getty.service
systemctl mask getty@tty1.service
systemctl mask getty@tty2.service
systemctl mask getty@tty3.service
systemctl mask getty@tty4.service

注意(以下问题在Vesta 0.9.8-16中我遇到过,但17版中都已修复):

一、phpmyadmin和webmail所有图片全挂

打开phpmyadmin.inc:

vi /etc/nginx/conf.d/phpmyadmin.inc

把以下部分注释掉:

#location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
#    root /usr/share/;
#}

二、后台无法切换网站SSL目录
  即使选择网站目录为public_shtml,配置文件中也没有变化,需要去配置文件中手动修改。

vi /home/admin/conf/web/nginx.conf
vi /home/admin/conf/web/snginx.conf

注意(以下问题在Vesta 0.9.8-15中我都遇到过,但16版中都已修复):

一、CentOS 7 安装时不能选择fail2ban,因为选了安装时会报错。

二、新添加网站若开启SSL的话,nginx会启动失败,因为这个版本的vesta配置文件写错了两个地方。

打开vesta.conf:

vi /etc/nginx/conf.d/vesta.conf

第二行开头,修改"I"为"i";conf后面少了分号,在最后添加";"。

保存退出,再重新启动nginx即可。

三、phpmyadmin和webmail所有图片全挂(可能是因为我配置文件改的太多)。

打开phpmyadmin.inc:

vi /etc/nginx/conf.d/phpmyadmin.inc

在“location ~ ^/phpmyadmin/(.*.php)$ ”前面添加

location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
    expires     max;
}

打开webmail.inc:

vi /etc/nginx/conf.d/phpmyadmin.inc

在“location ~ ^/webmail/(.*.php)$ ”前面添加

location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
    expires     max;
}

保存退出,再重新启动nginx即可。