企业平台架构--源码编译安装部署LAMP 平台

前言

Linux操作系统之所以能够在十余年的时间里发展壮大以至于风靡全球,其开放源代码的特性是很重要的原因之一,及Linux操作系统中包括内核在内的所有软件都可以获得源代码,并且可以经过定制修改后编译安装。

一、LAMP 平台与编译安装

1.1、LAMP 平台概述

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

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

A:Apache

M:MySQL

P:PHP

1.2、构建LAMP 平台顺序

在构建LAMP平台时,各组件的安装顺序依次为Linux,Apache,MySQL,PHP

其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通web服务器和数据库系统以协同工作

1.3、编译安装的优点

具有较大的自由度,功能可定制

扫描二维码关注公众号,回复: 11672310 查看本文章

可及时获得最新的软件版本

普遍适用于大多数Linux版本,便于一直使用

1.4、编译安装的基本过程

在这里插入图片描述
(1)解包
开源软件的源代码包一般为TarBall形式,扩展名为“.tar.gz”或“.tar.bz2”,都可以使用tar命令进行解压。
在Linux系统中,通常将各种软件的源代码目录保存到“/sur/src”目录中,便于集中管理。

解包
习惯上将软件包解压到/sur/src/目录中
解包后源代码文件位置:/usr/src/软件名-版本号/

(2)配置

在编译应用程序之前,需要进入源代码目录,对软件的安装目录,功能选择等参数进行配置。
在Linux系统中通过源代码方式安装软件时,也可以将所有程序文件安装到同一个文件夹,当需要卸载软件时,只需将该文件夹删除即可。

配置
配置工作通常使用源码目录中的configure脚本完成
执行“./configure --help”可查看帮助
典型的配置选项:–prefix=软件安装目录(指定软件包安装的目标文件夹)

(3)编译

编译的过程主要是根据Makefile文件内的配置信息(若上一步的配置操作失败,将无法进行编译),将源代码文件进行编译而生成二进制的程序模块,动态链接库,可执行文件等。
配置完成后,只需要在源代码目录中执行“make”命令即可执行编译操作
(4)安装

编译完成后,就可以执行“make install”命令将软件的执行程序,配置文件,帮助文档等相关文件复制到Linux系统中了,也就是应用程序的最后“安装”过程。同样是在源代码目录中执行命令。

二、Apache 网站服务基础

2.1、Apache 简介

“Apache HTTP Server”是开源软件项目的杰出代表,基于标准的 HTTP 网络协议提供
网页浏览服务,在 Web 服务器领域中长期保持着超过半数的份额。Apache 服务器可以运
行在 Linux、UNIX、Windows 等多种操作系统平台中。

2.1.1、Apache 起源

Apache 服务器是针对之前出现的若干个 Web 服务器程序进行整合、完善后形成的软
件,其名称来源于“A Patchy Server”,意思是“基于原有 Web 服务程序的代码进行修改(补
丁)后形成的服务器程序”。
1995 年, Apache 服务程序发布了 1.0 版本,之后一直由“Apache Group”负责该项目
的管理和维护;直到 1999 年,在“Apache Group”的基础上成立了 Apache 软件基金会
(Apache Software Foundation,ASF)。目前,Apache 项目一直由 ASF 负责管理和维护。
ASF 是非盈利性质的组织,最初只负责“Apache Web”服务器项目的管理,随着 Web
应用需求的不断扩大,ASF 逐渐增加了许多与 Web 技术相关的开源软件项目,因此 Apache
现在不仅仅代表着 Web 服务器,更广泛地代表着 ASF 管理的众多开源软件项目。ASF 基
金会的官方网站是 http://www.apache.org/。
“Apache HTTP Server”是 ASF 旗下著名的软件项目之一,其正式名称是“httpd”,也就
是历史上的 Apache 网站服务器。在后续内容中,若未作特殊说明,使用“Apache”或者“httpd”,
均指的是“Apache HTTP Server”。

2.1.2、Apache 主要特点

1、开放源代码:这是 Apache 服务器的重要特性之一,也是其他特性的基础。
Apache 服务程序由全世界的众多开发者共同维护,并且任何人都可以自由使
用,这充分体现了开源软件的精神。

2、跨平台应用:这个特性得益于 Apache 的源代码开放。Apache 服务器可以运
行在绝大多数软硬件平台上,所有 UNIX 操作系统都可以运行 Apache 服务
器,甚至 Apache 服务器可以良好地运行在大多数 Windows 系统平台中。
Apache 服务器的跨平台特性使其具有被广泛应用的条件。

