源码编译安装LAMP

一、LAMP介绍

  1. LAMP 架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和
    相关软件,能够提供动态 Web 站点服务及其应用开发环境。LAMP 是一个缩写词,具
    体包括 Linux 操作系统、Apache 网站服务器、MySQL 数据库服务器、PHP(或 Perl、
    Python)网页编程语言。本章将以源码编译的方式搭建 LAMP 环境,能够满足企业定
    制化的需求。
  2. 在构建 LAMP 平台时,各组件的安装顺序依次为 Linux、Apache、MySQL、PHP。
    其中 Apache 和 MySQL 的安装并没有严格的顺序;而 PHP 环境的安装一般放到最后,
    负责沟通 Web 服务器和数据库系统以协同工作。

二、Apache 简介

  1. Apache HTTP Server”是开源软件项目的杰出代表,基于标准的 HTTP 网络协议提供
    网页浏览服务,在 Web 服务器领域中长期保持着超过半数的份额。Apache 服务器可以运
    行在 Linux、UNIX、Windows 等多种操作系统平台中。
  2. Apache 服务器是针对之前出现的若干个 Web 服务器程序进行整合、完善后形成的软
    件,其名称来源于“A Patchy Server”,意思是“基于原有 Web 服务程序的代码进行修改(补
    丁)后形成的服务器程序”。
    1995 年, Apache 服务程序发布了 1.0 版本,之后一直由“Apache Group”负责该项目
    的管理和维护;直到 1999 年,在“Apache Group”的基础上成立了 Apache 软件基金会
    (Apache Software Foundation,ASF)。目前,Apache 项目一直由 ASF 负责管理和维护。
  3. ASF 是非盈利性质的组织,最初只负责“Apache Web”服务器项目的管理,随着 Web
    应用需求的不断扩大,ASF 逐渐增加了许多与 Web 技术相关的开源软件项目,因此 Apache
    现在不仅仅代表着 Web 服务器,更广泛地代表着 ASF 管理的众多开源软件项目。ASF 基
    金会的官方网站是 http://www.apache.org/。
  4. “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网站服务器部署

4.1、搭建YUM仓库

[root@localhost ~]# mount /dev/cdrom /mnt  ##临时挂载
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ll
总用量 32
## 这里我们搭建YUM本地源仓库
-rw-r--r--. 1 root root 1664 8月 23 21:16 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 8月 23 21:16 CentOS-CR.repo
-rw-r--r--. 1 root root  649 8月 23 21:16 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 8月 23 21:16 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 8月 23 21:16 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 8月 23 21:16 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 8月 23 21:16 CentOS-Vault.repo
[root@localhost yum.repos.d]# mkdir backup
[root@localhost yum.repos.d]# mv C* backup/  ##把本地源放进创建的backup目录
[root@localhost yum.repos.d]# cp backup/CentOS-Base.repo local.repo  ## 复制一个本地源文件
[root@localhost yum.repos.d]# vi local.repo  ## 对复制的本地源文件进行编辑。进去之后 36dd 删除原来的配置,然后再改下面的配置
[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
enabled=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@localhost ~]# systemctl stop firewalld    ## 关闭防火墙
[root@localhost ~]# systemctl disable firewalld    ## 开机自动关闭防火墙
[root@localhost ~]# vi /etc/selinux/config ##关闭核心防护
SELINUX=disabled ## 这句前面的#号去掉
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache

4.2、编译安装HTTP服务

1、将下列三个软件包传到opt目录下

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

2、对压缩包进行解压

 cd /opt
ll
总用量 8020
-rw-r--r--  1 root root 1071074 8月   4 17:33 apr-1.6.2.tar.gz
-rw-r--r--  1 root root  565507 8月   4 17:33 apr-util-1.6.0.tar.gz
-rw-r--r--  1 root root 6567926 8月   4 17:33 httpd-2.4.29.tar.bz2
drwxr-xr-x. 2 root root       6 3月  26 2015 rh

tar zxvf apr-1.6.2.tar.gz
tar zxvf apr-util-1.6.0.tar.gz
yum -y install bzip2  ## 如果是最小化安装需要安装bzip2
tar jxvf 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、安装环境编译HTTP的环境

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

4、安装配置模块

[root@localhost opt]# 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 脚本程序支持,便于扩展网站的应用访问能力。

5、编译安装

make && make install

6、优化执行路径

ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/
httpd -v      ###查看下HTTP版本
Server version: Apache/2.4.29 (Unix)
Server built:   Aug 31 2020 02:01:04

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

建立[service].service 配置文件添加系统给服务
在/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

8、设置启动http和开机自启http,并且查看http的运行状态

systemctl start httpd.service
systemctl enable httpd.service                   ###开机自启http
systemctl is-enabled httpd.service               ###检查HTTP单元是否启动

9、httpd.conf修改配置文件

[root@localhost~]# vi /usr/local/httpd/conf/httpd.conf
ServerName www.51xit.com:80                           ###这里面的网址可以自己任意改。
[root@localhost~]# systemctl restart httpd           ####重启httpd服务

10、现在我们在浏览器进行试验

netstat -anpt | grep 80   ###查看一下80端口启动了没

在浏览器里面输入该虚拟机的IP地址;
这里我们验证成功!!!
请添加图片描述

4.3、MySQL 的编译安装

1、环境准备

