Web服务器群集:部署LAMP平台

目录

一、理论

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平台

(1)概念

LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整台系统和相关软件,能够提供动态web站点服务及其应用开发环境。

LAMP是一个缩写词,具体包括Linux操作系统,Apache网站服务器,MySQL数据库服务器,PHP(或perl,Python)网页编程语言。

(2)原理图

Web服务器群集:部署LAMP平台_第1张图片

(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服务器和数据库系统以协同工作。

2.Apache网址服务基础

(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的关系更加密切一些。比如存储段和存储段组,加密等等。

2.httpd服务器的基本配置

(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 错误日志

3.构建虚拟Web主机

(1)构建方式

在同一台服务器中运行多个Web站点,其中每一个站点并不独立占用一台真正的计算机。
构建虚拟主机的三种方式:

表6 虚拟Web主机构建方式

方式 功能
基于域名 为每个虚拟主机使用不同的域名,但是其对应的 IP 地址是相同的。
基于IP地址 为每个虚拟主机使用不同的域名,且各自对应的 IP 地址也不相
同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛。
基于端口 这种方式并不使用域名、IP 地址来区分不同的站点内容,而是使用
了不同的TCP 端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才
能访问。

4.MySQL服务

  (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 增加记录

5.构建PHP运行环境

(1) PHP概念

PHP 即Hypertext Preprocessor(超文本预处理语言)的缩写,是一种服务器端的 HTML 嵌入式脚本语言。PHP 混合了 C 、java 、perl 的语法及部分自创的新语法,拥有更好的网页执行速度,更重要的是 PHP 支持绝大多数流行的数据库,在数据库层面的操作功能十分强大。

(2)下载

官网:

 http://www.php.net

(3)PHP配置文件

    /usr/local/php7/php.ini

二、实验

1.LAMP架构+DISCUZ论坛应用

(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
tar -zxvf apr-util-1.6.0.tar.gz

mv apr-1.6.2 httpd-解压apache安装进行安装(安装前api api-util 拷贝到apache包中)2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

apr 是Apache可移植运行库;

api-util 包含了一些常用的开发组件

4

编译安装➝切换到apache解包路径下➝

安装路径以及模块

cd /opt/httpd-2.4.29/


./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
 

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/
ln -s /usr/local/httpd/bin/* /usr/local/bin/

7 为了启动服务方便,apache启动服务加入到service管理或者systemd系统管理

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vim /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相关依赖包和函数库

 Web服务器群集:部署LAMP平台_第2张图片

解压apache安装进行安装(安装前api api-util 拷贝到apache包中)

Web服务器群集:部署LAMP平台_第3张图片

Web服务器群集:部署LAMP平台_第4张图片

编译安装➝切换到apache解包路径下➝安装路径以及模块

Web服务器群集:部署LAMP平台_第5张图片

Web服务器群集:部署LAMP平台_第6张图片

编译安装

优化配置文件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


tar -zxvf mysql-5.7.17.tar.gz -C /opt
tar -zxvf boost_1_59_0.tar.gz -C /usr/local/
mv /usr/local/boost_1_59_0 /usr/local/boost

4

编译安装➝切换到MySQL解包路径下➝

安装路径以及模块

cd /opt/mysql-5.7.17/

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1

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]                                    
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock    

[mysql]                                    
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
auto-rehash

[mysqld]
user = mysql 
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306    
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,

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
source /etc/profile

10 初始化数据库

cd /usr/local/mysql/bin/


./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

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解包路径下➝安装路径以及模块

Web服务器群集:部署LAMP平台_第7张图片

 

编译安装

创建普通用户管理

更改管理主/组

Web服务器群集:部署LAMP平台_第8张图片

chown mysql:mysql /etc/my.cnf

配置MySQL文件➝my.cnf

Web服务器群集:部署LAMP平台_第9张图片

设置环境变量,申明/宣告MySQL 命令便于系统识别

⑪初始化数据库

Web服务器群集:部署LAMP平台_第10张图片

 Web服务器群集:部署LAMP平台_第11张图片

⑫为了启动服务方便,MySQL 启动服务加入到systemd系统管理➝可使用service或systemctl进行管理

检查MySQL监听端口

  测试数据库

Web服务器群集:部署LAMP平台_第12张图片

 Web服务器群集:部署LAMP平台_第13张图片

(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


tar zxvf php-7.1.24.tar.gz

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


vim /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相关依赖包和函数库

Web服务器群集:部署LAMP平台_第14张图片

解压PHP安装进行安装

编译安装➝切换到PHP解包路径下➝安装路径以及模块

Web服务器群集:部署LAMP平台_第15张图片

 安装完成Web服务器群集:部署LAMP平台_第16张图片

编译安装


make -j 16 && make install

完成

Web服务器群集:部署LAMP平台_第17张图片

配置PHP文件➝php.ini

 

Web服务器群集:部署LAMP平台_第18张图片

优化PHP服务 可执行程序文件存入路径环境变量的目录中便于系统识别软链接

配置Apache文件让Apache支持PHP ➝httpd. conf

 

 

 检查存在

创建、编辑php页面文件

 Web服务器群集:部署LAMP平台_第19张图片

可使用service或者systemctl进行管理

systemctl restart httpd.service

网页测试

Web服务器群集:部署LAMP平台_第20张图片

(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
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data

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

访问论坛

安装向导-同意

Web服务器群集:部署LAMP平台_第21张图片

 安装向导-开始安装Web服务器群集:部署LAMP平台_第22张图片

Web服务器群集:部署LAMP平台_第23张图片

 安装向导-安装数据库Web服务器群集:部署LAMP平台_第24张图片

 安装向导-完成Web服务器群集:部署LAMP平台_第25张图片

三、问题

1.虚拟机内存分配上限问题,内存上限只能加到3G。

原因分析:

在虚拟机还在运行的情况下又去分配内存造成的。

Web服务器群集:部署LAMP平台_第26张图片

解决方法:

关闭虚拟机,重新点击设置分配内存 

Web服务器群集:部署LAMP平台_第27张图片

2.虚拟机CPU如何设置才更加合理

表1 处理器性能

处理器数量 虚拟的CPU数量
每个处理器的内核数量 虚拟CPU的内核数
处理器内核总数 =处理器数量 ✖ 每个处理器的内核数量

此处对应于真实物理机(或者叫宿主机) 的 CPU线程数(即逻辑处理器的数量)。

所以在设置的时候,处理器内核总数 < 逻辑处理器的数量 即可。

打开任务管理器,可以在任务栏右键选择任务管理器,然后点击“CPU”,就可以看到自己CPU的相关信息。

Web服务器群集:部署LAMP平台_第28张图片

第一个为内核数量,第二个为逻辑处理器数量。

(一个CPU可以有多个内核,一个内核一般对应于一个线程,但是通过Intel的超线程技术,一个核心可以对应于两个线程,即可以并行处理两个任务,所以逻辑处理器的数量是内核数量的两倍)

表2 虚拟机CPU设置

物理机CPU数量 物理机CPU性能 虚拟机处理器数量 虚拟器每个处理器的内核数量

虚拟机处理器内核总数

      分配方式
1

  24核

32线程

     1

    16

     16

虚拟机 的 处理器内核总数设置为物理机线程数1/2)
1

  24核

32线程

     2      8      16 处理器数量:每个处理器的内核数量=1:4

查看CPU为2核

Web服务器群集:部署LAMP平台_第29张图片

调整升级到16核

 Web服务器群集:部署LAMP平台_第30张图片

3.虚拟机内存如何设置才更加合理

虚拟机内存配置取决于主机内存和虚拟机运行程序需要的内存。虚拟机内存肯定是要小于主机内存的,但很显然,也不是越小越好,否则虚拟机上的程序根本运行不起来,就会出现进程被killed的情况。

虚拟机内存是共享了一部分主机的内存的,设置了虚拟机内存,其实是设置了虚拟机的最大内存,并不是每次虚拟机里执行任务都要消耗这么多内存。已经分配给虚拟机,但是虚拟机没用到的内存实际上是让主机在需要的时候使用的,也就是分配给虚拟机的内存,虚拟机如果没用,主机还是可以用的。

打开任务管理器,可以在任务栏右键选择任务管理器,然后点击“内存”,就可以看到自己内存的相关信息。

Web服务器群集:部署LAMP平台_第31张图片

表3 虚拟机内存设置

物理机内存 虚拟机内存 分配方式
32G 16G 按照主机和虚拟机对半分
32G 20G 按照主机和虚拟机1:2进行分配。

查看内存为4G

 调整升级到16G

4.httpd启动报错

原因分析:配置文件无法监听地址

 解决方法:修改配置文件

5.mysql登录失败

原因分析:多个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/

你可能感兴趣的:(服务器,linux,apache)