3、支持各种Web 编程语言:Apache服务器可支持的网页编程语言包括Perl、PHP、
Python、Java 等,甚至微软的 ASP 技术也可以在 Apache 服务器中使用。支
持各种常用的 Web 编程语言使 Apache 具有更广泛的应用领域。

4、模块化设计:Apache 并没有将所有的功能集中在单一的服务程序内部,而是
尽可能地通过标准的模块实现专有的功能,这为 Apache 服务器带来了良好的
扩展性。其他软件开发商可以编写标准的模块程序,从而添加 Apache 本身
并不具有的其他功能。

5、运行非常稳定:Apache 服务器可用于构建具有大负载访问量的 Web 站点,很
多知名的企业网站都使用 Apache 作为 Web 服务软件。

6、良好的安全性:Apache 服务器具有相对较好的安全性,这是开源软件共同具
有的特性。并且,Apache 的维护团队会及时对已发现的漏洞提供修补程序,
为 Apache 的所有使用者提供尽可能安全的服务器程序。

2.2、安装httpd 服务器

2.2.1、环境准备

(1)搭建YUM仓库(前面博客有详写)
(2)为了避免发生端口冲突、程序冲突等现象,建议先卸载使用RPM方式安装的httpd

[root@localhost ~]# rpm -e httpd --nodeps

2.2.2、源码编译及安装

(1)解包
安装Apache所需软件
apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz
httpd-2.4.29.tar.gz
将上面3个包传到opt目录下