[root@localhost system]# yum -y install \
> ncurses \
> ncurses-devel \
> bison \
> cmake
[root@localhost system]# useradd -s /sbin/nologin  mysql

2、上传mysql-boost-5.7.20.tar.gz到opt目录下并进行解压

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

3、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

配置选项含义

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

4、编译安装

make && make install

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

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

6、建立调整配置文件

[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

7、设置环境变量

echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile 
echo 'export PATH' >> /etc/profile  ## 声明全局变量
source /etc/profile  ### 使加入的数据生效,使mysql的相关命令识别

8、初始化数据库

[root@localhost ~]# cd /usr/local/mysql/
[root@localhost mysql]# bin/mysqld \
--initialize-insecure \  ###初始化命令
--user=mysql \  ###指定用户
--basedir=/usr/local/mysql \  ###指定工作目录
--datadir=/usr/local/mysql/data  ###指定数据存放位置

9、编辑启动脚本

[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
[root@localhost mysql]# systemctl status mysqld

10、设置用户密码

[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

4.4、安装PHP环境

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

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

4.4.1、环境准备并配置

1、

[root@localhost ~]# yum -y install \
libjpeg \				    #jpeg图片识别
libjpeg-devel \				#jpeg开发包
libpng libpng-devel \	    #png图片识别还有开发包
freetype freetype-devel \	#freetype 识别字体
libxml2 \				    #xml文件格式识别
libxml2-devel \ 
zlib zlib-devel \			#zlib压缩
curl curl-devel \			#curl 支持文件上传下载,网页端的下载
openssl openssl-devel		#身份验证去连接网站

2、上传 php-7.1.10至opt目录下解压

cd /opt
tar xjvf php-7.1.10.tar.bz2  ###解压php包

3、configure配置属性

[root@localhost php-7.1.10]#./configure \
--prefix=/usr/local/php \							#指定安装目录
--with-mysql-sock=/usr/local/mysql/mysql.sock \		#指向mysql的sock文件,用以后台程序去连接数据库
--with-mysqli \										#客户终端工具,可以直接去访问mysql服务器,去找它进行定义存储过程,事务的处理一些功能
--with-zlib \
--with-curl \
--with-gd \											#gd是一个图像化的处理
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \                               #字体
--with-openssl \
--enable-fpm \										#fpm 是指动态请求的模块
--enable-mbstring \									#mbstring 多节点字符串
--enable-xml \										#xml 启用xml格式支持
--enable-session \									#支持session会话
--enable-ftp \										#网页可以ftp的功能
--enable-pdo \										#pdo 类似一个通用的接口一样,下面的不同的数据库的数据,会统一接口接收
--enable-tokenizer \ 								#tokenizer 是一个函数库
--enable-zip	


4、编译安装

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

5、配置PHP的两个配置文件

cp php.ini-development /usr/local/php/lib/php.ini ### 
vi /usr/local/php/lib/php.ini

mysqli.default_socket = /usr/local/mysql/mysql.sock  # 搜索到mysqli.default_socket 
date.timezone = Asia/Shanghai  # 搜索到date.timezone   # 添加市区
/usr/local/php/bin/php -m //验证安装的模块

vi /etc/httpd.conf 

#######搜索AddType,然后在合适位置新增下面两句######
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

#########搜索DirectoryIndex,然后找到这行后把下面这行代码补齐#########
DirectoryIndex index.php index.html

rm -f /usr/local/httpd/htdocs/index.html  ### 删除index.html文件
vi /usr/local/httpd/htdocs/index.php  ### 编辑新的index.php
#######添加下面代码###########
<?php
phpinfo();
?>
[root@localhost php-7.1.10]# vi /etc/httpd.conf  

#Include conf/extra/httpd-vhosts.conf  ### 关闭这个

Listen 80     ### 找到监听端口,监听端口改成这样

systemctl restart httpd   ### 重启一下httpd服务

6、测试一下,在真机浏览器输入服务器ip地址 20.0.0.16
显示以下页面就是成功了!
请添加图片描述

4.4.2、测试数据库是否可以正常工作

mysql -u root -p  #### 输入密码进入,然后把下面四条命令一条一条复制进去

CREATE DATABASE myadm;         ### 创建数据库
GRANT all ON myadm.* TO 'myadm'@'%' IDENTIFIED BY 'admin123'; 
 # 授权给myadm账户,密码是admin123,可以访问myadm数据库,*代表所有的表
GRANT all ON myadm.* TO 'myadm'@'localhost' IDENTIFIED BY 'admin123';  
flush privileges;  ### 刷新后台

vi /usr/local/httpd/htdocs/index.php  ### 更改首页信息,把下面命令复制进去

<?php
$link=mysqli_connect('20.0.0.16','myadm','admin123');  ### 需要把ip改成服务器ip地址
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

在浏览器上输入ip测试下
请添加图片描述

4.4.3、安装phpMyadmin

cd /opt
unzip phpMyAdmin-4.7.6-all-languages.zip -d /opt/
mv phpMyAdmin-4.7.6-all-languages /usr/local/httpd/htdocs/myadm
cd /usr/local/httpd/htdocs/myadm
cp config.sample.inc.php config.inc.php
[root@localhost myadm]# vi config.inc.php
$cfg['Servers'][$i]['host'] = 'localhost ';   ###将第31行的“localhost”更改为IP地址
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值