用lnmp架构安装WordPress博客,实际操作!!

PHP

在安装PHP之前需要安装一些依赖包,执行下面的命令就可以了,如果安装过请忽略

yum install vim gcc gcc++ wget libxml2-devel wget -y

1.下载PHP

访问PHP的官方下载地址:https://php.net

找到自己想要安装的版本来进行下载,我这里就以我自己的需求来选个一个地址

wget http://cn2.php.net/get/php-5.6.34.tar.gz/from/this/mirror

执行上面的目录来下载,这里来解释一下,mirror 这个是什么东西,这个就是和.gz 等的一样的压缩包,很多人等下载完这个东西,看到没有.zip,.gz 等这些后缀名,以为下载失败,其实不是,所以请放心。

接下来让我们解压文件

tar zxvf mirror

解压完后得到php-5.6.34
其中php-5.6.34就是我们需要用到的压缩包,让我们进入目录进行安装

cd php-5.6.34

进入目录之后就会发现有需要的文件,这些就是PHP的源文件

然后我们编译PHP文件生成makefile 文件

这里需要普及一个小的知识点,那就是fastcgi

php本来的请求是,当一个请求出现,PHP会启动一个进程来完成请求,然后关闭,但是这很耗费系统的资源,不符合我们的要求,我们需要php-fpm,然后可以监听php请求 ,如果有请求出现,那么开始提供进程来执行,如果业务多的话会创建一个新的,如果没有多余的请求的时候,php-fpm会释放掉多余的资源,而fastcgi就是php-fpm使用的前提,编译安装的时候必须加上这个参数。所以编译的时候需要加上–enable-fpm 选项

./configure --prefix=/usr/local/php --enable-fpm

./configure 就是就是编译makefile文件的工具 --prefix 就是指定安装PHP到哪个目录

执行完成之后下面的命令

make && make install

我们执行完成./configure 只是把我们的配置写入makefile文件,还没有安装,make 命令就是安装,到此我们就安装完成PHP了。

修改环境变量

/usr/local/php/bin/php 是PHP文件执行的入口,如果我们要将PHP写如Linux环境变量,需要加入的目录为/usr/local/php/bin

Mysql

清理环境

