CentOS下安装VestaCP
(已更新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即可。
最近回复