目录
部分转自:https://blog.csdn.net/l1727377/article/details/132452022
一、WordPress简述
WordPress是一个开源的内容管理系统(CMS),用于创建和管理网站。它是使用PHP语言编写的,并使用MySQL数据库进行数据存储。具有大量的主题和插件,拥有庞大的社区支持,用户可以通过论坛、博客、教程等途径获取帮助和分享经验。
总之,WordPress是一个强大而灵活的网站建设工具,适用于各种规模和类型的网站建设项目。无论是个人用户还是企业机构,都可以通过WordPress实现他们的网站目标。
二、基础架构
本次项目主要用到LNMP(Linux+Nginx+Mysql+PHP)架构。
1.系统版本:Oracle Linux 7 2.MySQL版本:MySQL 5.7.40 3.nginx版本:1.9.9 4.PHP版本:
三、准备工作
1.配置yum源
(1)备份原有的yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
(2)使用wget命令下载
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
(3)使用wget命令下载
注意:如果没有wget命令,请使用下面的命令
yum install -y wget
(4)清除yum缓存
[root@myhost1 ~]# yum clean all
(5)刷新缓存
[root@myhost1 ~]# yum makecache
2.关闭防火墙和selinux
(1)关闭防火墙
[root@myhost1 ~]# systemctl stop firewalld
(2)开机不自启
[root@myhost1 ~]# systemctl disable firewalld [root@myhost1 ~]# vi /etc/sysconfig/selinux
修改为SELINUX=disabled之后保存退出。
四、编译安装Nginx
1.安装Nginx的依赖包
# yum -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel perl-devel perl-ExtUtils-Embed gd-devel
2.下载Nginx的安装包
# wget https://nginx.org/download/nginx-1.9.9.tar.gz
3.创建nginx运行用户
# useradd -s /sbin/nologin -M nginx
4.解压并配置nginx
[root@myhost1 ~]# tar zxvf nginx-1.9.9.tar.gz -C /usr/local/ [root@myhost1 ~]# cd /usr/local/nginx-1.9.9/ ./configure --prefix=/usr/local/nginx --with-http_ssl_module 如果报错: ./configure --prefix=/usr/local/nginx --with-openssl=/usr/bin/ --with-http_ssl_module
5.编译安装
[root@myhost1 nginx-1.9.9]# make && make install
6.测试nginx是否安装成功
(1)配置环境变量
vi ~/.bash_profile PATH=$PATH:$HOME/bin:/usr/local/nginx/sbin/
# source ~/.bash_profile # nginx -V
7.系统添加Nginx服务
(1) 创建 nginx.service 文件
# vi /lib/systemd/system/nginx.service
[root@myhost1 ~]# vi /lib/systemd/system/nginx.service [Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx /usr/local/nginx/conf/nginx.conf -s reload ExecStop=/usr/local/nginx/sbin/nginx /usr/local/nginx/conf/nginx.conf -s quit PrivateTmp=true [Install] WantedBy=multi-user.target
(2)以 systemctl 方式启动 Nginx
[root@myhost1 ~]# systemctl daemon-reload #重新加载系统服务 [root@myhost1 ~]# systemctl start nginx #启动nginx
(3)查看Nginx的服务
# netstat -ntlp | grep nginx(查看端口)
(4)查看Nginx的服务状态
# ps -ef | grep nginx
如图nginx服务已经启动。
(5)配置Nginx服务开机自启
[root@myhost1 ~]# systemctl enable nginx
nginx部署成功。
8.测试nginx
http://192.168.20.253
五、二进制安装Mysql
1.安装数据库前检查
(1)系统环境配置检查
--https://www.topunix.com/post-8941.html
(2)清理安装环境
yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y userdel -r mysql rm -rf /etc/my* rm -rf /var/lib/mysql
(3)检查mysql必要包libaio
rpm -qa |grep libaio yum install libaio -y
2.创建用户,组,创建目录
(1)已有的lvm挂载目录:
mkdir -p /mysql/app mkdir -p /mysql/data mkdir -p /mysql/log mkdir -p /mysql/backup mkdir -p /mysql/data/3306/data mkdir -p /mysql/log/3306
(2)创建组和用户
groupadd mysql useradd -r -g mysql -s /bin/false mysql
3.下载mysql安装包并解压
cd /mysql/app
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz tar zxvf mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz
4、做软连接
便于后面对mysql的版本一目了然。
[root@mysql51 app]# ln -s mysql-5.7.40-linux-glibc2.12-x86_64 mysql
5、修改权限
chown -R mysql:mysql /mysql
6、配置环境变量(root权限即可)
(1)配置环境变量
vi ~/.bash_profile PATH=$PATH:/mysql/app/mysql/bin:$HOME/bin
source ~/.bash_profile
(2)测试——版本查看
[root@mysql51 ~]# mysql --version mysql Ver 14.14 Distrib 5.7.40, for linux-glibc2.12 (x86_64) using EditLine wrapper
7、准备参数文件
(1)下载参数文件
cd /mysql/data/3306 wget https://download.topunix.com/MySQL/config-MySQL5.7/my.cnf.linux mv my.cnf.linux my.cnf
(2)修改参数
bind_address= 192.168.1.51 general_log_file=/mysql/log/3306/mysql51db-general.err slow_query_log_file=/mysql/log/3306/mysql51db-query.err log-error=/mysql/log/3306/mysql51-error.err
(3)修改权限
chown mysql:mysql my.cnf
(4)创建err文件,并改权限,否则无法启动mysql
touch /mysql/log/3306/mysql51db-error.err chown -R mysql:mysql /mysql/log/3306/mysql51db-error.err
8、初始化MYSQL并检查相关目录及文件
(1)根据my.cnf初始化数据库
mysqld --defaults-file=/mysql/data/3306/my.cnf --initialize --user=mysql --basedir=/mysql/app/mysql --datadir=/mysql/data/3306/data
(2)从err日志文件中查看初始化后的数据库密码
[root@mysql51 data]# cat /mysql/log/3306/mysql51db-error.err [Note] A temporary password is generated for root@localhost: 7Ja<%zc&+ofQ
9、启动测试
/mysql/app/mysql/bin/mysqld_safe --defaults-file=/mysql/data/3306/my.cnf --datadir=/mysql/data/3306/data --user=mysql
如果启动正常,3306端口开启,则说明配置正确。
10、设置密码# set the default password
(1)赋值随机密码至变量defaultmysqlpwd
defaultmysqlpwd=`grep 'A temporary password' /mysql/log/3306/mysql51db-error.err | awk -F "root@localhost: " '{ print $2}' |tail -n1`
(2)更改密码为rootroot
mysql -uroot -p"${defaultmysqlpwd}" --connect-expired-password <<EOF ALTER USER 'root'@'localhost' IDENTIFIED BY 'rootroot'; EOF
(3)链接mysql.sock到/tmp/mysql.sock
ln -s /mysql/data/3306/mysql.sock /tmp/mysql.sock
ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5
11、systemctl启动方式
(1)利用/mysql/app/mysql/support-files/mysql.server服务
cd /mysql/app/mysql/support-files/ cp mysql.server mysql.server.bak
(2)编辑mysql中的参数增加值-修改本机对应配置
vi /mysql/app/mysql/support-files/mysql.server
basedir=/mysql/app/mysql datadir=/mysql/data/3306/data mysqld_pid_file_path=/mysql/data/3306/mysql.pid if test -z "$basedir" then basedir=/mysql/app/mysql bindir=/mysql/app/mysql/bin if test -z "$datadir" then datadir=/mysql/data/3306/data fi sbindir=/mysql/app/mysql/bin libexecdir=/mysql/app/mysql/bin else bindir="$basedir/bin" if test -z "$datadir" then datadir="/mysql/app/3306/data" fi sbindir="$basedir/sbin" libexecdir="$basedir/libexec" fi
将语句: $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null & 更改为(指定my.cnf): $bindir/mysqld_safe --defaults-file=/mysql/data/3306/my.cnf --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
(3)拷贝启动脚本到/etc/init.d/目录下,并改名mysqld
注:如果数据库有多个实例,可以将mysql改为多个,比如mysql3306,mysql3307,没mysql3308等,配置多个自动启动实例。
[root@localhost mysql]# cp /mysql/app/mysql/support-files/mysql.server /etc/init.d/mysqld
(4)重新加载系统服务
# systemctl daemon-reload
(5)启动MySQL数据库
先删掉前面测试的mysql数据库
ps -ef|grep mysql kill -9 17242 18395
systemctl stop mysqld --停止mysqld systemctl start mysqld --启动mysqld
(6)设置开机自启
systemctl enable mysqld --这个不生效,使用下面的可以自动启动。 /sbin/chkconfig mysqld on
五、编译安装PHP
1. 安装依赖软件包
yum -y install apr* autoconf automake bison bzip2 bzip2* cloog-ppl cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gtk+-devel gd gettext gettext-devel glibc glibc-devel glib2 glib2-devel kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libxml* libXaw-devel libXmu-devel libtiff libtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* wget zlib zlib-devel yum -y install sqlite-devel yum -y install https://rpms.remirepo.net/enterprise/7/remi/x86_64/oniguruma5php-6.9.8-1.el7.remi.x86_64.rpm yum -y install https://rpms.remirepo.net/enterprise/7/remi/x86_64/oniguruma5php-devel-6.9.8-1.el7.remi.x86_64.rpm
2. 下载安装包
(1)下载
wget https://www.php.net/distributions/php-7.4.20.tar.bz2
(2)解压php压缩包
tar xvf php-7.4.20.tar.bz2
3.安装php
(1)配置安装php
cd /root/php-7.4.20/ ./configure \ --prefix=/usr/local/php7 \ --with-config-file-path=/usr/local/php7 \ --with-config-file-scan-dir=/usr/local/php7/php.d \ --enable-mysqlnd \ --with-mysqli=/mysql/app/mysql/bin/mysql_config \ --with-mysql-sock=/tmp/mysql.sock \ --with-pdo-mysql \ --enable-fpm \ --with-fpm-user=nginx \ --with-fpm-group=nginx \ --with-iconv \ --enable-xml \ --enable-shmop \ --enable-sysvsem \ --enable-inline-optimization \ --enable-mbregex \ --enable-mbstring \ --enable-ftp \ --with-openssl \ --enable-pcntl \ --enable-sockets \ --with-xmlrpc \ --enable-soap \ --without-pear \ --with-gettext \ --enable-session \ --with-curl \ --enable-opcache \ --without-pear \ --disable-phar \ --with-zlib \ --with-zlib-dir
4.编译安装
#-j 指定cpu个数
make -j 2 make test make install
5、完成后再安装pear
php 的编译时需要依赖pear package ,目前的问题错误”PEAR package PHP_Archive not installed: generated phar will require PHP’s phar extension be enabled.”,已经明显报出这个问题。
因此编译使用参数 –without-pear 将pear 屏蔽掉编译安装后,再进行安装;同时因为phar 属于pear的一个库 ,所以不将phar关闭掉,同时还会报这个错误,同时需要使用 –disable-phar 编译参数.
安装完成后再安装
wget http://pear.php.net/go-pear.phar /usr/local/php7/bin/php go-pear.phar
6.创建 php.ini 配置文件
cd /root/php-7.4.20 cp php.ini-production /usr/local/php7/etc/php.ini
vi /usr/local/php7/etc/php.ini
#1342行将注释打开 #php的Session存储目录
session.save_path = "/tmp"
7.设置php-fpm配置文件
(1)配置php-fpm文件
[root@localhost ~]# cd /usr/local/php7/etc [root@localhost etc]# cp php-fpm.conf.default php-fpm.conf [root@localhost etc]# vim php-fpm.conf #17行将注释取消并修改 pid = /var/run/php-fpm.pid # php-fpm连接文件
(2)配置www.conf
cd /usr/local/php7/etc/php-fpm.d/ cp www.conf.default www.conf vim www.conf user = nginx group = nginx listen = 127.0.0.1:9000
8.启动php-fpm
/usr/local/php7/sbin/php-fpm
9.配置php-fpm系统环境变量
添加到最后即可。
vi ~/.bash_profile export PHP_HOME=/usr/local/php7 export PATH=$PATH:$PHP_HOME/bin:$PHP_HOME/sbin
9.重载环境变量
# source ~/.bash_profile
10.配置php-fpm开机自启
# vi /lib/systemd/system/php-fpm.service
[Unit] Description=php-fpm After=network.target [Service] Type=forking ExecStart=/usr/local/php7/sbin/php-fpm ExecStop=/bin/pkill -9 php-fpm PrivateTmp=true [Install] WantedBy=multi-user.target
11.重载systemctl
systemctl daemon-reload
12.停止php-fpm并用systemctl启动,开机自启
# pkill php-fpm # systemctl start php-fpm.service # systemctl enable php-fpm.service
六、配置Nginx支持PhP
1.添加Nginx配置
(1)添加Nginx配置支持PHP
vi /usr/local/nginx/conf/nginx.conf
--在location /下添加 index.php
--去掉# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000段落下location ~ \.php$ {的注释 --在location~ \.php$ 将/scripts改为/usr/local/nginx/html
(2)重启nginx
systemctl restart nginx
2.添加PHP测试文件
cd /usr/local/nginx/html/ vi index.php <?php phpinfo(); ?>
3.刷新网站查看
如果没有出来,重启php-fpm(systemctl stop php-fpm/systemctl start php-fpm)
当出现以下界面是成功。
七.LNMP上线WordPress
1.下载并解压wordpress安装包
cd /root wget https://cn.wordpress.org/wordpress-6.2.2-zh_CN.tar.gz tar xzvf wordpress-6.2.2-zh_CN.tar.gz rm -rf /usr/local/nginx/html/* cp -r /root/wordpress/* /usr/local/nginx/html/ #将代码拷贝到网站发布目录中
2、nginx权限技术局创建
(1)配置nginx
chown -R nginx:nginx /usr/local/nginx/html
(2)重启nginx
systemctl restart nginx
(3)创建数据库
mysql -uroot -p 输入密码:rootroot create database wordpress;
3、部署wordpress
(1)wordpres开始安装
192.168.20.253
(2)创建wordpress数据库
mysql -uroot -p create database wordpress;
(3)授予权限
chown -R nginx:nginx /usr/local/nginx/html
(4)连接数据库-使用localhost,提示报错。
在数据库本地使用localhost就可以,但使用wordpress连接,就失败。
(5)使用IP地址连接数据库(ip地址或127.0.0.1)
mysql -uroot -prootroot create user 'root'@'%' identified by 'rootroot'; grant all on *.* to 'root'@'%'; flush privileges;
(3)提交正确界面
(4)填写界面
(5)安装wordpress
此步骤会创建wordpress表
(6)查看表数据
5、登录出现问题:
wordpress安装后,报:建立数据库连接时出错
经排查,是mysql的自动提交autocommit设置为0,而wordpress程序不自动提交,所以数据不生效,需要将my.cnf的autocommit设置为1即可。