文章目录
背景
前段时间在学习 ThinkPHP,但是一直都是用着 phpstudy 的集成环境。感觉总是缺少了点什么。趁着这段笔记本被重置的时间,尝试通过 VMware 运行 Linux 系统,并完成 LAMP 环境的搭建,用于之后做 Web 项目的服务器。我会将自身从安装 VMware 软件到安装 Linux 系统再到配置LAMP环境所遇到的问题以及解决方法做一个记录,为其他小伙伴提供借鉴,同时也很感谢前辈们在网上分享的解决方法!现在就让我们开始吧!
一、LAMP版本 以及 辅助软件
LAMP版本:
VMware 版本:VMware 15.0
Linux系统 版本:CentOS 7.2
Apache 版本:Apache 2.4.6
MySQL 版本:MySQL 5.6.47
PHP 版本:5.4.16
辅助软件:
Xshell 5
Navicat Premium 15
二、安装 VMware 软件以及 Linux 系统
1.安装 VMware 软件
安装 VMware 软件没有太大困难,按照网上教程和建议安装即可。
2.Linux 系统
同样的, Linux 系统的安装难度也不大。按照网上教程建议安装即可。
但是部分小伙伴在 VMware 软件中创建新的虚拟机时弹出一个错误窗口:Intel VT-x处于禁用状态。
没关系,解决办法十分简单:
- 重启电脑,进入主板BIOS(每种电脑品牌进入BIOS的方式都不一样,具体方法请各位小伙伴自行搜索)
- 在【 Advanced 】选项页中将【 Inter® Virtualization Technology 】的 Disabled 状态更改为 Enabled 。(如果进入BIOS后是中文的界面,在【系统设置】将【处理器虚拟化技术】的 禁用 状态更改为 启用)
- 保存设置,正常启动。
三、环境配置
1. 网络配置
安装完 CentOS 7.2 后,有些小伙伴欣喜若狂,但是当他们点开浏览器,输入个网址,发现并不能连网。 这是因为在默认安装下虚拟机是没有开启配置网卡信息的,所以连不上网。解决这该问题的方法有两种:设置静态IP和自动获取IP,我使用第一种方法完成网络配置。
- 在 VMware 软件界面下选择【编辑】→【虚拟网络编辑器】,并在弹出的窗口选择 “更改设置”,随后会重新打开该窗口。
- 在重新打开的窗口中,点选名称为 “VMnet8” 的网络,选择 “NAT模式(与虚拟机共享主机的 IP 地址)”,并取消勾选 “使用本地DHCP服务将地址分配给虚拟机”。随后点击 “NAT 设置”。
- 在【NAT 设置】窗口中,拿出笔和小本本记下子网IP、子网掩码和网关IP(之后在Linux中配置网络是需要)
- 回到 Linux 桌面,右键点击 “打开终端”,输入
su
命令,随后输入自己安装 Linux 系统时设置的密码,获取root权限(输入密码时,是不会显示密码字符的,所以小伙伴输入时注意一下)
- 输入
cd /etc/sysconfig/network-scripts/
命令进入 network-scripts 目录,通过ls
输出该目录下的文件列表。我们接下来需要配置"ifcdfg-ens33"文件。输入vi ifcfg-ens33
即可进入该文件
- 在 “ifcfg-ens33“ 文件下,进行如下修改,完成后使用ESC退出编辑状态,随后使用
:wq
命令,即Shift + : + wq
组合键,保存并退出该文件。
#代码说明
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static # 初始为将此处设置为static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=16ac64c1-66bb-40f5-9bfe-7f485408eb0d
DEVICE=ens33
ONBOOT=yes # 初始为no,将此处设置为yes,表示网卡设备自动启动
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no
GATEWAY=192.168.85.2 #使用刚刚我们拿本子记下的网关IP
IPADDR=192.168.85.99 #这里是IP,因为我们的IP处于192.168.85.xxx这个范围,随便设置为99即可
NETMASK=255.255.255.0 #子网掩码
DNS1=8.8.8.8 #DNS服务器1,填写所在的网络可用的DNS服务器地址即可
DNS2=4.4.4.4 #DNS服务器2
- 回到最初的界面,输入
service network restart
命令重启网络服务,重启完成后通过ping www.baidu.com
名验证网络是否连上(验证的网站可以时任意有效网站)出现如下的界面即完成网络配置。
2.LAMP环境配置
在 Linux 系统中,有三种安装软件的方式,分别是源代码安装、RPM安装和YUM安装,每种安装方式都有其优势和缺点。我们采用RPM安装和YUM安装这两种方式结合进行配置LAMP的环境(安装出现问题可查看后面的解决方法)
-
确认 CentOS 版本,输入
cat /etc/redhat-release
命令,会返回版本号。[root@localhost zengxf]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)
-
安装配置 LAMP 环境需要的辅助工具( vim、tmux 和 wget )
yum install vim tmux wget -y
-
安装 Apache、PHP 、MySQL 的数据包(逐一安装)
yum -y install httpd yum -y install php yum -y install php-fpm yum -y install mysql yum -y install mysql-server yum -y install php-mysql
在安装 mysql-server 的时候,使用
# yum -y install mysql-server
会报错,有以下两种解决方案,我选择第二种方法。# 第一种:安装mariadb yum install -y mariadb # 第二种:从官网下载mysql-server wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm yum localinstall mysql-community-release-el7-5.noarch.rpm yum install mysql-community-server
-
安装 Apache 的常用扩展包
yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql #只有httpd-manual和mod_ssl被安装
在防火墙中开放80端口,需要将http服务加入防火墙以允许外部访问
firewall-cmd --add-service=http --permanent # permanent表示这是一条水久防火墙规则,如果不加则重启系统后就没有这条规则了
重启 Firewall使该规则生效
systemctl restart firewalld
-
安装 PHP 的常用扩展包
yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-devel
-
安装 MySQL扩 展包
yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql
-
配置 Apache、MySQL 开机启动
systemctl enable httpd.service #设置Apache开机启动,需要运行两次该命令 systemctl enable mysqld #设置MySQL开机启动
-
重启 Apache、PHP、MySQL 服务
systemctl restart httpd.service #重启Apache服务 systemctl restart php-fpm #重启PHP服务 systemctl restart mysqld #重启MySQL服务
-
配置 MySQL
初次进入 MySQL 不需要密码
[root@localhost zengxf]# mysql
进入 MySQL 后检查其中的数据库目录(此步骤可以省略)
show databases; #注意最后面的分号;
重置 MySQL 中 root 账户的密码
set password for 'root'@'localhost' =password('root123123'); #为了方便记忆,本人将该密码与系统密码相一致
使用
exit
命令退出 MySQL ,再重新登录[root@localhost zengxf]# mysql -uroot -p
-
环境检查,先安装网络相关工具 net-tools ,随后监听端口
yum -y install net-tools netstat -tunlp
看到 80 和 3306 端口被监听即可
-
为了系统能够正常运转,我们最好将 SELINUX 关闭
[root@localhost zengxf]# vim /etc/selinux/config #进入并查看selinux的config文件
关闭功能(即注释掉)
#SELINUX=enforcing #SELINUXTYPE=targeted
添加功能
SELINUX=disable
最后使用
:wq
指令保存并退出最后使用输入setenforce 0
使配置立即生效
四、环境测试
1.在虚拟机中测试 Apache 和 PHP 环境
打开虚拟机浏览器,输入localhost
进入网页,若显示如下图,即通过 Apache 服务测试
输入cd /var/www/html
进入 Apache 的网页根目录,然后写入 PHP 测试页面
touch test.php
vim test.php
PHP 测试页面代码:
<?php
echo "test page";
phpinfo();
?>
2.在宿主机中测试 Apache、PHP 和 MySQL 环境(推荐该测试方式)
将此虚拟机关机,选择 “编辑虚拟机设置”,将网络是配置器的 “网络连接” 设置为 自定义,并选择 “VMnet8(NAT 模式)”
在 VMware 软件界面下选择【编辑】→【虚拟网络编辑器】,并选择“更改设置”,点选名称为 “VMnet8” 的网络,将 “使用本地DHCP服务将IP地址分配给虚拟机”勾选。保存设置
重新启动此虚拟机,进入使用root管理权限进入终端,输入ip addr
查看网络IP,记录下我们之前配置好的网络IP
在宿主机中使用 Xshell 软件对虚拟机进行远程连接。新建会话,输入名称(随意取),主机需要填写上一步记录下来的网络IP。并完成用户身份验证,用户名必须为 root,密码是安装 CentOS 时设置的密码。
连接会话,显示如下,即连接成功
成功连接后在宿主机上用浏览器输入192.168.85.150
,即可显示 Apache 测试界面;输入192.168.85.150/test.php
,即可显示 PHP 版本信息界面。至此,Apache 和 PHP 环境通过测试
现在通过远程访问数据库来测试 MySQL 环境,先在虚拟机终端中使用 root 身份进入 MySQL
mysql -u root -p
查看数据库,确保可以正常访问数据库。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.27 sec)
创建外部访问的测试数据库 test
create schema test default character set utf8 collate utf8_general_ci;
因为在实际生产中,基本没有访问root用户的权限,因此我们需要自己创建一个管理员用户,用于日常数据库管理。
创建数据库用户
create user 'admin'@'localhost' identified by 'admin123123'; #支持本地访问
create user 'admin'@'%' identified by 'admin123123'; #支持远程登陆
刷新数据库权限
flush privileges;
授予权利
grant all privileges on test.* to admin@'localhost' with grant option;
grant all privileges on test.* to admin@'%' with grant option;
再次刷新权限
flush privileges;
退出数据库,添加打开3306端口的防火墙规则(远程连接需要)
firewall-cmd --zone=public --add-port=3306/tcp --permanent;
重启防火墙
systemctl restart firewalld;
在宿主机中打开 Navicat 数据库管理工具,测试是否能够远程连接上虚拟机中的 MySQL 数据,输入主机 IP、端口号、用户名和密码,点击 “测试连接”,若弹出 “连接成功”,即可远程连接。
此时也完成了 MySQL 的配置。
五、可能遇到的问题
-
镜像问题
在配置时候可能会遇到yum下载不了LAMP,建议更换镜像
1)配置阿里云yum源
# 备份原来的源 cd /etc/yum.repos.d/ && mkdir backup && mv *repo backup/ # 下载阿里云yum源,适配CentOS 7 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 更新 repo 缓存 yum clean all && yum makecache
2)配置清华镜像
相关方法查看官方教程