附各种解决方案!总结VMware之Linux从零开始搭建WordPress

本文记录了使用VMware从零开始搭建WordPress的全过程, 以及过程中可能出现的问题,和相关解决方案。(2021.9.18)
本人小白,如果有什么说的不对的地方,欢迎大家指出!

可能遇到的问题以及解决方案用这种灰色引用块表示,如果没有遇到该问题,则跳过这部分继续按照正文流程操作即可。

目录

  • 一、安装apache、mysql、php
    • 1.安装下载工具wget
    • 2.安装apache
    • 3.安装php7.4
    • 4.安装php-fpm
    • 5.安装mysql
    • 6.安装mysql-server
    • 7.安装php-mysql
  • 二、安装一些扩展包
    • 1.安装apache扩展包
    • 2.安装php扩展包
    • 3.安装mysql扩展包
  • 三、设置apache开机自启
  • 四、修改mysql的密码
  • 五、测试环境
    • 1、测试apache
    • 2、测试php
  • 六、一些小补充(防火墙的正确用法)
  • 七、WordPress
    • 1.创建并配置WordPress数据库
    • 2.安装WordPress

这里假设你已经安装好了VMware,并安装了linux(我使用的是CentOS7)

安装完linux之后,有可能出现第一个问题:启动虚拟机时,电脑出现蓝屏报错SYSTEM_SERVICE_EXCEPTION
解决方法为:
1.【可能是驱动冲突,进入虚拟机的配置,删除打印机和声卡】如果不行尝试方法2
2.【如果是win10家庭版】下载该修复文件并解压,地址:https://share.weiyun.com/LVno2Zs2
解压后是Hyper-V.bat,右击,选择“以管理员身份运行”,然后会弹出命令提示符窗口,等待配置成功后按提示输入“Y”,然后会自动重启
重启后,打开“启用或关闭Windows功能”,取消勾选"Hyper-V"点击确定,点立即重启。
重启后移除原来虚拟机,重新创建虚拟机,运行正常
【如果是win10专业版】,不用下载修复文件,直接打开“启用或关闭Windows功能”,取消勾选"Hyper-V"点击确定,点立即重启。
重启后移除原来虚拟机,重新创建虚拟机,运行正常
3.如果以上方法都不行,【直接卸载当前版本的VMware,重新安装VMware16及以上版本】有概率解决该问题,但比较麻烦,需要重新破解、重新创建虚拟机等,有点麻烦,可以试试

搭建WordPress博客首先需要搭建LAMP环境

(LAMP 就是Linux、apache、mysql、php,现在我们已经有了linux,所以接下来安装剩下的三个)

一、安装apache、mysql、php

1.安装下载工具wget

yum install wget -y

每当出现 Complete!时,表示下载成功,以下同理。

2.安装apache

apache软件的软件包名称叫做httpd

yum -y install httpd

启动apache服务

systemctl start httpd

关闭防火墙(后文《六、一些小补充》有解释)

systemctl stop firewalld

关闭SElinux

setenforce 0

setenforce 0其实是暂时关闭SElinux,这里再介绍一个可以永久关闭SElinux的方法:输入
vim /etc/selinux/config
(如提示bash vim: command not found,是因为没有安装vim,请将文章向下滑,参考《6、安装mysql-server》中给出的解决方案)
进入SElinux的配置文件,找到SELINUX=enforcing,将其修改为SELINUX=disabled修改完成后,需要重启即可生效

3.安装php7.4

要安装PHP 7,首先需要安装并启用EPEL和Remi存储库。

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

然后安装yum-utils,它可以扩展yum的默认功能,用于管理(启用或禁用)yum存储库以及程序包。

yum install yum-utils

yum-utils提供的程序之一是yum-config-manager,可以使用它来启用Remi存储库作为默认存储库,以安装不同的PHP版本。

输入以下指令以启用php7.4版本

yum-config-manager --enable remi-php74

然后使用以下命令安装php7.4和所有必需的模块

yum install php php-cli php-common php-gd php-json php-ldap php-mbstring php-mysqlnd php-pdo php-xml

安装完毕后,输入php -v来查看当前的php版本,如下图所示,则安装成功
附各种解决方案!总结VMware之Linux从零开始搭建WordPress_第1张图片

4.安装php-fpm

yum -y install php-fpm

5.安装mysql

yum -y install mysql