[root@localhost ~]# cd /opt
[root@localhost opt]# tar xf apr-1.6.2.tar.gz
[root@localhost opt]# tar xf apr-util-1.6.0.tar.gz
[root@localhost opt]# tar xf httpd-2.4.29.tar.bz2
[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

安装环境

[root@localhost opt]# yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl

(2)配置

[root@localhost opt]# cd /opt/httpd-2.4.29/
[root@localhost httpd-2.4.29]# ./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi

配置模块解释
–prefix:指定将 httpd 服务程序安装到哪个目录下,如/usr/local/httpd
–enable-so:启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力。
–enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。
–enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网
–enable-cgi:启用 CGI 脚本程序支持,便于扩展网站的应用访问能力。
(3)编译及安装

[root@localhost httpd-2.4.29]# make && make install

2.2.3、优化执行路径

[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/

[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin/

2.2.4、添加httpd 系统服务

在/lib/systemd/system/目录下,建立一个以.service 结尾的单元(unit)配置文件,
用于控制由 systemd 管理或监控的 httpd 服务

[root@localhost ~]# cd /lib/systemd/system/
[root@localhost system]# vim httpd.service
[Unit]
Description=The Apache HTTP Server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart= /usr/local/bin/apachectl $OPTIONS
ExecrReload= /bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
[root@localhost system]# systemctl start httpd.service
[root@localhost system]# systemctl enable httpd.service         
[root@localhost system]# systemctl is-enabled httpd.service

2.2.5、验证

在这里插入图片描述

三、MySQL 服务

3.1、MySQL 概述

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。

MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。

MySQL是一个真正的多线程,多用户的SQL数据库服务,凭借其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。

3.2、MySQL 的编译安装

3.2.1、环境准备

[root@localhost ~]# yum install ncurses-devel autoconf cmake -y
[root@localhost ~]# useradd -s /sbin/nologin  mysql

上传mysql-boost-5.7.20.tar.gz到opt目录下

[root@localhost ~]# cd /opt
[root@localhost ~]# tar xf mysql-boost-5.7.20.tar.gz
[root@localhost ~]# cd /opt/mysql-5.7.20/

3.2.2、cmake 配置

[root@localhost mysql-5.7.20]# 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_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=boost \
-DWITH_SYSTEMD=1

配置选项含义
1、DCMAKE_INSTALL_PREFIX:指定将 mysql 数据库程序安装到某目录下,
如目录/usr/local/ mysql。
2、DSYSCONFDIR:指定初始化参数文件目录
3、DDEFAULT_CHARSET:指定默认使用的字符集编码,如 utf8。
4、DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8_general_ci
是适用于 UTF-8 字符集的通用规则。
5、DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码。

3.2.3、编译安装

[root@localhost mysql-5.7.20]# make && make install

3.2.4、安装后的其他调整

3.2.4.1、数据库目录进行权限调整
[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql/
3.2.4.2、建立调整配置文件
[root@localhost ~]# vi /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

[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
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
3.2.4.3、设置环境变量
[root@localhost ~]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@localhost ~]# echo 'export PATH' >> /etc/profile
[root@localhost ~]# source /etc/profile
3.2.4.4、初始化数据库
[root@localhost ~]# cd /usr/local/mysql/
[root@localhost mysql]# bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
3.2.4.5、编辑启动脚本
[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@localhost mysql]# systemctl enable mysqld
[root@localhost mysql]# systemctl start mysqld
3.2.4.6、设置用户密码
[root@localhost mysql]# mysqladmin -u root -p password "123456"	'//给root用户设置密码'
'//mysqladmin -u用户名 -p旧密码 password 新密码'
Enter password: 	'//原本密码为空,直接回车即可'
Warning: Using a password on the command line interface can be insecure.
[root@localhost mysql]# mysql -u root -p
Enter password: 	'//输入刚设置的密码123456'
...省略内容
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

mysql> exit
Bye

四、构建PHP 运行环境

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域

PHP支持绝大多数流行的数据库,在数据库层面的操作功能十分强大,而且能够支持Unix,Windows,Linux等多种操作系统

4.1、编译安装PHP

4.1.1、环境准备并配置

[root@localhost ~]# yum -y install \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

上传php-7.1.10.tar.bz2包到opt目录下

[root@localhost ~]#  cd /opt
[root@localhost opt]#  tar xjvf php-7.1.10.tar.bz2
[root@localhost php-7.1.10]#  ./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--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 \
--enable-zip

4.1.2、编译安装

[root@localhost php-7.1.10]# make && make install

4.1.3、编辑配置文件

[root@localhost php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini
[root@localhost php-7.1.10]# vi /usr/local/php/lib/php.ini
mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai

/usr/local/php/bin/php -m //验证安装的模块

vi /etc/httpd.conf //在合适位置新增

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

DirectoryIndex index.php index.html

4.1.4、重启Apache 服务,配置PHP 首页

[root@localhost ~]# rm -f /usr/local/httpd/htdocs/index.html
[root@localhost ~]# vi /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>
[root@localhost ~]# systemctl restart httpd

4.1.5、验证

在这里插入图片描述

4.1.6、测试数据库工作是否正常

[root@localhost ~]# mysql -u root -p
mysql> CREATE DATABASE myadm;
mysql> GRANT all ON myadm.* TO 'myadm'@'%' IDENTIFIED BY 'admin123';
mysql> GRANT all ON myadm.* TO 'myadm'@'localhost' IDENTIFIED BY 'admin123';
mysql> flush privileges;
mysql> exit
[root@localhost ~]# vi /usr/local/httpd/htdocs/index.php
<?php
$link=mysqli_connect('20.0.0.23','myadm','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

在这里插入图片描述

五、LAMP 架构应用实例

5.1、部署phpMyAdmin 系统

phpMyAdmin是一个使用PHP语言编写,用来管理MySQL数据库的Web应用系统。通过该套件的网页界面,几遍是对SQL语句不太熟悉的人,也能够非常容易的对MySQL数据库进行管理和维护。

5.1.1、解包

上传phpMyAdmin-4.7.6-all-languages.zip到opt下面

[root@localhost ~]# cd /opt
[root@localhost opt]# unzip phpMyAdmin-4.7.6-all-languages.zip -d /opt/

5.1.2、建立配置文件

[root@localhost opt]# mv phpMyAdmin-4.7.6-all-languages /usr/local/httpd/htdocs/myadm
[root@localhost opt]# cd /usr/local/httpd/htdocs/myadm
[root@localhost myadm]# cp config.sample.inc.php config.inc.php
[root@localhost myadm]# vi config.inc.php
$cfg['Servers'][$i]['host'] = '127.0.0.1';   //把localhost 改成IP 31行

5.1.3、访问phpMyAdmin 的Web 界面

在这里插入图片描述

5.2、使用phpMyAdmin 系统

使用phpMyAdmin 系统时,应先通过MySQL服务器中授权的数据库用户进行登录(如我们这次的就是用户root,密码123456),认证成功后可以看到管理界面,
在这里插入图片描述

5.2.1、创建新的库

在这里插入图片描述

5.2.2、表及数据记录的管理

选择指定库中的表,可以分别进行浏览数据、修改表结构、搜索数据、插入数据等操作

5.2.3、直接执行MySQL 查询语句

单击右侧的“SQL”标签,可以打开SQL查询窗口。在该窗口中,可以直接输入MySQL操作语句,并通过单击右下方的“执行”按钮来完成相应的管理任务。

猜你喜欢

转载自blog.csdn.net/weixin_48191211/article/details/108320638