lnmp+ubuntu2004LTS 部署wordpress全记录
L(Linux)N(nginx)1M(mysql/mariaDB)P(php)
- 更新软件包
- apt-get update
- 安装nginx
- apt-get install nginx
- 安装php
- apt-get install php-fpm php-mysql
- 在笔者的操作环境下会自动安装php-common php-fpm php7.4-cli php7.4-common php7.4-fpm
php7.4-json php7.4-opcache php7.4-readline - 以上两步安装成功后直接访问服务器的域名/ip应该有Welcome to nginx的页面
- 安装mysql
- apt-get install mysql-server
- 请注意默认安装的mysql版本为8.0,其语法与5.x相比有很大变化。这一点会在后续的教程提到
- 调整nginx本身配置及其php模块之间通讯(通过php-fpm)
- 使用文本编辑器打开 /etc/nginx/sites-available/default 这一配置文件
- 参考第43行,在第44行合适位置插入index.php
- 这个操作会使网站被访问时,nginx在41行的root路径下自动寻找index.php
- 去掉第57~60,63行的注释号(#)
- 此操作启用了nginx与php之间通讯。
- 并请注意安装的php版本(用php -v在shell中查看),并将60行的php7.4-fpm.sock改为对应的版本,如php8.0-fpm.sock。
- 在Mysql中为wordpress创建数据库与用户
- shell中输入 mysql -u root 登入mysql
- CREATE DATABASE 数据库名;
- CREATE USER ‘用户名’@’%’ IDENTIFIED BY ‘密码’;
- GRANT ALL PRIVILEGES ON 数据库名.* TO ‘用户名’@’%’;
- exit;
- 下载安装wordpress
- wget https://cn.wordpress.org/wordpress-5.8-zh_CN.tar.gz
- 这个指令会在/home下下载wordpress的安装包
- tar -xzvf wordpress-5.8-zh_CN.tar.gz
- -x 解压(而非压缩)
- -z 使用gzip
- -v 列出解压过程
- -f -f后接要解压文件的位置
- mv wordpress /var/www/html
- 将/home下的wordpress移动到/var/www/html下
- 这里个人习惯是将网站解压到独立的文件夹中而非直接混乱地解压到/var/www/html下
- 将/var/www/html下的index.php复制到/var/www/html下,并用编辑器打开复制后的index.php,作如下更改
- - require __DIR__ . ‘wordpress/wp-blog-header.php’;(删去最后一行)
- + require( dirname( __FILE__ ) . ‘/wordpress/wp-blog-header.php’ );(添加这一行)
- chown -R www-data:www-data /var/www/html
- 将/var/www/html的所有权移交给nginx执行用用户
- 现在,直接访问服务器的域名/ip,按照要求填入相关信息即可!
笔者在这个服务器上用了一个名为wp-player的插件(作者webjyh),支持在线播放音乐,但因配置问题常常不能使用。刚才检查了一下站点健康问题,提示一些必要的php相关插件(例如wp-player要求的php-curl而非curl)缺失,安装后立刻解决。
下一步会解决一下固定链接问题,尽量更新为/年/月/标题的形式
php-mbstring: A module for managing non-ASCII strings and convert strings to different encodings
php-zip: This extension supports uploading .zip files to phpMyAdmin
php-gd: Enables support for the GD Graphics Library
php-json: Provides PHP with support for JSON serialization
php-curl: Allows PHP to interact with different kinds of servers using different protocols
- 有时也被称为LEMP,因Nginx首字母N读作/en/ ↩︎