顺便提一句,如果看到以下内容:
Installed:
mariadb.x86_64 1:5.5.50-1.el7_2
Dependency Updated:
mariadb-libs.x86_64 1:5.5.50-1.el7_2
Complete!
你可能会纳闷我下载的是mysql呀,为什么install的文件名是mariadb呢
不要慌,你可以理解为,在CentOS7.2版本中,mysql更名为mariadb,所以你安装的依然是mysql

6.安装mysql-server

yum -y install mysql-server

执行后,他会返回一个错误,Error: Nothing to do
这是因为CentOS 7 版本中 MySQL数据库已从默认的程序列表中移除了,用mariadb代替了,centos7默认将mariadb视作mysql。此时我们有两种解决办法
方法一:去官网下载mysql-server(推荐)

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

如果这一步出现 unable to resolve host address
wget:无法解析主机地址。说明是DNS解析的问题。
使用root账户登录linux,输入:
sudo vim /etc/resolv.conf
如果输入后成功进入/etc/resolv.conf,则无视以下内容
————————————————————————————
如果输入后出现 bash vim: command not found,说明你没有安装vim,执行以下命令:
rpm -qa|grep vim
查看是否安装完整vim,如果已经正确安装的话,会显示如下三行结果:
vim-enhanced-7.0.109-7.el5
vim-minimal-7.0.109-7.el5
vim-common-7.0.109-7.el5
如果显示的不是这三行,输入
yum -y install vim*
然后等待安装完毕,再次输入
rpm -qa|grep vim
检查内容是否包括以上正确安装的三行结果,如正确,说明安装成功,现在可以使用vim命令了
————————————————————————————
接上条,使用vim命令进入/etc/resolv.conf后,把resolv.conf中的内容修改为以下两行:
nameserver 8.8.8.8
nameserver 8.8.4.4

然后再次输入上面那条下载mysql-server的命令
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

应该就可以成功开始下载了
当提示 Is this ok [y/d/N]: 时,输入y继续,一共会提示两次,下次再继续输入y,最后出现Complete!,下载成功

方法二:直接安装mariadb

yum install -y mariadb 

7.安装php-mysql

yum -y install php-mysql

到这里,第一部分完成了。

二、安装一些扩展包

1.安装apache扩展包

yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql 

2.安装php扩展包

yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-devel

3.安装mysql扩展包

yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql

到这里,LAMP基本的环境都已经安装好了,只需要配置就可以运行了

三、设置apache开机自启

这一步是为了让apache在虚拟机开机时自动启动,相关指令如下:

启动apache

systemctl start httpd.service

停止apache

systemctl stop httpd.service

重启apache

systemctl restart httpd.service

设置apache开机自启

systemctl enable httpd.service

重启各项服务

service mysqld restart
service php-fpm start
service httpd restart

四、修改mysql的密码

设置mysql的root账户的密码。目前的版本安装的MySQL会为root账户自动生成一个临时密码,以下操作可以跳过临时密码直接修改密码

1.用root权限进入MySQL配置文件:

vim /etc/my.cnf

2.在文件中找个空行,添加一行:

skip-grant-tables

3.保存并退出,重启MySQL。

service mysqld restart

输入以下指令,此时我们就可以免密登陆MySQL:

mysql -uroot

