当前位置:首页 > PHP

php实现linux关机重启功能

2026-04-02 19:43:04PHP

PHP 实现 Linux 关机/重启功能

PHP 可以通过调用系统命令或使用特定函数实现 Linux 系统的关机或重启操作。以下是几种常见的方法:

方法 1:使用 exec()shell_exec() 函数

通过调用系统命令 shutdown 实现关机或重启。需要确保 PHP 运行用户(如 www-data)有执行权限。

// 关机命令(立即执行)
exec('sudo shutdown -h now');

// 重启命令(立即执行)
exec('sudo shutdown -r now');

方法 2:通过 sudo 免密配置

php实现linux关机重启功能

为避免每次输入密码,需编辑 /etc/sudoers 文件,允许 PHP 用户无密码执行 shutdown 命令。

# 在 /etc/sudoers 中添加以下行(以 www-data 用户为例)
www-data ALL=(ALL) NOPASSWD: /sbin/shutdown

方法 3:使用 PHP 的 system() 函数

// 关机
system('sudo shutdown -h now');

// 重启
system('sudo shutdown -r now');

方法 4:通过 Web 界面安全调用

php实现linux关机重启功能

为增强安全性,建议通过 Web 界面限制操作权限,例如添加 Token 验证或 IP 白名单。

$token = 'YOUR_SECURE_TOKEN';
if ($_GET['token'] === $token && $_SERVER['REMOTE_ADDR'] === 'TRUSTED_IP') {
    exec('sudo shutdown -h now');
} else {
    echo 'Access denied';
}

注意事项

  • 确保 PHP 运行用户有足够的权限(通常需配置 sudo)。
  • 直接暴露关机/重启功能存在安全风险,务必添加访问控制。
  • 测试前保存所有工作,避免数据丢失。

替代方案 如果无法使用 sudo,可创建一个具有权限的脚本文件,通过 PHP 调用该脚本。例如:

  1. 创建脚本 /usr/local/bin/safe_shutdown.sh
    #!/bin/bash
    shutdown -h now
  2. 赋予执行权限并设置 setuid
    chmod +x /usr/local/bin/safe_shutdown.sh
    chown root:root /usr/local/bin/safe_shutdown.sh
    chmod u+s /usr/local/bin/safe_shutdown.sh
  3. PHP 调用脚本:
    exec('/usr/local/bin/safe_shutdown.sh');

标签: 重启功能
分享给朋友:

相关文章

原生实现vue功能

原生实现vue功能

原生JavaScript实现Vue核心功能 使用原生JavaScript模拟Vue的核心功能需要理解响应式数据绑定、虚拟DOM和组件系统等概念。以下是关键实现方法: 响应式数据系统 通过Object…

vue实现聊天功能

vue实现聊天功能

Vue实现聊天功能的方法 使用WebSocket实现实时通信 安装WebSocket客户端库如socket.io-client,在Vue组件中建立连接。创建一个消息列表和数据输入框,通过WebSock…

react如何重启

react如何重启

重启 React 应用的方法 重新加载当前页面 使用 window.location.reload() 强制刷新页面,这会重新加载整个应用并重置所有状态。 window.location…

php登陆功能实现

php登陆功能实现

实现PHP登录功能 数据库准备 创建一个用户表存储登录信息,基本字段包括用户名、密码(需加密)等: CREATE TABLE users ( id INT AUTO_INCREMENT PR…

vue修改功能实现

vue修改功能实现

Vue 修改功能的实现方法 修改功能是 CRUD 操作中的重要部分,在 Vue 中可以通过多种方式实现。以下是几种常见的实现方案: 数据绑定与表单处理 使用 v-model 实现双向数据绑定,快速获…

php购物车功能的实现

php购物车功能的实现

实现购物车功能的基本方法 使用PHP实现购物车功能可以通过会话(Session)或数据库存储购物车数据。以下是两种常见方法的详细说明。 使用Session存储购物车数据 PHP的$_SESSION可…