diff --git a/app/http/controllers/plugins/pureftpd/pureftpd_controller.go b/app/http/controllers/plugins/pureftpd/pureftpd_controller.go index 61f0ce5f..905e6f2a 100644 --- a/app/http/controllers/plugins/pureftpd/pureftpd_controller.go +++ b/app/http/controllers/plugins/pureftpd/pureftpd_controller.go @@ -5,6 +5,7 @@ import ( "strings" "github.com/goravel/framework/contracts/http" + "github.com/spf13/cast" "panel/app/http/controllers" "panel/pkg/tools" @@ -41,26 +42,6 @@ func (c *PureFtpdController) Status(ctx http.Context) http.Response { } } -// Reload 重载配置 -func (c *PureFtpdController) Reload(ctx http.Context) http.Response { - check := controllers.Check(ctx, "pureftpd") - if check != nil { - return check - } - - tools.Exec("systemctl reload pure-ftpd") - status := tools.Exec("systemctl status pure-ftpd | grep Active | grep -v grep | awk '{print $2}'") - if len(status) == 0 { - return controllers.Error(ctx, http.StatusInternalServerError, "获取PureFtpd状态失败") - } - - if status == "active" { - return controllers.Success(ctx, true) - } else { - return controllers.Success(ctx, false) - } -} - // Restart 重启服务 func (c *PureFtpdController) Restart(ctx http.Context) http.Response { check := controllers.Check(ctx, "pureftpd") @@ -273,7 +254,7 @@ func (c *PureFtpdController) GetPort(ctx http.Context) http.Response { return controllers.Error(ctx, http.StatusInternalServerError, "获取PureFtpd端口失败") } - return controllers.Success(ctx, port) + return controllers.Success(ctx, cast.ToInt(port)) } // SetPort 设置端口 diff --git a/routes/plugin.go b/routes/plugin.go index 68e7f12a..b63a428c 100644 --- a/routes/plugin.go +++ b/routes/plugin.go @@ -232,13 +232,12 @@ func Plugin() { facades.Route().Prefix("api/plugins/pureftpd").Middleware(middleware.Jwt()).Group(func(route route.Router) { pureFtpdController := pureftpd.NewPureFtpdController() route.Get("status", pureFtpdController.Status) - route.Post("reload", pureFtpdController.Reload) route.Post("start", pureFtpdController.Start) route.Post("stop", pureFtpdController.Stop) route.Post("restart", pureFtpdController.Restart) route.Get("list", pureFtpdController.List) route.Post("add", pureFtpdController.Add) - route.Post("delete", pureFtpdController.Delete) + route.Delete("delete", pureFtpdController.Delete) route.Post("changePassword", pureFtpdController.ChangePassword) route.Get("port", pureFtpdController.GetPort) route.Post("port", pureFtpdController.SetPort) diff --git a/scripts/pureftpd/install.sh b/scripts/pureftpd/install.sh index 7acbd4fa..66e35a29 100644 --- a/scripts/pureftpd/install.sh +++ b/scripts/pureftpd/install.sh @@ -81,11 +81,12 @@ sed -i 's!LimitRecursion\s*10000 8!LimitRecursion 20000 8!' ${pureftpdPath}/etc/ sed -i 's!# TLS!TLS!' ${pureftpdPath}/etc/pure-ftpd.conf sed -i "s!# CertFile\s*/etc/ssl/private/pure-ftpd.pem!CertFile ${pureftpdPath}/etc/pure-ftpd.pem!" ${pureftpdPath}/etc/pure-ftpd.conf sed -i 's!# Bind\s*127.0.0.1,21!Bind 0.0.0.0,21!' ${pureftpdPath}/etc/pure-ftpd.conf +sed -i "s!# PIDFile\s*/var/run/pure-ftpd.pid!PIDFile ${pureftpdPath}/etc/pure-ftpd.pid!" ${pureftpdPath}/etc/pure-ftpd.conf touch ${pureftpdPath}/etc/pureftpd.passwd touch ${pureftpdPath}/etc/pureftpd.pdb openssl dhparam -out ${pureftpdPath}/etc/pure-ftpd-dhparams.pem 2048 -openssl req -x509 -nodes -days 3560 -newkey rsa:2048 -sha256 -keyout ${pureftpdPath}/etc/pure-ftpd.pem -out ${pureftpdPath}/etc/pure-ftpd.pem << EOF +openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -sha256 -keyout ${pureftpdPath}/etc/pure-ftpd.pem -out ${pureftpdPath}/etc/pure-ftpd.pem << EOF CN Beijing Beijing @@ -102,13 +103,13 @@ ln -sf ${pureftpdPath}/bin/pure-pw /usr/bin/pure-pw cat > /etc/systemd/system/pure-ftpd.service << EOF [Unit] Description=Pure-FTPd FTP server -After=network.target +After=syslog.target network.target [Service] Type=forking -PIDFile=/var/run/pure-ftpd.pid +PIDFile=${pureftpdPath}/etc/pure-ftpd.pid ExecStart=${pureftpdPath}/sbin/pure-ftpd ${pureftpdPath}/etc/pure-ftpd.conf -ExecReload=/bin/kill -HUP \$MAINPID +ExecStartPost=/bin/sleep 2 ExecStop=/bin/kill -TERM \$MAINPID [Install]