### 如果之前有部署过清理删除⼀下MySQL数据
pkill mysqld
rm -rf /data/3306/*
mkdir -p /data/mysql/data_3306 /data/mysql/binlog_3306
chown -R mysql.mysql /data/*
### 把默认的my.cnf移⾛到tmp
mv /etc/my.cnf /tmp

安装包准备

版本8.0.185.7下载地址
https://dev.mysql.com/downloads/mysql/

安装依赖

yum install -y libaio-devel # 安装依赖

准备数据库管理⽤户

useradd -s /sbin/nologin mysql # 此⽤户为不可登录⽤户
chown -R mysql.mysql /data/*

创建数据和⽇志⽬录

 [root@s_docker ~]# mkdir -p /data/mysql/data_3306 #data_dir
 [root@s_docker ~]# mkdir -p /data/mysql/binlog_3306 #log_dir

解压软件并制作软连接

[root@s_docker ~]# tar -xf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@s_docker ~]# cd /usrl/local
[root@s_docker ~]# ln -s mysql-5.7.35-linux-glibc2.12-x86_64/ mysql57	

环境变量设置

[root@s_docker ~]# vim /etc/profile
#最底下添加环境变量
export PATH=/usr/local/php/bin:$PATH
export PATH=/usr/local/mysql57/bin:$PATH

[root@s_docker ~]# source /etc/profile

权限设置

root@s_docker ~]# chown -R mysql.mysql /data /usr/local/mysql57

mysql配置文件

centos自带mariadb的配置文件,要么修改要么删了自己写

[root@redis-master ~]# vim /etc/my.cnf 

[mysqld]
user=mysql
basedir=/usr/local/mysql57        # 安装包路径
datadir=/data/mysql/data_3306     # 数据存放路径
socket=/tmp/mysql.sock            # 如果提示sock出错的话就可能会重复或者是没有这个目录,去tmp目录下查看
server_id=1                       # 设置多台mysql要设置id号不能相同
port=3306
secure-file-priv=/tmp
log_bin=/data/mysql/binlog/binlog_3306
binlog_format=row
[mysql]
prompt=db01 [\\d]                 # db01代表数据库名称,【\\d】代表空格
                                    示例如下:
									[db01]select * from mysql.user
									[db01]   select * from mysql.user

初始化数据库

不同数据库初始化方法
-insecure 表示不安全的,就可以不需要密码登录mysql

# mysql8 or 57
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql57/ --datadir=/data/mysql/data_3306/

# mysql56
./mysql_install_db --user=mysql --basedir=/application/mysql --
datadir=/application/mysql/data

启动数据库

[root@s_docker ~]# cd /usr/local/mysql57/support-files/
[root@s_docker~]# cp mysql.server /etc/init.d/mysqld
[root@s_docker ~]# chkconfig --add mysqld
[root@s_docker ~]# systemctl start mysqld

设置mysql用户密码

[root@s_docker ~]# mysql

db01 [(none)]show databases;
  -------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+


db01 [(none)]select * from mysql.user\G

db01 [(none)]alter user root@localhost identified by '111111';
#更改   用户  root  的密码为  111111
db01 [(none)]create user root@'%' identified with mysql_native_password by '111111';
# 创建用户root在哪里都可以登录,密码也为61

db01 [(none)]select host,user from mysql.user;   --查看数据库user表的用户信息和主机信息

+-----------+---------------+
| host      | user          |
+-----------+---------------+
| %         | root          |
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | root          |
+-----------+---------------+
#查询

Nginx

安装依赖

安装nginx之前先安装一个扩展pcre,这个是正则匹配用到的扩展
yum -y install pcre-devel zlib-devel gcc gcc-c++ make openssl-devel
root@redis-master package]# tar -zxf nginx-1.20.1.tar.gz
root@redis-master nginx-1.20.1]# cd nginx-1.20.1
root@redis-master nginx-1.20.1]# ./configure --prefix=/usr/local/nginx
root@redis-master nginx-1.20.1]#  make  && make install

创建nginx用户

[root@redis-master ~]# useradd -s /sbin/nologin  nginx

启动nginx

/usr/local/nginx/sbin/nginx 

然后网页访问服务器ip能看到welcome nginx就是成功了

增加nginx对PHP的支持

假设我们设定PHP的目录为

/usr/local/www/

打开nginx的配置文件,更改目录和fastcgi_parem后面的

vim /usr/local/nginx/conf/nginx.conf 
 65         location ~ \.php$ {
 66             root           /home/www;
 67             fastcgi_pass   127.0.0.1:9000;
 68             fastcgi_index  index.php;
 69             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
 70             include        fastcgi_params;
 71         }

nginx文件详解


vim /etc/nginx/nginx.conf      	 --- 主配置文件
第一个部分: 配置文件主区域配置
user  www;               	 --- 定义worker进程管理的用户
worker_processes  2;        ---定义有几个worker进程  == CPU核数 / 核数的2倍
error_log  /var/log/nginx/error.log warn;   --- 定义错误日志路径信息
pid        /var/run/nginx.pid;              --- 定义pid文件路径信息
	
第二个部分: 配置文件事件区域
events {                    
    worker_connections  1024;   --- 一个worker进程可以同时接收1024访问请求
}
	
第三个部分: 配置http区域
http {
   include       /etc/nginx/mime.types;      --- 加载一个配置文件
   default_type  application/octet-stream;   --- 指定默认识别文件类型
   log_format  oldboy  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';
		          --- 定义日志的格式		
   access_log  /var/log/nginx/access.log  oldboy;
		          --- 指定日志路径          
   sendfile        on;   ???
   #tcp_nopush     on;   ???
   keepalive_timeout  65;   --- 超时时间
   #gzip  on;
   include /etc/nginx/conf.d/*.conf;        --- 加载一个配置文件
}
 
补充: nginx的进程
master process:  主进程		---管理服务是否能够正常运行   boss
worker process:  工作进程	---处理用户的访问请求         员工 

编写测试文件

[root@redis-master sbin]# mkdir /home/www
[root@redis-master sbin]# cd /home/www

[root@redis-master sbin]# vim index.php
<?php
echo "hello world";
?>

然后重启php和nginx

[root@redis-master sbin]# cd /usr/local/nginx/sbin/
[root@redis-master sbin]#  ./nginx -s reload

#需要去php目录下复制一下配置文件,要不然启动php会报错找不到这个文件
[root@redis-master ~]# cd /usr/local/php/
[root@redis-master etc]# cp php-fpm.conf.default php-fpm.conf
[root@redis-master sbin]# /usr/local/php/sbin/php-fpm

打开浏览器,输入:服务器IP:index.php
如果输出hello world 代表着成功。
至此,我们的lnmp环境已经搭建完毕

搭建WordPress博客

升级php版本

需要先升级一下php,要不然后面会提示php版本太低,至少需要5.8以上
卸载旧版本之前先要关闭php服务

[root@redis-master nginx]# systemctl stop php-fpm
[root@redis-master nginx]# yum remove php* -y
[root@redis-master nginx]# rpm -qa|grep php

  514  wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  515  wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  517  rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
  518  rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
  519  rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
  520  yum -y install php71w php71w-cli php71w-common
  521  yum install -y php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecmongodb

下载WordPress安装包

https://wordpress.org/download/#download-install
在这里插入图片描述

解压到目录下以后设置权限

访问服务器地址,会出现Access Denied,403Forbidden禁止访问,我们还需要修改服务器访问目录权限

mkdir /home/www
tar -zxf wordpress-5.8.tar.gz -C /home/www/
usermod -s /bin/bash nginx
chown -R nginx.nignx /home/www/
chmod -R 774 /home/www/

设置selinux

为了能完整使用wordpress读写博客、安装主题插件功能还需要修改SELinux安全上下文以拥有对目录文件的读写权限:

    setsebool -P httpd_read_user_content 1
    setsebool -P httpd_enable_homedirs 1
    chcon -R -t httpd_sys_rw_content_t /usr/share/nginx/html/blog-wp

可以一遍查看nginx日志一遍操作,容易看到哪里出错

[root@redis-master home]# tail -f /usr/local/nginx/logs/error.log 

编辑nginx和php配置文件

修改这三个地方
user nginx
还有目录

[root@redis-master www]# vim /usr/local/nginx/conf/nginx.conf 
  2 user  nginx;

 35     server {
 36         listen       80;               //监听端口
 37         server_name  192.168.100.10;   //服务器访问地址
 38 
 39         #charset koi8-r;
 40 
 41         #access_log  logs/host.access.log  main;
 42 
 43         location / {
 44             root   /home/www/wordpress;      //服务器根目录访问映射路径
 45             index  index.html index.htm index.php;
 46         }

 65         location ~ \.php$ {             //解析访问php文件时处理规则
 66             root           /home/www/wordpress;
 67             fastcgi_pass   127.0.0.1:9000;
 68             fastcgi_index  index.php;
 69             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
 70             include        fastcgi_params;
 71 
 72         }

找到user和group后面修改成nginx 用户
再把前面的分号删除,分号代表注释

[root@redis-master www]# vim /etc/php-fpm.d/www.conf

  8 user = nginx
  9 ; RPM: Keep a group allowed to write in log dir.
 10 group = nginx

找到open_basedir所在行,此参数规定php所能运行的目录,若不修改该值,访问nginx服务器将报Access Denied错误;将该参数值修改为服务器访问目录或者直接注释该行。

[root@redis-master www]# vim /etc/php.ini
 294 open_basedir =

然后重启nginx和php

[root@redis-master yum.repos.d]# systemctl restart php-fpm
[root@redis-master yum.repos.d]# systemctl enable php-fpm
[root@redis-master yum.repos.d]# /usr/local/nginx/sbin/nginx -s reload

设置WordPress数据库

输入之前创建的用户名和密码登录数据库,创建一个wordpress数据库,数据库名可以自定义:

[root@redis-master wordpress]# mysql -uroot -p111111
db01 [(none)] create database wordpress;
 

use wordpress切换至该数据库,创建连接该数据库的账号:
创建zheng用户 密码为123

db01 [(none)]use wordpress;
Database changed

db01 [wordpress]grant all on wordpress.* to zheng  identified by "123"; 

查询

db01 [wordpress]select host,user from mysql.user;
+-----------+---------------+
| host      | user          |
+-----------+---------------+
| %         | root          |
| %         | username      |
| %         | zheng         |
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | root          |
+-----------+---------------+
6 rows in set (0.00 sec)

修改数据库文件权限:

chown mysql:mysql /var/lib/mysql -R

登录WordPress

服务器 ip/index.php
选择好语言以后进行安装
在这里插入图片描述
第一个是创建的数据库名称
第二个是创建的用户
第三个是创建的用户密码
第四个写ip,这里写的是127.0.0.1
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值