编程技术记录

世界你好!

参考连接
1、https://www.linuxidc.com/Linux/2015-01/112587.htm
2、https://www.centos.bz/2018/07/%E4%B8%80%E6%AC%A1ubuntunginx%E6%90%AD%E5%BB%BAwordpress%E7%9A%84%E7%BB%8F%E5%8E%86/
3、https://www.cnblogs.com/ldj3/p/9298734.html
4、https://wordpress.org/support/article/how-to-install-wordpress/

最终环境

  • ubuntu 18.04.1
  • nginx 1.14.0 (Ubuntu)
  • mysql server 5.7.27-0ubuntu0.18.04.1 (Ubuntu)
  • php7.3 和 php7.3-fpm 和php7.3-mysql
  • wordpress 5.2.3(安装时为最新版本)

安装nginx

sudo apt-get install nginx

可以用浏览器打开 http://127.0.0.1 来测试nginx是否安装成功

安装mysql

安装server

sudo apt-get install mysql-server

安全配置

sudo mysql_secure_installation

按照提示操作,配置密码、测试库、匿名用户、远程访问等

修改mysql数据库路径(数据迁移,可选)

  • 1、查看当前数据库路径
#root用户登陆
sudo mysql -u root -p

#查看路径
> show variables like '%dir%';

#退出
> exit;

输出类似结果

+-----------------------------------------+----------------------------+
| Variable_name                           | Value                      |
+-----------------------------------------+----------------------------+
| basedir                                 | /usr/                      |
| binlog_direct_non_transactional_updates | OFF                        |
| character_sets_dir                      | /usr/share/mysql/charsets/ |
| datadir                                 | /var/lib/mysql/ |
......
+-----------------------------------------+----------------------------+

其中 datadir是需要修改的部分

  • 2、停止mysql服务
sudo /etc/init.d/mysql stop
或者
sudo systemctl stop mysql
  • 3、移动数据库到新目录

使用mv命令好处是不会修改原数据库文件的权限,以及用户和用户组归属:

sudo mv /var/lib/mysql  新目录/
  • 4、修改mysql配置文件

  • 4-1 修改 my.cnf文件

mysql数据库会按顺序优先级从/etc/my.cnf、/etc/mysql/my.cnf、/usr/etc/my.cnf、~/.my.cnf四个位置找my.cnf配置文件,一旦找到就不再继续往下找。

我的文件路径是/etc/mysql/mysql.conf.d/mysqld.cnf
用sudo vim打开

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

修改datadir的值

[mysqld]
# * Basic Settings
......
basedir         = /usr
#修改datadir的值
datadir         = 新目录/mysql
......
  • 4-2 修改 usr.bin.mysqld文件

Ubuntu使用了apparmor安全模块,就是类似于沙盒运行的一种机制,它可以限制软件在运行时的一些行为,比如对哪些目录和文件可以读写加锁等等。
/etc/apparmor.d/usr.sbin.mysqld,用sudo vim打开

sudo vim /etc/apparmor.d/usr.sbin.mysqld

找到其中的数据库路径(参考上面的查看当前数据库路径)

/var/lib/mysql/ r,
/var/lib/mysql/** rwk,

修改为:

  新目录/mysql/  r,
  新目录/mysql/** rwk,
  • 4-3 修改 abstractions/mysql文件

由于usr.bin.mysqld文件中引用了abstractions/mysql文件,也就是会将abstractions/mysql文件中的权限声明导入进来。

sudo vim /etc/apparmor.d/abstractions/mysql

新数据库文件路径中的socket文件权限添加进去,同时可以删除或者注释掉全路径中申请的权限

   # /var/lib/mysql{,d}/mysql{,d}.sock rw,
   #修改为新目录
   /新目录/mysql{,d}/mysql{,d}.sock rw,
   /{var/,}run/mysql{,d}/mysql{,d}.sock rw,
   /usr/share/{mysql,mysql-community-server,mariadb}/charsets/ r,
   /usr/share/{mysql,mysql-community-server,mariadb}/charsets/*.xml r,
  • 4-4 重启服务
#重新载入apparmor配置文件
sudo /etc/init.d/apparmor restart
#重启mysql
sudo /etc/init.d/mysql start

安装php和php-fpm和php-mysql

添加php源

sudo apt-add-repository ppa:ondrej/php
sudo apt-get update

安装

#安装php7.3
sudo apt-get install php7.3
#安装php-fpm
sudo apt-get install php-fpm
#安装php-mysql
sudo apt-get install php-mysql

安装wordpress

创建一个空文件夹给wordpress,然后下载解压wordpress压缩包

#下载最新版本
wget https://wordpress.org/latest.tar.gz

#解压缩
tar -xzvf latest.tar.gz

配置web服务

进入 /etc/nginx/sites-available ,创建一个nginx虚拟主机服务给wordpress,

sudo vim /etc/nginx/sites-available/wordpress.conf

内容如下

 server {
    #监听端口(ipv4和ipv6)
    listen 8000;
    listen [::]:8000;

    #wordpress的主机域名(也可以填写ip地址),多个用空格分开
    server_name  hellowrold.com   www.hellowrold.com;

    #wordpress根目录(就是wordpress压缩包解压后存放目录)
    root /xxxxx/wordpress;
    #
    index  index.php index.html index.htm;

    client_max_body_size 5M;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
         include snippets/fastcgi-php.conf;

         #unix socket 路径参见 /etc/php/7.3/fpm/pool.d/www.conf
         fastcgi_pass unix:/run/php/php7.3-fpm.sock;

         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
    }
}

开启wordpress的web服务

#创建软连接
sudo ln -s /etc/nginx/sites-available/wordpress.conf  /etc/nginx/sites-enabled/

#重新加载nginx
sudo systemctl reload nginx

给wordpress创建数据库

#以root用户进入mysql环境
sudo mysql -u root -p

#创建数据库 需要记录下数据库名称
> CREATE DATABASE wordpressDbName;
Query OK, 1 row affected (0.00 sec)

# 创建用户 需要记录下用户名和密码
> GRANT ALL PRIVILEGES ON wordpressDbName.* TO "wordpressUserName"@"localhost" (输入到这,按回车键)
-> IDENTIFIED BY "密码";
Query OK, 0 rows affected (0.00 sec)

#提交
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec) 

#退出
mysql> EXIT
Bye

初始化wordpress

进入 http://你分配的nginx虚拟主机/wp-admin/install.php
本文所示案例为http://hellowrold.com/wp-admin/install.php

安装提示操作完成初始化,这里会用的给wordpress创建数据库里面的信息

如果遇到

抱歉,我不能写入wp-config.php文件。
您可以手工创建wp-config.php文件,并将以下文字粘贴于其中。

可以在wordpress的根目录(就是wordpress压缩包解压后存放目录),创建wp-config.php文件,内容见提示

© Beli. All Rights Reserved.