
永久解决系统重启后Unix Socket权限问题
每次重启系统都需要手动执行 sudo chown test:test php7.0-fpm.sock 来调整Unix Socket权限? 这确实令人烦恼。本文提供几种方法,让系统重启后自动设置正确的权限,无需手动干预。
首先,我们需要明确 php7.0-fpm.sock 文件的创建者和运行该文件的用户。通常,该文件由PHP-FPM服务创建,其用户通常是 www-data 或其他类似用户。 修改文件所有权的原因通常是其他应用需要访问该Socket。 更好的解决方案是直接使用拥有适当权限的用户运行这些应用。
以下几种方法可以解决这个问题:
方法一:修改PHP-FPM配置文件
这是最推荐的方法。直接修改PHP-FPM的配置文件,让PHP-FPM服务以目标用户启动。
-
找到配置文件: PHP-FPM配置文件通常位于
/etc/php/7.0/fpm/pool.d/www.conf(版本号可能不同,请根据实际情况调整)。 -
修改
user和group参数: 找到user和group参数,将它们的值修改为test:user = test group = test
-
重启PHP-FPM服务: 应用更改,重启PHP-FPM服务:
魔法映像企业网站管理系统下载技术上面应用了三层结构,AJAX框架,URL重写等基础的开发。并用了动软的代码生成器及数据访问类,加进了一些自己用到的小功能,算是整理了一些自己的操作类。系统设计上面说不出用什么模式,大体设计是后台分两级分类,设置好一级之后,再设置二级并选择栏目类型,如内容,列表,上传文件,新窗口等。这样就可以生成无限多个二级分类,也就是网站栏目。对于扩展性来说,如果有新的需求可以直接加一个栏目类型并新加功能操作
sudo systemctl restart php7.0-fpm # 或使用 service php7.0-fpm restart
方法二:使用系统服务启动脚本
如果无法修改PHP-FPM配置文件,可以使用系统服务启动脚本。 这需要谨慎操作,错误配置可能导致系统不稳定。
-
创建启动脚本: 创建一个脚本文件,例如
/etc/systemd/system/set-php-fpm-socket-permissions.service(或其他合适的路径和文件名),内容如下:[Unit] Description=Set permissions for php7.0-fpm.sock After=php7.0-fpm.service [Service] Type=oneshot ExecStart=/bin/chown test:test /path/to/php7.0-fpm.sock # 将 /path/to/ 替换为实际路径 RemainAfterExit=yes [Install] WantedBy=multi-user.target
-
启用并启动服务:
sudo systemctl enable set-php-fpm-socket-permissions.service sudo systemctl start set-php-fpm-socket-permissions.service
方法三:使用rc.local (不推荐)
/etc/rc.local 方法已过时,不推荐使用,因为它在许多现代Linux发行版中已被弃用。
选择最适合你系统和环境的方法。 方法一(修改PHP-FPM配置文件)是最简洁、最安全的选择。 方法二(使用systemd服务)更适合无法修改PHP-FPM配置文件的情况,但需要对systemd有一定了解。 切记替换 /path/to/php7.0-fpm.sock 为 php7.0-fpm.sock 文件的实际路径。 重启系统后,验证权限是否已正确设置。









