温馨提示×

centos lnmp如何进行权限设置

小樊
57
2025-07-08 20:15:04
栏目: 智能运维

在CentOS系统中配置LNMP(Linux, Nginx, MySQL/MariaDB, PHP)环境时,权限设置是一个重要的安全环节。以下是一些基本的权限设置步骤:

1. 用户和组设置

  • Nginx: 通常使用nginx用户和组来运行Nginx进程。
    sudo useradd -r -s /sbin/nologin nginx
    
  • MySQL/MariaDB: 使用mysql用户和组来运行数据库服务。
    sudo useradd -r -s /sbin/nologin mysql
    

2. 目录权限设置

  • Nginx: 确保Nginx用户对网站目录有读取权限。
    sudo chown -R nginx:nginx /var/www/html
    sudo chmod -R 755 /var/www/html
    
  • MySQL/MariaDB: 数据库文件通常存储在/var/lib/mysql目录下。
    sudo chown -R mysql:mysql /var/lib/mysql
    sudo chmod -R 750 /var/lib/mysql
    

3. SELinux设置

CentOS默认启用SELinux,需要进行一些配置以确保LNMP正常运行。

  • 临时关闭SELinux(仅用于测试,生产环境不推荐):
    sudo setenforce 0
    
  • 永久关闭SELinux(修改/etc/selinux/config文件):
    SELINUX=disabled
    
  • 调整SELinux策略(允许Nginx访问特定目录):
    sudo setsebool -P httpd_can_network_connect_db 1
    

4. 防火墙设置

确保防火墙允许HTTP和HTTPS流量。

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

5. Nginx配置

编辑Nginx配置文件(通常位于/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf),确保以下几点:

  • 用户设置:在nginx块中设置用户。
    user nginx;
    
  • 文件权限:确保Nginx有权限读取网站文件。
    location / {
        root /var/www/html;
        index index.html index.htm;
    }
    

6. MySQL/MariaDB配置

编辑MySQL/MariaDB配置文件(通常位于/etc/my.cnf/etc/mysql/my.cnf),确保以下几点:

  • 绑定地址:允许远程连接(如果需要)。
    bind-address = 0.0.0.0
    
  • 用户权限:创建数据库用户并分配权限。
    CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
    FLUSH PRIVILEGES;
    

7. 定期检查和更新

定期检查系统日志和应用程序日志,确保没有异常访问或错误。同时,保持系统和软件包的最新状态,以修复安全漏洞。

通过以上步骤,你可以设置一个基本的LNMP环境权限配置,确保系统的安全性和稳定性。

0