源码编译构建LAMP架构

一、LAMP架构简介

LAMP 架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和
相关软件,能够提供动态 Web 站点服务及其应用开发环境。LAMP 是一个缩写词,具
体包括 Linux 操作系统、Apache 网站服务器、MySQL 数据库服务器、PHP(或 Perl、
Python)网页编程语言。

二、Apache简介和特点

1、简介

Apache HTTP Server是开源软件项目的杰出代表,基于标准的 HTTP 网络协议提供网页浏览服务,在 Web 服务器领域中长期保持着超过半数的份额。Apache 服务器可以运行在 Linux、UNIX、Windows 等多种操作系统平台中。
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)、开放源代码:这是 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 的所有使用者提供尽可能安全的服务器程序。

三、编译安装Apache

3.1、安装Apache所需软件

apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz
httpd-2.4.29.tar.gz

将上面3个包传到opt目录下

3.2、解压apr跨平台组件包和httpd源码包到当前目录下;并将跨平台组件包移动到源码包srclib目录下

tar zxf apr-1.6.2.tar.gz
tar zxf apr-util-1.6.0.tar.gz
tar jxf httpd-2.4.29.tar.bz2

mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util 

3.3、安装环境

yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl

依赖环境包说明

gcc 		###C语言的编译器
gcc-c++ 		###C++的编译器
make 		###源代码编译(源代码转换成二进制文件)
pcre-devel	###支持正则表达式
expat-devel	###网站解析HTML文件
perl		###perl编译器

3.4、configure配置

cd /opt/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.5、编译及安装

make && make install    

###先make -j3 然后make install -j3是你核心数,最大不要超过虚拟机的核心数

3.6、优化执行路径

ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/

3.7、修改配置文件

vi /usr/local/httpd/conf/httpd.conf
ServerName www.test.top:80

3.8、启动服务

systemctl stop firewalld   ##关闭防火墙
setenforce 0   ##关闭核心防护
systemctl start httpd   ##利用service启动apache服务
netstat -napt |grep 80  ##查看httpd 80端口,开启成功

四、编译安装Mysql

4.1、安装环境

yum -y install \
ncurses \
ncurses-devel \
bison \
cmake

4.2、添加用户mysql,专门用来管理进程(程序型用户,禁止登录shell)

useradd -s /sbin/nologin  mysql

4.3、上传安装包到/opt目录下并解压缩

cd /opt
tar zxf mysql-boost-5.7.20.tar.gz

4.4、cmake配置

cd /opt/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、DMYSQL_UNIX_ADDR:指定套接字文件的存储路径,数据库连接的文件
3、DSYSCONFDIR:指定初始化参数文件目录
3、DDEFAULT_CHARSET:指定默认使用的字符集编码,如 utf8。
5、DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8_general_ci 是适用于 UTF-8 字符集的通用规则。
6、DWITH_INNOBASE_STORAGE_ENGINE=1 :安装INNOBASE存储引擎
7、DWITH_ARCHIVE_STORAGE_ENGINE=1 :安装ARCHIVE存储引擎 
8、DWITH_BLACKHOLE_STORAGE_ENGINE=1 :安装ARCHIVE存储引擎 
9、DWITH_PERFSCHEMA_STORAGE_ENGINE :安装FEDERATED存储引擎 

4.5、编译安装

make && make install

4.6、数据库目录进行权限调整

chown -R mysql:mysql /usr/local/mysql/

4.7、建立调整配置文件

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

4.8、调整配置文件权限

chown mysql:mysql /etc/my.cnf

4.9、设置环境变量

echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile

4.10、初始化数据库

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

4.11、编辑启动文件

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

4.12、启动数据库并查看状态

systemctl start mysqld
systemctl status mysqld
netstat -anpt | grep 3306

4.13、设置root登陆并设置密码

mysqladmin -u root -p password "abc123"
刚开始没密码是空的直接回车,然后输入密码abc123,在此确认abc123,这是在root账户下运行的

4.14、登陆

mysql -u root -p 

五、编译安装PHP环境

5.1、安装环境

yum -y install \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

5.2、上传文件至/opt目录下并解压缩

cd /opt
tar jxf php-7.1.10.tar.bz2

5.3、configure配置

cd 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

5.4、编译详解

1、prefix=/usr/local/php 			###指定将 PHP 程序安装到哪个目录下
2、with-apxs2=/usr/local/httpd/bin/apxs 	###设置 Apache HTTP Server 提供的 apxs 模块支持程序的文件位置
3、with-mysql-sock=/usr/local/mysql/mysql.sock 	###指定mysql的mysql.sock位置
4、with-mysqli 	###mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。
5、with-zlib				###支持zlib功能--压缩流
6、with-curl				###开启curl扩展功能
libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。PHP中使用cURL实现Get和Post请求的方法
7、with-gd				###激活gd库的支持
8、with-jpeg-dir 				###要激活 jpeg 的支持
9、with-png-dir				###要激活png的支持
10、enable-mbstring 			###启用多字节字符串功能,以便支持中文等代码。

5.5、编译安装

make && make install

5.6、复制php.ini-development开发样板

cp /php-7.1.10/php.ini-development /usr/local/php/lib/php.ini

5.7、修改php.ini-development开发样板

vi /usr/local/php/lib/php.ini
mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai

5.8、修改Apache配置文件

vi /etc/httpd.conf 

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

DirectoryIndex index.php index.html

5.9、修改主页内容

rm -f /usr/local/httpd/htdocs/index.html
vi /usr/local/httpd/htdocs/index.php

<?php
phpinfo();
?>

5.10、重启Apache服务

systemctl restart httpd

六、编译安装phpMyadmin

6.1、上传phpMyadmin压缩包至/opt目录下并解压缩

cd /opt
unzip phpMyAdmin-4.7.6-all-languages.zip -d /opt/

6.2、将内容拷贝至Apache服务站点主页

mv /opt/phpMyAdmin-4.7.6-all-languages /usr/local/httpd/htdocs/myadm

6.3、修改服务站点

cd /usr/local/httpd/htdocs/myadm
cp config.sample.inc.php config.inc.php

vi config.inc.php

$cfg['Servers'][$i]['host'] = '127.0.0.1'; //把localhost 改成IP

6.4、验证
在浏览器输入:http://192.168.73.40(自己的IP)/myadm
使用root 以及前面为root配置的密码登录管理系统。可以对数据库进行管理操作了

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值