参考连接
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
文件,内容见提示