目录
一、理论
1.LAMP平台
2.Apache网址服务基础
2.httpd服务器的基本配置
3.构建虚拟Web主机
4.MySQL服务
5.构建PHP运行环境
二、实验
1.LAMP架构+DISCUZ论坛应用
三、问题
1.虚拟机内存分配上限问题,内存上限只能加到3G。
2.虚拟机CPU如何设置才更加合理
3.虚拟机内存如何设置才更加合理
4.httpd启动报错
5.mysql登录失败
四、总结
(1)概念
LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整台系统和相关软件,能够提供动态web站点服务及其应用开发环境。
LAMP是一个缩写词,具体包括Linux操作系统,Apache网站服务器,MySQL数据库服务器,PHP(或perl,Python)网页编程语言。
(2)原理图
(3)LAMP各组件主要作用
表1 LAMP各组件作用
组件 | 功能 | 作用 |
Linux | LAMP架构的基础平台 | 作为LAMP架构的基础,提供用于支撑Web站点的操作系统,能够与其他三个组件提供更好的稳定性,兼容性(AMP组件也支持Windows、UNIX等平台) 。 |
Apache | LAMP架构的前台 | 作为LAMP架构的前端,是一款功能强大,稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页,图片等文件内容。 |
MySQL | LAMP架构的后台 | 作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息,客户资料、业务数据等都可以存储到MySQL数据库,其他程序可以通过SQL语句来查询,更改这些信息。 |
PHP/Perl/Python | LAMP架构的中间连接 | 作为三种开发动态网页的编程语言,负责解释动态网页文件,负责沟通Web服务器和数据库系统以协同工作,并提供Web应用程序的开发和运行环境。其中PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于Web应用开发。 |
(4)LAMP服务平台的优点
表2 LAMP平台优点
优点 | 描述 |
成本低廉 | 可快速获得免费使用 |
可定制 | 拥有大量的额外组件和扩展功能模块,可以根据需要定制或者自行开发添加新功能 |
易于开发 | 代码简洁,与HTML语言结合度高,容易修改网页代码 |
方便易用 | PHP、Perl属于解释性语言,开发的程序不需要编译,可以直接移植使 |
安全和稳定 | 开源优势,发现问题能够很快解决 |
(5)编译安装的优点
① 具有较大的自由度,功能可定制;
② 可及时获得最新的软件版本;
③ 普遍适用于大多数Linux版本,便于一直使用。
(6)构建LAMP平台顺序
在构建LAMP平台时,各组件的安装顺序依次为:
表3 LAMP组件安装顺序
安装顺序 | 安装内容 | 组件环境 |
1 | Linux系统 |
|
2 | Apache服务器 | 对 Apache 的配置文件 httpd.conf 调整,用来确定 PHP的运行参数 |
3 | MySQL数据库 | |
4 | PHP环境 | 对 PHP的配置文件 php.ini调整,用来加载 libphp5.so 模块,以支持 PHP 网页。 |
其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通web服务器和数据库系统以协同工作。
(1)Apache概念
Apache(阿帕奇)是世界使用排名第一的Web服务器器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将PHP/Perl/Python等解释器编译到服务器中。
(2)Apache下载
官网地址:
Welcome! - The Apache HTTP Server Project
(3) Apache工作模式
工作模式:BS模式
工作端口:80
SSL端口:在80端口的基础上加上安全认证,即https
(4)Apache配置文件
表4 Apache配置文件
关键字 | 描述 |
ServerRoot | 表示apache的根目录 |
Listen | 监听端口 |
Include conf.modules.d/*.conf | 在这个路径下指定.conf文件,就会优先检查该目录,避免在修改源文件出现错误 |
Options Indexes FollowSymLinks | 目录浏览 |
User apache | 用户为apache |
Group apache | 组为apache |
ServerAdmin | apache的管理员,当网站出现情况时,apache会根据这个字段指定的管理员发送消息或邮件 |
AddDefaultCharset UTF-8 | apache支持的语言,默认为UTF-8 |
LoadModule | 加载动态模块 |
(5) apr
APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。在早期 的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。
(6) apr-util
apr-util该目录中也是包含了一些常用的开发组件。这些组件与apr目录下的相比,它们与apache的关系更加密切一些。比如存储段和存储段组,加密等等。
(1)httpd概念
httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。
(2))httpd工作模型与工作方式
工作模型 |
工作方式 |
prefork | 多进程模型,预先生成进程,一个请求用一个进程响应一个主进程负责生成n个子进程,子进程也称为工作进程。每个子进程处理一个用户请求,即使没有用户请求,也会预先生成多个空闲进程,随时等待请求到达,最大不会超过1024个 |
worker | 基于线程工作,一个请求用一个线程响应(启动多个进程,每个进程生成多个线程) |
event | 基于事件的驱动,一个进程处理多个请求 |
(3)httpd自带的工具程序
工具 | 功能 |
htpasswd | basic认证基于文件实现时,用到的帐号密码生成工具 |
apachectl | httpd自带的服务控制脚本,支持start,stop,restart |
apxs | 由httpd-devel包提供的,扩展httpd使用第三方模块的工具 |
rotatelogs | 日志滚动工具 |
suexec | 访问某些有特殊权限配置的资源时,临时切换至指定用户运行的工具 |
ab | apache benchmark,httpd的压力测试工具 |
(4)httpd程序环境
表5 httpd配置文件
文件/目录 | 功能 | |
/etc/httpd/conf/httpd.conf | 主配置文件 | |
/etc/httpd/conf.modules.d/*.conf | 模块配置文件 | |
/etc/httpd/conf.d/*.conf | 辅助配置文件 | |
/usr/lib64/httpd/modules/ | 模块文件路径 | |
/var/www/html | 站点文档目录 | |
/var/log/httpd/access_log | 访问日志 | |
/var/log/httpd/error_log | 错误日志 |
(1)构建方式
在同一台服务器中运行多个Web站点,其中每一个站点并不独立占用一台真正的计算机。
构建虚拟主机的三种方式:
表6 虚拟Web主机构建方式
方式 | 功能 |
基于域名 | 为每个虚拟主机使用不同的域名,但是其对应的 IP 地址是相同的。 |
基于IP地址 | 为每个虚拟主机使用不同的域名,且各自对应的 IP 地址也不相 同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛。 |
基于端口 | 这种方式并不使用域名、IP 地址来区分不同的站点内容,而是使用 了不同的TCP 端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才 能访问。 |
(1) 数据库概念
数据库(DB,DataBase),它是软件,安装在操作系统之上;SQL,可以存储大量的数据,500万以下,500万以上要做索引优化。作用是存储数据,管理数据。
数据库分类:
表7 数据库分类
类别 | 描述 |
关系型数据库:行、列(SQL) | MySQL、Oracle、Sql Server、DB2、SQLLite通过表和表之间,行和列之间的关系进行数据的存储 |
非关系型数据库:{key:value} (NoSQL:Not Only SQL) | Redis、MongoDB 对象存储,通过对象的自身属性来决定 |
DBMS(Database Management System) | 数据库的管理软件,科学有效地管理我们的数据。维护和获取数据MySQL,数据库管理系统 |
(2)MySQL概念
MySQL是一个关系型数据库管理系统,
MySQL是最好的RDBMS(Relational Database Management System,关系型数据库管理系统)应用软件之一,开源的数据库软件、体积小、速度快、总体拥有成本低。
(2)MySQL下载
官网:
MySQL :: Download MySQL Community Server
(3)登录MySQL
表8 登录MySQL
操作 | 命令 |
启动 | MySQL启动文件在/etc/init.d目录下,启动运行以下命令 /etc/init.d/mysql start |
停止 | /usr/bin/mysqladmin -u root -p shutdown |
登录 | mysql [-u username] [-h host] [-p password] [dbname] |
(4)MySQL配置文件
表9 MySQL配置文件
文件/目录 | 功能 |
/var/lib/mysql/ | 数据库目录 |
/usr/share/mysql (mysql.server命令及其配置文件) | 配置文件 |
/usr/bin/(mysql admin mysql dump等命令) | 相关命令 |
/etc/rc.d/init.d (启动脚本文件 mysql的目录) | 启动脚本 |
(5)MySQL常用命令
表10 MySQL命令
命令 | 功能 |
show databases; | 显示数据库 |
首先使用库:use mysql 显示数据库中的表: show tables |
显示数据库中的表 |
describe 表名; | 显示表的结构 |
select * from 表名 | 显示记录 |
create database + 数据库名; | 新建数据库 |
USE 库名; create table 表名(字段设定列表); |
建表 |
insert into | 增加记录 |
(1) PHP概念
PHP 即Hypertext Preprocessor(超文本预处理语言)的缩写,是一种服务器端的 HTML 嵌入式脚本语言。PHP 混合了 C 、java 、perl 的语法及部分自创的新语法,拥有更好的网页执行速度,更重要的是 PHP 支持绝大多数流行的数据库,在数据库层面的操作功能十分强大。
(2)下载
官网:
http://www.php.net
(3)PHP配置文件
/usr/local/php7/php.ini
(1)Apache安装
流程
表11 Apache安装流程
序号 |
操作 | 关键命令 | 文件 |
1 | 下载apache相关安装包➝ 服务器 |
rz -E | apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz |
2 | 登录到服务器安装apache相关依赖包和函数库 | yum -y install \ gcc \ gcc-c++ \ make \ pcre-devel \ expat-devel \ perl |
gcc 是C语言的编译器; gcc-c++ 是C++的编译器; make 是源代码编译器(源代码转换成二进制文件); pcre是一个Perl函数库,包括perl 兼容的正则表达式库; pcre-devel 是perl的接口开发包; expat-devel用于支持网站解析HTML、XML文件; perl是语言编译器 |
3 | 解压apache安装进行安装(安装前api api-util 拷贝到apache包中) | tar -zxvf apr-1.6.2.tar.gz mv apr-1.6.2 httpd-解压apache安装进行安装(安装前api api-util 拷贝到apache包中)2.4.29/srclib/apr |
apr 是Apache可移植运行库; api-util 包含了一些常用的开发组件 |
4 | 编译安装➝切换到apache解包路径下➝ 安装路径以及模块 |
cd /opt/httpd-2.4.29/
|
prefix指定 httpd 服务程序的安装路径; enable-so启用动态加载核心模块支持,使 httpd 具备进一步扩展功能的能力; enable-rewrite启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护; enable-charset-lite启动字符集支持,以便支持使用各种字符集编码的页面; enable-cgi启用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力 |
5 | 编译安装 | make -j 16 && make install | make - j CPU内核数 |
6 | 优化配置文件httpd服务 可执行程序文件存入路径环境变量的目录中便于系统识别软链接 | ln -s /usr/local/httpd/conf/httpd.conf 编译安装/etc/ |
|
7 | 为了启动服务方便,apache启动服务加入到service管理或者systemd系统管理 | cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd chkconfig --add httpd |
# chkconfig: 35 85 21 #description: Apache is a World Wide Web server |
8 | 配置Apache文件 ➝ httpd. conf |
vim /usr/local/httpd/conf/httpd.conf | #--52行--修改 #Listen 192.168.200.50:80 --197行--取消注释,修改 ServerName 192.168.10.80:80 --221行--默认首页存放路径 DocumentRoot "/usr/local/httpd/htdocs" 以后 有存储 --255行--默认首页文件名设置 DirectoryIndex index.html |
9 | 检查Apache配置文件 | httpd -t 或 apachectl -t |
|
10 | 可使用service或者systemctl进行管理 |
systemctl start httpd 或 service httpd start | |
11 | 检查apache监听端口 | netstat -antp l grep 80 或 lsof -i:80 |
②下载apache相关安装包➝ 服务器
③登录到服务器安装apache相关依赖包和函数库
④解压apache安装进行安装(安装前api api-util 拷贝到apache包中)
⑤编译安装➝切换到apache解包路径下➝安装路径以及模块
⑥编译安装
⑦优化配置文件httpd服务 可执行程序文件存入路径环境变量的目录中便于系统识别软链接
⑧为了启动服务方便,apache启动服务加入到service管理或者systemd系统管理
⑨配置Apache文件 ➝httpd. conf
vim /usr/local/httpd/conf/httpd.conf
⑨检查Apache配置文件
⑩可使用service或者systemctl进行管理
⑪ 检查apache监听端口
(2)MySQL安装
① 流程
表12 MySQL安装流程
序号 |
操作 | 关键命令 | 文件 |
1 | 下载MySQL相关安装包➝ 服务器 |
rz -E | mysql-5.7.17.tar.gz boost_1_59_0.tar.gz |
2 | 登录到服务器安装MySQL相关依赖包和函数库 | yum -y install \ gcc \ gcc-c++ \ ncurses \ ncurses-devel \ bison \ cmake |
ncurses 是字符终端下图形互动功能的动态库; ncurses-devel 是ncurses开发包; bison 是语法分析器; cmake 用来编译安装mysql |
3 | 创建程序用户管理➝ 解压MySQL安装进行安装 |
useradd -s /sbin/nologin mysql
|
|
4 | 编译安装➝切换到MySQL解包路径下➝ 安装路径以及模块 |
cd /opt/mysql-5.7.17/ cmake \ |
DCMAKE_INSTALL_PREFIX指定mysql的安装路径; DMYSQL_UNIX_ADDR指定mysql进程监听套接字文件(数据库连接文件)的存储路径; DSYSCONFDIR指定配置文件的存储路径; DSYSTEMD_PID_DIR指定进程文件的存储路径; DDEFAULT_CHARSET指定默认使用的字符集编码,如 utf8; DDEFAULT_COLLATION指定默认使用的字符集校对规则; DWITH_EXTRA_CHARSETSDWITH_INNOBASE_STORAGE_ENGINE指定支持其他字符集编码; DWITH_INNOBASE_STORAGE_ENGINE安装INNOBASE存储引擎; DWITH_ARCHIVE_STORAGE_ENGINE安装ARCHIVE存储引擎; DWITH_BLACKHOLE_STORAGE_ENGINE安装BLACKHOLE存储引擎 ; DWITH_PERFSCHEMA_STORAGE_ENGINE安装FEDERATED存储引擎 ; DMYSQL_DATADIR指定数据库文件的存储路径; DWITH_BOOST指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost; DWITH_SYSTEMD生成便于systemctl管理的文件; |
5 | 编译安装 | make -j 16 && make install | |
6 | 创建普通用户管理 |
useradd -s /sbin/nologin mysql
|
|
7 | 更改管理主/组 | chown -R mysql:mysql /usr/local/mysql/ chown mysql:mysql /etc/my.cnf |
|
8 | 配置MySQL文件➝ my.cnf |
vim /etc/my.cnf [client] [mysql] [mysqld] STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER, NO_AUTO_VALUE_ON_ZERO, NO_ZERO_IN_DATE,NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, PIPES_AS_CONCAT,ANSI_QUOTES |
client 是客户端设置; mysqld 是服务全局设置; user设置管理用户; basedir指定数据库的安装目录; datadir指定数据库文件的存储路径; port指定端口; character-set-server设置服务器字符集编码格式; socket指定数据库连接文件; bind-address设置监听地址; skip-name-resolve禁用DNS解析; max_connections设置mysql的最大连接数; default-storage-engine指定默认存储引擎; max_allowed_packet设置数据库接收的数据包大小的最大值; server-id指定服务ID号 |
9 | 设置环境变量,申明/宣告MySQL 命令便于系统识别 | echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile |
|
10 | 初始化数据库 | cd /usr/local/mysql/bin/
|
initialize-insecure生成初始化密码为空; user指定管理用户; basedir指定数据库的安装目录; datadir指定数据库文件的存储路径 |
11 | 为了启动服务方便,MySQL 启动服务加入到systemd系统管理➝ 可使用service或systemctl进行管理 |
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ systemctl daemon-reload systemctl start mysqld.service systemctl enable mysqld |
daemon-reload 刷新识别; start mysqld.service 开启服务; enable mysqld 开机自启动; |
12 | 检查MySQL监听端口 | netstat -antp l grep 3306 或 lsof -i:3306 |
|
13 | 测试数据库 | mysqladmin -u root -p password "123456" mysql> show databases; |
给root账号设置密码 |
②下载MySQL相关安装包➝ 服务器
③登录到服务器安装MySQL相关依赖包和函数库
④创建程序用户管理➝解压MySQL安装进行安装
useradd -s /sbin/nologin mysql
⑤编译安装➝切换到MySQL解包路径下➝安装路径以及模块
⑥编译安装
⑦创建普通用户管理
⑧更改管理主/组
chown mysql:mysql /etc/my.cnf
⑨配置MySQL文件➝my.cnf
⑩设置环境变量,申明/宣告MySQL 命令便于系统识别
⑪初始化数据库
⑫为了启动服务方便,MySQL 启动服务加入到systemd系统管理➝可使用service或systemctl进行管理
⑬检查MySQL监听端口
⑭测试数据库
(3)PHP安装
①流程
表13 PHP安装流程
序号 |
操作 | 关键命令 | 文件 |
1 | 下载PHP相关安装包➝ 服务器 |
rz -E | php-7.1.24.tar.gz |
2 | 登录到服务器安装PHP相关依赖包和函数库 | yum -y install \ gd \ libjpeg libjpeg-devel \ libpng libpng-devel \ freetype freetype-devel \ libxml2 libxml2-devel \ zlib zlib-devel \ curl curl-devel \ openssl openssl-devel |
安装GD库和GD库关联程序,用来处理和生成图片 |
3 | 解压PHP安装进行安装 | cd /opt
|
apr 是Apache可移植运行库; api-util 包含了一些常用的开发组件 |
4 | 编译安装➝切换到PHP解包路径下➝ 安装路径以及模块 |
./configure \ --prefix=/usr/local/php7 \ --with-apxs2=/usr/local/httpd/bin/apxs \ --with-mysql-sock=/usr/local/mysql/mysql.sock \ --with-config-file-path=/usr/local/php7 \ --with-mysqli \ --with-zlib \ --with-curl \ --with-gd \ --with-jpeg-dir \ --with-png-dir \ --with-freetype-dir \ --with-openssl \ --enable-mbstring \ --enable-xml \ --enable-session \ --enable-ftp \ --enable-pdo \ --enable-tokenizer \ |
prefix指定将 PHP 程序的安装路径; with-apxs2指定Apache httpd服务提供的apxs 模块支持程序的文件位置; with-mysql-sock指定mysql 数据库连接文件的存储路径; with-mysqli添加 MySQL 扩展支持 #mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定; with-zlib支持zlib功能,提供数据压缩; with-curl开启curl扩展功能,实现HTTP的Get下载和Post请求的方法; with-gd激活gd 库的支持; with-jpeg-dir激活jpeg 的支持; with-png-dir激活png 的支持; enable-mbstring启用多字节字符串功能,以便支持中文等代码; enable-xml开启扩展性标记语言模块; enable-session会话; enable-ftp文本传输协议; enable-pdo函数库; enable-tokenizer令牌解释器; enable-zip是ZIP压缩格式 |
5 | 编译安装 | make -j 16 && make install | |
6 | 配置PHP文件➝ php.ini |
cp /opt/php-7.1.24/php.ini-development /usr/local/php7/php.ini
|
--1170行--修改 mysqli.default_socket = /usr/local/mysql/mysql.sock --939行--取消注释,修改 date.timezone = Asia/Shanghai |
7 | 优化PHP服务 可执行程序文件存入路径环境变量的目录中便于系统识别软链接 | ln -s /usr/local/php7/bin/* /usr/local/bin/ |
|
8 | 配置Apache文件让Apache支持PHP ➝ httpd. conf |
vim /etc/httpd.conf | #添加index.php 255 256 DirectoryIndex index.html index.php 257 #在392行下方插入一下内容,让Apache可以支持.php的网页文件 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps ##检查156行默认支持php7的模块是否存在 LoadModule php7_module modules/libphp7.so |
9 | 创建、编辑php页面文件 | rm -rf /usr/local/httpd/htdocs/index.html vim /usr/local/httpd/htdocs/index.php |
phpinfo(); ?> |
10 | 可使用service或者systemctl进行管理 |
systemctl restart httpd.service | |
11 | 网页测试 | http://192.168.204.100/index.php |
②下载PHP相关安装包➝ 服务器
③登录到服务器安装PHP相关依赖包和函数库
④解压PHP安装进行安装
⑤编译安装➝切换到PHP解包路径下➝安装路径以及模块
⑥编译安装
make -j 16 && make install
完成
⑦配置PHP文件➝php.ini
⑧优化PHP服务 可执行程序文件存入路径环境变量的目录中便于系统识别软链接
⑨配置Apache文件让Apache支持PHP ➝httpd. conf
⑩创建、编辑php页面文件
⑪可使用service或者systemctl进行管理
systemctl restart httpd.service
⑫网页测试
(4)DISCUZ安装
①流程
表14 DISCUZ安装流程
序号 |
操作 | 关键命令 | 文件 |
1 | 创建一个数据库 | mysql -u root -p mysql> CREATE DATABASE bbs; mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123'; mysql>flush privileges; |
把bbs数据库里面所有表的权限授予给bbsuser,并设置密码; 刷新数据库; |
2 | 下载 DISCUZ相关安装包➝ 服务器 |
rz -E | Discuz_X3.4_SC_UTF8.zip |
3 | 解压 DISCUZ安装进行安装 |
unzip Discuz_X3.4_SC_UTF8.zip -d /opt/dis | |
4 | 上传站点更新包 | cd /opt/dis cp -r upload/ /usr/local/httpd/htdocs/bbs |
|
5 | 更改管理主/组 | cd /usr/local/httpd/htdocs/bbs chown -R daemon ./config |
|
6 | 准备数据库配置 |
数据库服务器: localhost #本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号 数据库名字: bbs 数据库用户名: bbsuser 数据库密码: admin123 管理员账号: admin 管理员密码: admin123 |
|
7 | 访问论坛 | http://192.168.204.100/bbs/install/ |
②创建一个数据库
mysql -u root -p
mysql> CREATE DATABASE bbs;
mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
mysql>flush privileges;
③下载DISCUZ相关安装包➝ 服务器
④解压 DISCUZ安装进行安装
⑤上传站点更新包
⑥更改管理主/组
⑦准备数据库配置
数据库服务器: localhost
数据库名字: bbs
数据库用户名: bbsuser
数据库密码: admin123
管理员账号: admin
管理员密码: admin123
⑧访问论坛
安装向导-同意
原因分析:
在虚拟机还在运行的情况下又去分配内存造成的。
解决方法:
关闭虚拟机,重新点击设置分配内存
表1 处理器性能
处理器数量 | 虚拟的CPU数量 |
每个处理器的内核数量 | 虚拟CPU的内核数 |
处理器内核总数 | =处理器数量 ✖ 每个处理器的内核数量 |
此处对应于真实物理机(或者叫宿主机) 的 CPU线程数(即逻辑处理器的数量)。
所以在设置的时候,处理器内核总数 < 逻辑处理器的数量 即可。
打开任务管理器,可以在任务栏右键选择任务管理器,然后点击“CPU”,就可以看到自己CPU的相关信息。
第一个为内核数量,第二个为逻辑处理器数量。
(一个CPU可以有多个内核,一个内核一般对应于一个线程,但是通过Intel的超线程技术,一个核心可以对应于两个线程,即可以并行处理两个任务,所以逻辑处理器的数量是内核数量的两倍)
表2 虚拟机CPU设置
物理机CPU数量 | 物理机CPU性能 | 虚拟机处理器数量 | 虚拟器每个处理器的内核数量 | 虚拟机处理器内核总数 |
分配方式 |
1 | 24核 32线程 |
1 | 16 |
16 |
虚拟机 的 处理器内核总数设置为物理机线程数1/2) |
1 | 24核 32线程 |
2 | 8 | 16 | 处理器数量:每个处理器的内核数量=1:4 |
查看CPU为2核
调整升级到16核
虚拟机内存配置取决于主机内存和虚拟机运行程序需要的内存。虚拟机内存肯定是要小于主机内存的,但很显然,也不是越小越好,否则虚拟机上的程序根本运行不起来,就会出现进程被killed的情况。
虚拟机内存是共享了一部分主机的内存的,设置了虚拟机内存,其实是设置了虚拟机的最大内存,并不是每次虚拟机里执行任务都要消耗这么多内存。已经分配给虚拟机,但是虚拟机没用到的内存实际上是让主机在需要的时候使用的,也就是分配给虚拟机的内存,虚拟机如果没用,主机还是可以用的。
打开任务管理器,可以在任务栏右键选择任务管理器,然后点击“内存”,就可以看到自己内存的相关信息。
表3 虚拟机内存设置
物理机内存 | 虚拟机内存 | 分配方式 |
32G | 16G | 按照主机和虚拟机对半分 |
32G | 20G | 按照主机和虚拟机1:2进行分配。 |
查看内存为4G
调整升级到16G
原因分析:配置文件无法监听地址
解决方法:修改配置文件
原因分析:多个mysql.sock运行
解决方法:重启服务
LAMP架构组成:Linux(平台)、Apache(前台)、MySQL(后台)、PHP(中间连接)
Apache 主配置文件:/etc/httpd/conf/httpd.conf
命令文件:/usr/local/httpd/bin/*
站点文档目录:/var/www/html/
MySQL主配置文件:/etc/my.cnf
命令文件:/usr/local/mysql/bin
PHP 主配置文件: /usr/local/php7/php.ini
站点文档目录:/usr/local/httpd/htdocs/