nginx,php,mysql的安装和配置及其wordpress目录权限设置

我用的是ubuntu 24.04 , 主机用的是dmit的,网站wordpress 安装需要这些配置。

用apt管理包安装最方便了,首先更新系统包

sudo apt update
sudo apt upgrade

这两个命令的具体作用请参考 此文

然后安装mysql

sudo apt install mysql-server

安装后启动并启用 MySQL 服务:

sudo systemctl start mysql
sudo systemctl enable mysql

运行安全脚本

sudo mysql_secure_installation

这个是设置mysql 的root账号用的,注意不要开远程连接不安全。虽然开启远程连接,很方便,但是还是最好不要开启,非常不安全,这里这里需要把MySQL的验证改为密码形式,后面会详细介绍。

安装php

sudo apt install php php-cli php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip

验证安装是否成功

# 检查 PHP 版本
php -v

# 检查 MySQL 版本
mysql --version

,这里是输出PHP的版本和MySQL的版本,我的PHP版本是8.3 MySQL版本是8。

下一步就是安装nginx

sudo apt install nginx

启动nginx

sudo systemctl start nginx

设置开机启动

sudo systemctl enable nginx

检查状态

sudo systemctl status nginx

配置nginx支持php

server {
    listen 80;
    server_name _;
    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    # 配置 PHP 处理
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        
        # 根据 PHP 版本调整
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;  # Ubuntu 20.04/22.04
        
        # 对于旧版本可能是:
        # fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # 禁止访问 .htaccess 文件
    location ~ /\.ht {
        deny all;
    }
}

把网站拷贝到/var/www/html目录。

下一步就是wordpress站点的访问权限设置了。

对于nginx用户来说

设置wordpress目录所有者为nginx,因为用户访问站点,实际上是访问的是nginx服务,nginx对wordpress目录要有权限。

第二又因为是php的,所以php也要对站点有权限。让 Web 服务器(Nginx/Apache)拥有文件的完全控制权,这样 WordPress 才能自动更新、安装插件等。

sudo chown -R www-data:www-data /var/www/html

设置目录和文件的权限。

对于目录

所有者(www-data):读 + 写 + 执行(7

用户组:读 + 执行(5

其他用户:读 + 执行(5

对于文件

所有者(www-data):读 + 写 (6

用户组:读 (4

其他用户:读 (4

sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \;

uploads目录设置权限

对于uploads目录

所有者(www-data):读 + 写 + 执行(7

用户组:读 + 执行(5

其他用户:读 + 执行(5

sudo chmod 755 /var/www/html/wp-content/uploads

这样wordpress就可以正常更新,安装插件,安装模板了。