Quanrk N初识镜像实际已经安装了Nginx,所以我们采用Nginx+MySQL+PHP的方式。

安装MySQL以管理站点数据

sudo apt-get install mysql-server

系统将要求您输入root(管理)密码,以便在MySQL系统中使用。请记住此处输入的密码。

安装PHP进行处理
WordPress新版(当前为5.6)已经推荐采用php7.4,但是ubuntu16.04默认源中没有。我们先添加php7.4的源:

sudo apt -y install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

源里面已经包含php8.0版本,但是当前wordpress插件支持不好,我们安装php7.4版本

sudo apt-get install php7.4-fpm php7.4-mysql

配置PHP处理器
我们现在已经安装了PHP组件,但是我们需要进行轻微的配置更改以使我们的设置更安全。

php-fpm使用root权限打开主配置文件:

sudo vim /etc/php/7.4/fpm/php.ini


在文件中寻找的是设置的参数cgi.fix_pathinfo,将前面的注释; 去掉,然后将默认设置“1”修改为”0″。

cgi.fix_pathinfo=0

修改这里是因为这是一个非常不安全的设置,因为它告诉PHP尝试执行它找不到所请求的PHP文件时可以找到的最接近的文件。这基本上允许用户执行不应该被允许执行的脚本的方式来创建PHP请求。

重启PHP处理

sudo systemctl restart php7.4-fpm


配置Nginx以使用PHP处理器
执行以下命令

sudo vim /etc/nginx/sites-available/default

首先,我们需要添加index.php作为index指令的第一个值,以便index.php在请求目录时可用。
我们可以修改server_name指令以指向我们服务器的域名或公共IP地址。
对于实际的PHP处理,我们只需要删除PHP部分前面的注释井号(#)来取消注释,以便启用处理PHP请求的文件段。
再将.htaccess部分取消注释
默认配置最终更改成如下:

server {

listen 80 default_server;
listen [::]:80 default_server;

root /var/www/html;

#这一行中添加了index.php
index index.php index.html index.htm index.nginx-debian.html;

#此处修改你的域名,如果没有则不需要修改源文件
server_name server_domain_or_IP;

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

#以下所有内容需要添加
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}

location ~ /\.ht {
deny all;
}
#以上所有内容需要添加
}

完成上述更改后,您可以保存并关闭该文件。

检查ng的语法错误

sudo nginx -t

如果没有问题重启Nginx

sudo systemctl reload nginx


创建PHP文件以测试配置(可跳过此步)
测试Nginx是否可以正确地将.php文件传递给我们的PHP处理器。

我们可以通过在文档根目录中创建测试PHP文件来完成此操作。info.php在文本编辑器中打开文档根目录中调用的新文件:

sudo vim /var/www/html/info.php

以下为内容

<?php
phpinfo();

完成后,保存并关闭文件。

现在,您可以通过访问 服务器ip/info.php, 查看Php是否正常运行和php相关信息

现在配置WordPress相关

为WordPress创建MySQL数据库和用户

WordPress使用MySQL来管理和存储站点和用户信息。我们已经安装了MySQL,但是我们需要为WordPress创建一个数据库和用户。

MySQL登录:

mysql -u root -p

输入安装mysql时候的密码

首先,我们可以创建一个WordPress可以控制的独立数据库。你可以随意调用它,但我们将wordpress在本指南中使用它来保持简单。您可以通过键入以下命令为WordPress创建数据库:

#其中wordpress只是为数据库名称,可以随意修改
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

我们将创建此帐户,设置密码并授予对我们创建的数据库的访问权限。我们可以通过输入以下命令来完成此操作。

#其中wordpress为数据库名称,wordpressuser为创建的用户的名称,password为创建的用户的密码
GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

刷新权限,以便MySQL的当前实例知道我们最近做出的更改:

FLUSH PRIVILEGES;

退出

EXIT;

调整Nginx的配置以正确处理WordPress

使用以下sudo权限打开默认服务器块文件:

sudo vim /etc/nginx/sites-available/default

在主server块中,我们需要添加几个location块。

server {
    . . .
    #以下为需要添加的location
    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }
    . . .
}

调整try_files列表,以便不是将404错误作为默认选项返回,而是index.php使用请求参数将控制传递给文件。

server {
    . . .
    location / {
        #try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php$is_args$args;
    }
    . . .
}

完成后,保存并关闭文件。

检查Nginx语法

sudo nginx -t

重启

sudo systemctl reload nginx

安装其他PHP扩展

WordPress及其许多插件需要一些额外的PHP扩展。

我们可以通过输入以下命令下载并安装一些最流行的PHP扩展以与WordPress一起使用:

sudo apt-get update
sudo apt-get install php7.4-curl php7.4-gd php7.4-mbstring php7.4-xml php7.4-xmlrpc php7.4-imagick php7.4-zip

重启PHP

sudo systemctl restart php7.4-fpm

下载WordPress

通过你自己的方式下载并解压wordpress的文件,并复制根目录下wp-config-sample.php为 wp-config.php

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

配置WordPress目录

我们需要完成的一件大事是建立合理的文件权限和所有权。我们需要能够以普通用户的身份写入这些文件,并且我们需要Web服务器也能够访问和调整某些文件和目录才能正常运行。

我们首先将文档根目录中的所有文件的所有权分配给用户名。我们将root在本指南中使用我们的用户名,但您应该更改此选项以匹配您的sudo用户调用。我们会将群组所有权分配给www-data群组:

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

配置setgit位

sudo find /var/www/html -type d -exec chmod g+s {} \;

为wp-content目录提供组写访问权限,以便Web界面可以进行主题和插件更改:

sudo chmod g+w /var/www/html/wp-content

为Web服务器提供对这两个目录中所有内容的写访问权限:

sudo chmod -R g+w /var/www/html/wp-content/themes
sudo chmod -R g+w /var/www/html/wp-content/plugins

这只是一个合理的权限设置开始,一些插件可能需要单独配置。

设置WordPress配置文件

现在,我们需要对主WordPress配置文件进行一些更改。

vim /var/www/html/wp-config.php

数据库连接设置下方或文件中的任何其他位置添加此设置:

. . .
/** MySQL database name */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'wordpressuser');

/** MySQL database password */
define('DB_PASSWORD', 'password');

. . .

define('FS_METHOD', 'direct');

完成后保存并关闭文件。

浏览器中访问你的服务器地址完成配置。

到此处wordpress部署成功。