源码编译构建LAMP服务

Windows Windows 2个月前 (08-15) 11次浏览 未收录 0个评论 扫描二维码

源码编译构建LAMP服务

####LAMP介绍####

LAMP 架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和

相关软件,能够提供动态 Web 站点服务及其应用开发环境。LAMP 是一个缩写词,具

体包括 Linux 操作系统、Apache 网站服务器、MySQL 数据库服务器、PHP(或 Perl、

Python)网页编程语言。本章将以源码编译的方式搭建 LAMP 环境,能够满足企业定

制化的需求。

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

其中 Apache 和 MySQL 的安装并没有严格的顺序;而 PHP 环境的安装一般放到最后,

负责沟通 Web 服务器和数据库系统以协同工作。

####Apache 简介####

“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”。

####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 的所有使用者提供尽可能安全的服务器程序。

×××LAMP实验

实验环境:

1.虚拟机ip 192.168.32.20 ——————vm1与主机相连。内存3G(不得少于2G)

关闭核心防护,关闭防火墙,搭建以光盘为源的yum仓库。

2.需要安装的几个软件包:

Apache

源码编译构建LAMP服务
源码编译构建LAMP服务
源码编译构建LAMP服务

mysql

源码编译构建LAMP服务

Php

源码编译构建LAMP服务
源码编译构建LAMP服务

实验规划:

1.搭建apache服务

2.搭建mysql服务

3.构建PHP运行环境

4.部署phpmyadmin系统

实验步骤:

1.实验环境初步设置

[root@localhost ~]# systemctl stop firewalld ###零时关闭防火墙

[root@localhost ~]# systemctl disable firewalld ###永久关闭防火墙

Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

[root@localhost ~]# setenforce 0 ###零时关闭核心防护

[root@localhost yum.repos.d]# sed -i ‘/SELINUX/s/=[a-z]/=disabled/g’ /etc/sysconfig/selinux

###永久关闭核心防护

搭yum仓库

[root@localhost ~]# mount /dev/cdrom /mnt ###挂载光盘

mount: /dev/sr0 写保护,将以只读方式挂载

[root@localhost ~]# cd /etc/yum.repos.d/

[root@localhost yum.repos.d]# mkdir jlh

[root@localhost yum.repos.d]# mv C jlh ###将里面的配置文件移到jlh文件夹里

[root@localhost yum.repos.d]# cp jlh/CentOS-Base.repo local.repo

[root@localhost yum.repos.d]# vi local.repo

[centos]

name=centos

baseurl=file:///mnt ###其yum下载源未mnt下

gpgcheck=0

enabled=1

#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

2.搭建apache服务

(1)将apache的服务三个包上传到opt目录下面

源码编译构建LAMP服务
源码编译构建LAMP服务

(2)解压压缩包

