在 Ubuntu 20.04 环境下,安装 Wordpress。几个软件的安装顺序似乎是无所谓的。

准备

sudo apt update 更新软件源

Nginx 安装和使用

本次采用 Nginx 平台,占用少,且配置起来比较方便。

sudo apt install nginx

配置文件目录 /etc/nginx/,默认配置文件,/etc/nginx/nginx.conf ,使用nginx -t可以看到。默认由 /etc/nginx/sites-available/default 控制,目录在 /var/www/html。

nginx -s quit #关闭服务,Web 服务器会关闭,强制关闭是 nginx -s stop
nginx -s reload #重载配置
nginx -t #测试配置文件运行 类似于 whatif

MariaDB 或者 MySql安装

sudo apt install mariadb-server 或者sudo apt install mysql-server

控制数据库。安装后,为安全,运行虑,运行sudo mysql_secure_installation,除了输入密码后的第一个问题,全部选 Y。如果非 root 帐号登录,应该会让你新建密码,这时可选 Y。

这个问题可以选 N

开启,停止命令。只有程序运行中才能使用 mysql 进入配置。

sudo systemctl stop mariadb.service #停止
sudo systemctl start mariadb.service #开始
sudo systemctl enable mariadb.service #开机自启动

Php 支持

Wordpress 网页文件是以 php 后缀,nginx 默认是不支持的。可安装相关组件。

sudo apt install php-fpm php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-ldap php-zip php-curl

PHP-FPM 的配置文件在 /etc/php/$version$/fpm/php.ini;重启的命令是:systemctl restart php$version$-fpm.service

查看版本的命令是php -v

数据库创建

  • 登录,如果不是 Root 用户登录,用sudo mysql -u root -p 登录,如果没有,直接用 mysql 进入管理。

  • 新建数据库:create database database_name; 大小写不敏感,命令以 ;结束吗,数据库名称任意。一些其他的命令:

    show database; # 列出数据库
    drop database 'database_name' # 删除数据库
    use 'database_name' # 使用某数据库
    
  • 新建用户:create user 'user_name'@'localhost' identified by 'passwords';用户名密码随意,但要记住。localhost 表示该用户只能本机登录,不能远程登录 。%和它相反。一些其他的命令:

    select user from mysql.user; #列出所有用户
    select user(); #目前用户
    drop user 用户名@'%'; 删除远程用户及其权限
    drop user 用户名@'localhost'; #删除本地用户及其权限
    
  • 给用户数据库权限。grant all on database_name.* to 'user_name'@'localhost' identified by 'password' with grant option;

  • 刷新:flush privileges

完成后即可退出。

下载复制 Wordpress 文件到网页目录

这一步是将 Wordpress 文件下载到网页目录里面;网速不好可以本地下载后上传到服务器网页目录,网速尚可则用

wget https://wordpress.org/latest.tar.gz # 下载
tar -zxvf latest.tar.gz # 解压,解压出文件名为 wordpress 
sudo mv wordpress /var/www/html/ # 移动
sudo chown -R www-data: /var/www/html/ # 给用户组 www-data 权限读写文件,www-data 是 nginx 和 mysql 等程序的用户组
sudo chmod -R 755 /var/www/html/ # 给文件夹读写权限

接下来配置 Wordpress 使用前述配置的数据库,wordpress 的配置文件是文件夹中的 wp-config.php;里面有一个样本配置文件 wp-config-sample.php 可供参考。

sudo mv /var/www/html/wp-config-sample.php /var/www/html/wp-config.php

修改该文件中的数据库配置为前述建立的名称,用户,密码即可。

配置 Nginx

Nginx 的配置文件在 /etc/nginx/sites-available/*, 如果主机只托管一个空间,可以直接改 default 文件,如果要控制多个空间,那么单独配置每个空间会比较好。方法是

sudo vim /etc/nginx/sites-available/site_name #新建一个配置文件
sudo ln -s /etc/nginx/sites-available/site_name /etc/nginx/sites-enabled/ # 在 sites-enbale 处创建链接
nginx -s reload #重新读取配置

配置文件里面除了常用的端口,域名,添加:

server {
	root /var/www/html/
	index  index.php index.html index.htm; # 这里面的 index.php 一定要加上
	location / {
        try_files $uri $uri/ /index.php?$args;        
    } # 这条也要改成 php
    
    location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.?-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    } # 注意 php 的版本,说实话我并不知道这些是干啥的,似乎是插件? 
}

尾巴

nginx -s reload
restart php$version$-fpm.service

清理浏览器缓存后,访问 ip 地址或者域名即可。

我对 Mysql 已经 Nginx 配置文件并没有那么深入的了解,一些命令行工具我各类参数我也是照抄的。有些步骤似乎可以删掉,一些配置似乎显得多余。我只能说,按照以上的步骤,我成功地建立了一个 Wordpress 站点,后续的探索,等以后再说。

参考资料

  1. https://websiteforstudents.com/install-wordpress-on-ubuntu-18-04-lts-bata-with-nginx-mariadb-and-php-fpm/
  2. https://www.mysqltutorial.org/mysql-show-users/