4.进入mysql后,执行以下命令(mysql的提示符是:mysql> 注意mysql的命令后要加;分号

首先输入以下,进入系统数据库

mysql>use mysql;

然后修改密码,注意密码必须包含大小写字母、数字和特殊字符,而且长度不能小于8位,否则mysql5.7 密码安全检查插件(validate_password)会提示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 错误。(我们现在用的是mysql5.6版本)

mysql>update mysql.user set authentication_string='这个引号里写新修改的密码,注意看上方要求' where user='root' and host='localhost'; 
mysql>flush privileges;
mysql>exit;

执行完毕之后再次进入mysql配置文件中,

vim /etc/my.cnf

将原本添加的skip-grant-tables这一行删除

然后重启mysql

service mysqld restart

此时就可以用新的密码登录数据库了,输入

mysql -uroot -p

提示输入密码,输入刚刚修改的密码即可(输入密码的时候不会显示,正常输入就行,然后回车)

如果还是无法登录的,检查一下你的密码是否输入正确,是否包含了大小写和特殊字符

出现下图就表示成功了,可以用修改密码后的root账户登陆数据库了
附各种解决方案!总结VMware之Linux从零开始搭建WordPress_第2张图片
然后最重要的一步:删除mysql中的匿名用户(为了保证安全性,谁都可以登录你的mysql是一件非常危险的事情,而且也为了防止匿名用户影响其他用户登录)
输入以下指令查询匿名用户:

mysql> select host,user,password from user;

附各种解决方案!总结VMware之Linux从零开始搭建WordPress_第3张图片

会出现一个表,可以看到表中user这一列有的行是空的,这就是匿名用户

删除匿名用户

mysql> delete from user where user='';

再次输入:

mysql> select host,user from user;

查询刚刚执行的结果

附各种解决方案!总结VMware之Linux从零开始搭建WordPress_第4张图片
可以看到现在匿名用户已经被删除了
输入以下指令,刷新权限

mysql> flush privileges;

mysql部分完成,退出mysql

mysql> exit;

扩展知识:上文介绍了连接到本地的mysql,那么如何连接到远程主机上的mysql呢?
假设远程主机的IP为:192.0.0.1,用户名为root,密码为123。则键入以下命令:
mysql -h192.0.0.1 -uroot -p123
(注:u和root之间可以不用加空格,其它也一样)

五、测试环境

1、测试apache

在浏览器地址栏输入你的服务器的ip地址
如果出现下图,说明apache测试成功
附各种解决方案!总结VMware之Linux从零开始搭建WordPress_第5张图片

部分人到了这一步可能会发现,在地址栏中输入服务器的ip可以正常访问,但是输入localhost或者127.0.0.1却不能访问,(比如我就遇到了这个问题)会怀疑自己是不是哪一步做错了?

以下思路指导感谢 @Cdr_Bowen

其实并没有做错,询问了百度大佬之后得知,“localhost” 和 “127.0.0.1” 指向的都是本机地址,固定指向的是你自己的电脑,而不是你的服务器,你的虚拟机(服务器)和你自己的电脑实际上是两个环境。

我们之前用phpstudy、xampp等软件搭建的环境是以本机作为服务器来用的,所以在本机浏览器输入localhost可以直接访问。而且别人在访问你的网站的时候都是通过ip地址访问的,所以这个“在本机通过localhost不能访问虚拟机里的服务器”问题不大。
附各种解决方案!总结VMware之Linux从零开始搭建WordPress_第6张图片

大佬的这一句话点醒了我,我直接使用curl指令

curl 可以用来获取页面内容,执行后,会将链接的html内容显示在屏幕上。
当我们不加任何选项使用 curl 时,默认会发送 GET 请求来获取链接内容到标准输出。由于安装linux的时候很多时候是没有安装桌面的,也意味着没有浏览器,因此这个方法也经常用于测试一台服务器是否可以到达一个网站。

curl localhost

出现了以下的结果,和使用ip地址访问出现的页面是一样的,说明我们的服务器是通的,没有任何问题

附各种解决方案!总结VMware之Linux从零开始搭建WordPress_第7张图片
apache测试完毕!

2、测试php

划重点!!在这里要先配置一下apache,让apache中增加一些对php5支持的模块,才能让apache解析php,不然看到的会是php源码!

进入apache的配置文件httpd.conf

vim /etc/httpd/conf/httpd.conf

找到图中位置,加入以下代码:
附各种解决方案!总结VMware之Linux从零开始搭建WordPress_第8张图片

LoadModule php7_module modules/libphp7.so

继续找到图中位置,在index.html后加上 index.php ,然后在下方另起一行,加入以下代码,使得Apache可以解析php文件

附各种解决方案!总结VMware之Linux从零开始搭建WordPress_第9张图片

<IfModule mod_php7.c> 	
	AddType application/x-httpd-php .php 
</IfModule>

最后 重启Apache

service httpd restart

然后我们需要新建一个PHP界面进行测试
在apache的web根目录(默认页面路径) /var/www/html 下新建就可以了

首先进入这个目录

cd /var/www/html

然后新建php文件

touch phpinfotest.php

修改这个文件的内容

vi phpinfotest.php

将内容修改为以下


echo "test";
phpinfo()
?>

在浏览器地址栏中输入:服务器的ip地址/phpinfotest.php,看到如下结果:

附各种解决方案!总结VMware之Linux从零开始搭建WordPress_第10张图片

恭喜你成功啦!!
现在服务器已经搭建好并且可以正常工作了,接下来开始搭建WordPress!

六、一些小补充(防火墙的正确用法)

在前文安装apache的过程中,没有关闭防火墙之前,我们用服务器搭建的网站是无法访问的,这是因为默认访问网站的端口就是80,我们没有配置防火墙,防火墙上没有放通80端口,所以网站无法访问。后来我们关闭了防火墙,网站就可以访问了。

实际上关闭防火墙就相当于放通了所有端口,很明显这是一种简单粗暴的操作,目前我们为了学习方便可以暂时这样做,但以后在工作中是肯定不能这么做的,因为放通所有端口会大大降低服务器的安全性。

正确的做法是配置防火墙,配置防火墙可以使HTTP流量、HTTPS流量能够顺利通过防火墙,并阻挡其他可疑流量。我们可以只放通一些需要用到的端口,比如网站访问的80、mysql的3306、phpmyadmin的888、用于ftp文件传输的21,ssh的23等等……

操作如下,首先输入以下指令,查看目前防火墙的状态

firewall-cmd --state

可以看到防火墙现在的状态是not running
在这里插入图片描述

开启防火墙

systemctl start firewalld

开放相关端口

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=8080-8085/tcp
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=888/tcp
firewall-cmd --permanent --add-port=443/tcp
#…………根据自己的需要去添加

查看防火墙的开放的端口

firewall-cmd --permanent --list-ports

附各种解决方案!总结VMware之Linux从零开始搭建WordPress_第11张图片

修改配置后要重启防火墙

firewall-cmd --reload

现在我们就可以在开启防火墙的状态下访问网站啦
附各种解决方案!总结VMware之Linux从零开始搭建WordPress_第12张图片

七、WordPress

1.创建并配置WordPress数据库

使用root账户登录mysql

mysql -u root -p

输入密码之后成功登入,接下来输入以下指令,创建wordpress数据库

CREATE DATABASE wordpressdb;

然后创建wordpress数据库账户和设置密码

CREATE USER 你的用户名@localhost IDENTIFIED BY '密码';

例如CREATE USER wordpress@localhost IDENTIFIED BY '123456';
表示用户名是wordpress,密码是123456
到这里千万不要乱了,比如我刚刚示例的语句表示,现在wordpress的数据库账户名是wordpress,密码是123456,它所管理的数据库名是wordpressdb

然后再输入这条指令,为你刚刚创建的wordpress账户授予权限,让它可以对wordpress数据库进行操作

GRANT ALL PRIVILEGES ON 你刚刚创建的数据库名.* TO 你刚刚创建的用户名@localhost;

例如:GRANT ALL PRIVILEGES ON wordpressdb.* TO wordpress@localhost;

之后刷新数据库缓存

FLUSH PRIVILEGES;

现在输入查询一下用户表,可以看到已经有wordpress了,表示我们成功了
附各种解决方案!总结VMware之Linux从零开始搭建WordPress_第13张图片

退出数据库

exit; 

2.安装WordPress

1.使用wget下载最新wordpress

wget http://wordpress.org/latest.zip

2.下载解压工具zip、unzip

yum install zip unzip

3.解压文件,并且将其复制到/var/www/html目录下

unzip -q latest.zip

4.复制 wordpress文件夹下所有文件到html目录下(html目录是apache的网站默认目录)

cp -rf wordpress/* /var/www/html/

cp命令:常用于复制一个源文件到目标文件(夹)。
-r:表示复制该目录下所有的子目录和文件(复制文件夹一定要加-r)。

5.修改文件夹权限,赋予apache对相关文件夹的权限

chown -R apache:apache /var/www/html/

chmod -R 755 /var/www/html/

mkdir -p /var/www/html/wp-content/uploads

chown -R :apache /var/www/html/wp-content/uploads

6.修改wordpress配置文件

cd /var/www/html
cp wp-config-sample.php wp-config.php
vim wp-config.php

找到define(‘DB_NAME’, ‘database_name_here’);

将 database_name_here 修改为你创建的wordpress数据库名

找到define(‘DB_USER’, ‘username_here’);

将 username_here 修改为你创建的数据库用户名

找到define(‘DB_PASSWORD’, ‘password_here’);

将 password_here 修改你创建数据库用户的密码

输入:wq保存

重启相关服务

systemctl restart httpd.service
systemctl restart mysqld.service

7.进入Web页面设置

访问http://你的服务器ip地址/wp-admin

进入wordpressWEB安装配置界面,按照要求设置用户名密码,就可完成wordpress最后设置
附各种解决方案!总结VMware之Linux从零开始搭建WordPress_第14张图片

如果此文对你有帮助的话,请点个赞吧~
在这里插入图片描述

你可能感兴趣的:(服务器相关,linux,php5,服务器,wordpress,vmware)