[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 ###将该压缩文件解压到当前目录下面

查看

源码编译构建LAMP服务

(3)将安装http所需要的插件移到http/scrlib目录中

[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr

###将解压好的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

###将解压好的apr-util-1.6.0 插件移到httpd-2.4.29/srclib目录下的/apr-util 文件中

(4)配置(自定义个性化配置)

[root@localhost httpd-2.4.29]# ./configure \

–prefix=/usr/local/httpd \

–enable-so \

–enable-rewrite \

–enable-charset-lite \

–enable-cgi

./configure \ ###配置你的安装选项,生成编译时所需的Makefile文件

–prefix=/usr/local/httpd \ ###指定将httpd程序安装到/usr/local/httpd目录下

–enable-so \ ###启用动态加载模块功能,使 httpd 具备进一步扩展功能的能力。

–enable-rewrite \ ###启用网页地址重写功能,用于网站优化及目录迁移

–enable-charset-lite \ ###启用字符集支持,以便支持使用各种字符集编码的网页

–enable-cgi ###启用CGI脚本程序支持,便于扩展网站的应用访问能力

(5)编译及安装

[root@localhost httpd-2.4.29]# make -j2 ###编译,-j2,双线程编译,安装起来更快。

源码编译构建LAMP服务

[root@localhost httpd-2.4.29]# make install ###安装

源码编译构建LAMP服务

(6)优化执行路径

执行程序文件的原路径不在PATH环境变量中,做个软链接使其可以执行

[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/

[root@localhost httpd-2.4.29]# httpd -v ###查看版本

Server version: Apache/2.4.29 (Unix)

Server built: Feb 21 2019 06:12:43

(7)将 httpd 服务添加到系统服务中

[root@localhost httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

[root@localhost httpd-2.4.29]# vi /etc/init.d/httpd ###编辑配置文件

源码编译构建LAMP服务

[root@localhost httpd-2.4.29]# chkconfig –add httpd ###添加为系统服务,将httpd加入到SERVICE管理器

[root@localhost httpd-2.4.29]# chkconfig –list httpd

######查看http服务自启状态 该输出结果只显示Sysv服务,

并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖

源码编译构建LAMP服务

(8)建立[service].service 配置文件添加系统给服务

在/lib/systemd/system/目录下,建立一个以.service 结尾的单元(unit)配置文件,

用于控制由 systemd 管理或监控的 httpd 服务

[root@localhost httpd-2.4.29]# cd /lib/systemd/system/ ###进入/lib/systemd/system/

[root@localhost system]# vim httpd.service ###编辑管理文件

源码编译构建LAMP服务

[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

(9)启动httpd.service服务

[root@localhost system]# systemctl start httpd.service ###临时启动

[root@localhost system]# systemctl enable httpd.service ###永久启动

[root@localhost system]# systemctl is-enabled httpd.service ###检查HTTP单元是否启动

enabled

(10)编辑httpd主配置文件

[root@localhost system]# vi /usr/local/httpd/conf/httpd.conf

源码编译构建LAMP服务

(11)重启服务

[root@localhost system]# systemctl restart httpd

[root@localhost system]# httpd -t ###检查http服务状态,看是否有语法错误

Syntax OK

[root@localhost system]# apachectl -t ###检查apachectl服务状态,看是否有语法错误

Syntax OK

[root@localhost system]# netstat -anpt | grep 80 ###查看httpd服务运行状态

tcp6 0 0 :::80 :::* LISTEN 67327/h

[root@localhost system]# vi /usr/local/httpd/htdocs/index.html

源码编译构建LAMP服务

####网页默认显示内容为:/usr/local/httpd/htdocs/index.html

Yum安装的在/var/www/html/index.htmll里面

(12)浏览器验证

源码编译构建LAMP服务

3.搭建mysql服务

(1)安装编译工具与插件

[root@localhost system]# yum -y install \

ncurses \

ncurses-devel \

bison \

cmake

源码编译构建LAMP服务

(2) 建立数据库程序用户

[root@localhost system]# useradd -s /sbin/nologin mysql

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

源码编译构建LAMP服务

(4)解压mysql安装包

[root@localhost system]# cd /opt ###进入opt目录

[root@localhost opt]# tar xf mysql-boost-5.7.20.tar.gz ### 解压软件包

[root@localhost opt]# cd /opt/mysql-5.7.20/ ###进入到 /opt/mysql-5.7.20/里

(5)配置(个性化配置及优化项目)

[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:指定额外支持的其他字符集编码。

——注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧————

(6) 编译、编译安装

[root@localhost mysql-5.7.20]#make -j2 ###编译

源码编译构建LAMP服务

[root@localhost mysql-5.7.20]# make install ###安装

源码编译构建LAMP服务

[root@localhost mysql-5.7.20]#chown -R mysql:mysql /usr/local/mysql/

###对数据库目录进行权限设置

(7) 编辑mysql主配置文 件 (里面内容不要删除,追加,如果删除了,浏览器访问时,root登不进去,需要重新授权)

[root@localhost mysql-5.7.20]#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

源码编译构建LAMP服务

[root@localhost mysql-5.7.20]# chown mysql:mysql /etc/my.cnf ###改属组

(8)设置环境变量

[root@localhost mysql-5.7.20]#echo ‘PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH’ >> /etc/profile

###把这两个路径添加到环境变量中,并放到profile文件中使之开机自运行,否则不生效

[root@localhost mysql-5.7.20]#echo ‘export PATH’ >> /etc/profile

###设为全局变量,使它使用环境更广

[root@localhost mysql-5.7.20]#source /etc/profile

###立即生效

(9)配置初始化

[root@localhost mysql-5.7.20]#cd /usr/local/mysql/

[root@localhost mysql]#[root@localhost mysql]# bin/mysqld \

–initialize-insecure \

–user=mysql \

–basedir=/usr/local/mysql \

–datadir=/usr/local/mysql/data

源码编译构建LAMP服务

(10)添加系统服务

[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

[root@localhost mysql]# systemctl daemon-reload

(11)查看服务运行状态

[root@localhost mysql]# systemctl start mysqld ###启动服务

[root@localhost mysql]# netstat -anpt | grep 3306 ###查看状态

tcp6 0 0 :::3306 :::* LISTEN 86794/mysqld

[root@localhost mysql]# systemctl enable mysqld ###设置开机启动

(12)访问数据库操作

[root@localhost mysql]# mysqladmin -u root -p password

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

源码编译构建LAMP服务

[root@localhost mysql]# mysqladmin -u root -p password ###登入数据库

源码编译构建LAMP服务
源码编译构建LAMP服务

4.构建PHP运行环境

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

源码编译构建LAMP服务

(2)安装所需要的工具

[root@localhost php-7.1.10]# yum -y install \

libjpeg \

libjpeg-devel \

libpng libpng-devel \

freetype freetype-devel \

libxml2 \

libxml2-devel \

zlib zlib-devel \

curl curl-devel \

openssl openssl-devel

(3)解压压缩包

[root@localhost opt]# tar xf php-7.1.10.tar.bz2

(4) 配置个性化配置

[root@localhost opt]# cd php-7.1.10

[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

源码编译构建LAMP服务

(5)编译及安装

[root@localhost php-7.1.10]#make -j3 ###编译

源码编译构建LAMP服务

[root@localhost php-7.1.10]#make install ###安装

源码编译构建LAMP服务

(6)拷贝php配置文件

[root@localhost php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini

###从php源码中复制 php.ini–development 到php安装目录的lib目录下改名为php.ini

[root@localhost php-7.1.10]# vi /usr/local/php/lib/php.ini ###编辑该配置文件

###本地数据库一般是通过socket文件连接,而本地数据库的socket文件如果不在默认路径,就必须告诉php从哪里读取socket文件。将php与mysql关联.

源码编译构建LAMP服务
源码编译构建LAMP服务

[root@localhost php-7.1.10]# /usr/local/php/bin/php -m ###验证安装模块

源码编译构建LAMP服务

(6)修改apache配置文件,关联php与apache服务

[root@localhost php-7.1.10]# vi /etc/httpd.conf

源码编译构建LAMP服务

AddType application/x-httpd-php .php

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

源码编译构建LAMP服务

默认主页加上index.php,并放在index.html前,支持php的首页文件

[root@localhost php-7.1.10]# rm -f /usr/local/httpd/htdocs/index.html

###删除器默认的首页文件

(7)网站加目录里写php测试页

[root@localhost php-7.1.10]# vi /usr/local/httpd/htdocs/index.php

源码编译构建LAMP服务

[root@localhost php-7.1.10]# systemctl restart httpd ###重新启动http服务

(8)浏览器测试,输入http://192.168.32.20

源码编译构建LAMP服务

(10)修改设置mysql密码,并创建用户,设置权限

[root@localhost php-7.1.10]# mysqladmin -uroot -p password

源码编译构建LAMP服务

进入到数据库中

源码编译构建LAMP服务

创建数据库mantis,并相应的用户分配权限

源码编译构建LAMP服务

CREATE DATABASE myadm; ####创建数据库myadm

GRANT all ON myadm. TO ‘myadm’@’%’ IDENTIFIED BY ‘admin123’; ###授权

GRANT all ON myadm. TO ‘myadm’@’localhost’ IDENTIFIED BY ‘admin123’;

flush privileges; ### 刷新权限

配置文件

mysql> exit 退出

Bye

(11)编辑/usr/local/httpd/htdocs/index.php文件

源码编译构建LAMP服务

[root@localhost php-7.1.10]# systemctl restart httpd 在启动http服务

(13)测试

源码编译构建LAMP服务

5.部署phpmyadmin系统 phpMyAdmin是一个使用PHP语言编写,用来管理MYSQL数据库的Web应用系统

(1)上传软件包phpMyAdmin-4.7.6-all-languages.zip

源码编译构建LAMP服务

![](https://s1.51cto.com/images/blog/201902/23/cbb46543155818aee4b1f1d7fe27b166.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk

源码编译构建LAMP服务

(2)解压压缩包

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

###注意软件包格式,是zip格式,用unzip解压

源码编译构建LAMP服务

[root@localhost opt]# mv phpMyAdmin-4.7.6-all-languages /usr/local/httpd/htdocs/myadm

###将解压的插件移到apache目录中

[root@localhost opt]# cd /usr/local/httpd/htdocs/myadm

(3)创建phpMyadmin的配置文件并编辑配置文件

[root@localhost opt]# cd /usr/local/httpd/htdocs/myadm

[root@localhost myadm]# cp config.sample.inc.php config.inc.php

###复制配置文件内容到 config.inc.php中

[root@localhost myadm]# vi config.inc.php 编辑该配置文件

源码编译构建LAMP服务

(4)重新启动apache服务

[root@localhost myadm]# systemctl stop httpd

[root@localhost myadm]# systemctl start httpd

6.登录测试

在浏览器中访问http://192.168.32.20/myadm

源码编译构建LAMP服务

解决办法,在数据库中可root授权。

[root@localhost myadm]# mysql -u root -p

mysql> GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123456’; ###添加root授权协议。

Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> flush privileges; ###刷新

Query OK, 0 rows affected (0.00 sec)

再次测试

源码编译构建LAMP服务

喜欢 (0)
[]
分享 (0)
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址