建议自己看书!!!!!!!!!!!
(建议先通读文章,再开始做)
任务叙述:
使用LNMP架构部署wordpress系统。报告中需详细描述部署过程(其他操作者可以根据你的报告完成部署):包含操作的步骤(每一步的目的)、具体的命令(命令的作用)、截图。其中mysql可以使用源代码编译安装或者使用yum/apt/dnf等包管理工具安装。数据库要求,wordpress使用的数据库名称为wd_学号(提交作业学生的学号),数据库的用户名为学生姓名的拼音,密码自由选择。wordpress部署成功后在系统中创建一篇文章,文章的标题中需要包含你的姓名和学号。
理论阶段:
LNMP动态网站部署架构是由:Linux+Nginx+MySQL+PHP组成的动态网站系统,具有免费、高效、扩展性强且资源消耗低等优良特性。
步骤归纳汇总:
第1步:下载及解压源码包文件。为了方便在网络中传输,源码包文件通常会在归档后使用gzip或bzip2等格式进行压缩,因此一般会具有.tar.gz 或.tar.bz2的后缀。要想使用源码包安装服务程序,必须先把里面的内容解压出来,然后再切换到源码包文件的目录中:
[root@linuxprobe-]# tar xzvf FileName.tar.gz
[root@linuxprobe-]# cd FileDirectory
第2步:编译源码包代码。在正式使用源码包安装服务程序之前,还需要使用编译脚本针对当前系统进行一系列的评估工作,包括对源码包文件、软件之间及函数库之间的依赖关系、编译器、汇编器及链接器进行检查。我们还可以根据需要来追加﹣-prefix 参数,以指定稍后源码包程序的安装路径,从而对服务程序的安装过程更加可控。当编译工作结束后,如果系统环境符合安装要求,一般会自动在当前目录下生成一个Makefile 安装文件。
[root@linuxprobe-]#./configure--prefix=/usr/local/program
第3步:生成二进制安装程序。刚刚生成的Makefile文件中会保存与系统环境、软件依赖关系和安装规则等相关的内容,接下来便可以使用make 命令来根据 Makefile文件内容提供的合适规则编译生成出真正可供用户安装服务程序的二进制可执行文件了。
[root@linuxprobe-]#make
第4步:运行二进制的服务程序安装包。由于不需要再检查系统环境,也不需要再编译代码,因此运行二进制的服务程序安装包应该是速度最快的步骤。如果在源码包编译阶段使用了﹣-prefi参数,那么此时服务程序就会被安装到那个目录;如果没有自行使用参数定义目录的话,一般会被默认安装到/usr/local/bin目录中。
[root@linuxprobe-]# make install
第5步:清理源码包临时文件。由于在安装服务程序的过程中进行了代码编译的工作,因此在安装后目录中会遗留下很多临时垃圾文件,本着尽量不要浪费磁盘存储空间的原则,可以使用make clean 命令对临时文件进行彻底的清理。
[root@linuxprobe~]# make clean
一、LNMP动态网站部署架构:(从这里开始)
安装相关包:在使用源码包安装服务程序之前,首先要让安装主机具备编译程序源码的环境。这需要具备C语言、C++语言、Perl语言的编译器,以及各种常见的编译支持函数库程序。因此请先配置妥当软件仓库,然后把下面列出的这些软件包都统统安装上:(下面是root用户,登录时就是root,不要用窗口切换成root)
[root@localhost ~]# dnf -y install apr* autoconf automake numactl bison bzip2-devel cpp curl-devel fontconfig-devel freetype-devel gcc gcc-c++ gd-devel gettext-devel kernel-headers keyutils-libs-devel krb5-devel libcom_err-devel libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool libtool-ltdl libxml2-devel libXpm* libxml2 libtiff* make openssl-devel patch pcre-devel perl php-common php-gd telnet zlib-devel libtirpc-devel gtk* cmake ncurses-devel libzip-devel libxslt-devel gdbm-devel readline-devel gmp-devel
下图是错误的,见参考(最下面)
我们发现需要注册Red Hat的服务,此时我们换用另一种方式解决这个问题(见参考博主yum安装问题解决方法)。先按照那个博主将yum下好,在操作下面图下面是安装成功样例图:
安装步骤:下载及解压源文件、编译源码包代码、生成二进制安装程序、运行二进制的服务程序安装包。在编译各个软件包源码程序时,都会生成大量的输出信息,下文中会将其省略,请实际操作为准。请仔细看清目录路径不要因为找不到文件影响心情。
(下面命令只是参考,看自己情况而定)看清版本
[root@linuxprobe~]#mkdir/lnmp
[root@linuxprobe~]# cd/lnmp
[root@linuxprobe lnmp]# wget https://www.linuxprobe.com/Software/rpcsvc-proto-1.4.tar.gz [root@linuxprobe lnmp]# wget https://www.linuxprobe.com/Software/nginx-1.16.0.tar.gz [root@linuxprobe lnmp]# wget https://www.linuxprobe.com/Software/mysql-8.0.18.tar.xz
(如果MySQL下载出现错误:见参考MySQL下载问题解决方法)
[root@linuxprobe lnmp] #wget https://www.linuxprobe.com/Software/php-7.3.5.tar.gz [root@linuxprobe lnmp]# wget https://www.linuxprobe.com/Software/wordpress.tar.gz [root@linuxprobe lnmp]# 1s
下面是具体操作:(下载的包和下面类似,https://www. ~/Software/+自己下载的包。)MySQL因为后缀是.xz 自己可以在网上查一下,这是为什么在命令中输入时出现错误。
下面是lnmp目录下的所有包:
二、配置Nginx服务:
第一步:创建用于管理网站服务的系统账户。
第二步:编译安装Nginx网站服务程序。
第三步:进入配置阶段。
[root@linuxprobe lnmp]# vim /usr/local/nginx/conf/nginx.conf
第四步:通过编译源码方式安装的服务默认不能被systemctl命令所管理,而要使用Nginx 服务本身的管理工具进行操作,相应命令所在的目录是/usr/local/nginx/sbin。
[root@linuxprobe lnmp]# vim ~/.bash_profile (看照片上的命令)
[root@linuxprobe lnmp]#source ~/.bash_profile (看照片上的命令)
[root@linuxprobe lnmp]# nginx
操作完毕!重启服务程序,并在浏览器中输入本机的IP地址,即可访问到Nginx 网站服务程序的默认界面。
三、配置MySQL服务:(MySQL见参考)(下面红色的部分注意)
对于My 数据库来说,我们需要在系统中创建一个名为mysql的用户,专门用于负责运行MySQL数据库。
第一步;解压MySQL安装软件包。将解压出的程序目录改名并移动到/usr/local目录下,对其进行初始化操作后便可以使用。
第二步:在生产环境中管理MySQL数据库时,有两个比较常用的目录。一个是/usr/local/mysql 目录,这是用于保存MySQL数据库程序文件的路径。
第三步:初始化MySQL 服务程序,对目录进行授权,保证数据能够被 mysql 系统用户读取。在初始化阶段,应使用mysqld命令确认管理MySQL 数据库服务的用户名称、数据保存目录及编码信息。
第四步:与Nginx服务相似,MySQL数据库的二进制可执行命令也单独存放在自身的程序目录/usr/local/mysql/bin 中。
上述步骤照片展示:
Root用户给Ha用户权限 (我设置的用户是Ha)
如果你已经以root用户登录到MySQL,你可以给Ha用户授予创建数据库的权限。
以下是如何操作的步骤:
授予Ha用户创建数据库的权限。你可以为Ha用户指定特定的数据库权限,或者为他授予在所有数据库上创建数据库的权限。如果你想要给Ha用户在所有数据库上创建数据库的权限,可以使用以下命令:
GRANT CREATE ON *.* TO 'Ha'@'localhost';
如果你只想给HanMengQi用户在某个特定的数据库(比如wd_2)上创建表的权限(注意不是创建数据库的权限,因为数据库需要事先存在),你可以使用以下命令:
GRANT CREATE ON wd_2.* TO 'Ha'@'localhost';
但是,由于你的错误消息是关于创建数据库的,所以你应该使用第一个命令。
刷新权限,使更改立即生效:
FLUSH PRIVILEGES;
现在,Hai用户应该能够创建新的数据库了。
你可以退出MySQL,然后以Ha用户身份重新登录,并尝试创建数据库来验证权限是否已正确授予:
mysql -u Ha -p
然后输入密码,并在MySQL提示符下尝试创建数据库:
CREATE DATABASE wd_2;
如果成功,那么你就已经成功地为Ha用户授予了创建数据库的权限。
下面是用Ha用户使用的MySQL数据库
AAAAAA这个是实际操作MySQL创建其他用户和权限:(看过来,对没错,是自己姓名加wd_221学号,案例用户名:HMQ,数据库名:wd_2216)(注意:以下命令自己输入,有可能存在输入错误和中英文输入问题)
要看清楚
1.在MySQL提示符下,使用ALTER USER语句来修改密码:
ALTER USER 'HMQ'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
2.查看数据库用户
SELECT User, Host FROM mysql.user;
3.创建HMQ用户:
默认情况下,你可以创建一个没有指定任何权限的用户。这允许你在之后根据需要为用户授予权限。以下是如何创建HMQ用户的命令:
CREATE USER 'HMQ'@'localhost' IDENTIFIED BY '123456';
4.如果你想要查看所有主机上的用户:(再次查看上述第三不是否正确创建)
SELECT User, Host FROM mysql.user;
5.为HMQ用户授予所有权限(root用户下):
使用GRANT ALL PRIVILEGES语句来赋予HMQ用户所有权限:
GRANT ALL PRIVILEGES ON *.* TO 'HMQ'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES; (刷新权限)
- 在HMQ用户下创建wd_2216:
create database wd_2216;
7. 先检查下数据库是否连接正常,是否是数据库登陆账户或者密码填写错误,如果都确认没有填写错误,那有可能是连接数据库的加密方式不一致,导致无法正常连接。(在root用户下):
ALTER USER 'HMQ'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
ALTER USER 'HMQ'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
alter user 'HMQ'@'localhost' identified by '123456';
以上都是案例,具体问题具体分析。
下面是MySQL创建其他用户具体步骤:(这个结合上面那个操作一起,建议做上面的,然后下面的照片看看就行)
下面使用的是HMQ,和上面解析有误(上面是Ha)
(下面是数据库用户和数据库名,别人的,我做的时候忘了截屏了)
下面的照片是,下载好PHP后,然后在文件中查看。可以先进行PHP配置然后再回来查看。
注意:按照自己的情况配置,不要以偏概全。
四、配置PHP服务:
第一步:解压php安装包软件并编译安装。在编译期间,需要使用prefix参数指定安装路径,使用﹣-with-mysqli等参数开启对数据库的支持模块,为后面的在线安装网站做好准备。
[root@linuxprobe mysq1]# cd/lnmp
[root@linuxprobe lnmp]# tar xvf php-7.3.5.tar.gz
使用下述命令生成二进制文件并进行安装,时间大约为10~20分钟,耐心等待即可:
[root@linuxprobe php-7.3.5]# make
[root@linuxprobe php-7.3.5]# make install
第二步:将生成的php服务配置文件复制到安装目录中(/usr/local/php/),让其生效。现在主配置文件有了,接下来还需要php-fpm的配置文件,好在/usr/local/php/etc/目录中也已经提供,只需要复制模板即可:
复制一个模板文件到php-fpm.d的目录中,用于后续控制网站的连接性能:
[root@linuxprobe etc]# mv php-fpm.d/www.conf.default php-fpm.d/www.conf
第三步:把php服务加入到启动项中,使其重启后依然生效:
[root@linuxprobe etc]# cd /1nmp/php-7.3.5
[root@linuxprobe php-7.3.5]# cp sapi/fpm/init.d.php-fpm/etc/init.d/php-fpm
[root@linuxprobe php-7.3.5]# chmod 755 /etc/init.d/php-fpm
第四步:由于php服务程序的配置参数会对Web服务的运行环境造成影响,如果默认开启了一些不必要且高危的功能(如允许用户在网页中执行Linux命令),则会降低网站被人侵的难度,甚至会让入侵人员拿到整台Web服务器的管理权限。因此需要编辑php.ini配置文件,在第310行的disable_functions参数后面追加上要禁止的功能。
[root@linuxprobe php-7.3.5]# vim /usr/local/php/lib/php.ini
这里请注意:vim /usr/local/php/php.ini 文件内容如下:310行
passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server (如果因为格式问题出现错误,请参考下面照片中的输入)
第五步:LNMP架构源码编译工作就此结束。准备享受胜利成果吧。
[root@linuxprobe php-7.3.5]# /etc/init.d/php-fpm start
五、搭建WordPress博客:
把 Nginx服务程序根目录的内容清空后,将WordPress解压后的网站文件复制进去:
为了能够让网站文件被Nginx服务程序顺利读取,应设置目录所有权的身份及可读写的权限:
随后输人本机IP地址访问WordPress网站的首页面。该页面提醒了用户稍后需要的安装信息。
如果出现上图问题。(这个问题还未解决,有的人用自己的ip地址,不会出现这个问题,但是用127.0.0.1就出现这个问题)。
这里注意一下:上一步遇到的连接问题或者下次开机时,有可能出现的错误。主要原因是没有开机自启动相应服务,下图是我遇到的问题和解决方法:(遇事不要慌,先冷静一下)
下图是因为php服务未启动,可以看下面几张照片(照片上有关于服务的问题解决方法)
下面错误是归属权问题,在root用户创建完自己的数据库用户后,用自己的数据库用户登录,然后创建wd_22数据库。和上面AAAAAA这个是实际操作MySQL创建其他用户和权限有关
这个错误见参考:4
这个错误见参考5:这个问题还未解决。
六、总结:
内容有可能存在问题,请多多指教!!!
参考:
LNMP部署:Linux就该怎么学(第2版)刘遄 著 人民邮电出版社,第20章使用LNMP架构部署动态网站环境
yum问题:Redhat8.0之yum install -y samba安装问题_updating subscription management repositories. una-CSDN博客
MySQL问题:
MySQL问题和解决方法:(在虚拟机中复制链接,然后下载并转移到/lnmp目录下)
链接:https://downloads.mysql.com/archives/community/
4:安装Wordpress时无法连接数据库_unraid wordpress无法连接数据库-CSDN博客
5:WordPress “站点出现致命问题“ 解决方案_此站点遇到了致命错误-CSDN博客
以上都是建议,仅供参考就行~!!!