如何搭建中小企业后端架构(LAMP之源代码编译安装)!

前言

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

一、Apache-httpd编译安装

1.1 安装环境依赖包

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

1.2 解压源码包以及apr包

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

1.3 编译安装Apache

[root@localhost packages]# cd httpd-2.4.29
[root@localhost httpd-2.4.29]# ./configure \
> --prefix=/usr/local/httpd \		#指定将 httpd 服务程序安装到哪个目录下,如/usr/local/httpd
> --enable-so \ 		#启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力
> --enable-rewrite \		#启用网页地址重写功能,用于网站优化及目录迁移维护
> --enable-charset-lite \		#启动字符集支持,以便支持使用各种字符集编码
> --enable-cgi \		#启用 CGI 脚本程序支持,便于扩展网站的应用访问能力
> --enable-deflate \
> --enable-expires
[root@localhost httpd-2.4.29]# make && make install

1.4 配置启动脚本

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

1.5 设置配置文件的软链接和httpd命令的软链接

[root@localhost ~]# ln -s /usr/local/httpd/bin/apachectl /usr/local/httpd
[root@localhost ~]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf 
[root@localhost ~]# httpd -t
Syntax OK

1.6 启动、停止Apache

[root@localhost ~]# systemctl start httpd
[root@localhost ~]# netstat -anpt | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      1267/httpd

在这里插入图片描述

[root@localhost ~]# systemctl stop httpd
[root@localhost ~]# netstat -anpt | grep 80

二、Mysql编译安装

2.1 安装Mysql环境依赖包

[root@localhost ~]# yum -y install ncurses \
ncurses-devel \
bison \
cmake

2.2 创建运行用户

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

2.3 编译安装

[root@localhost ~]# cd /opt/packages/
[root@localhost packages]# tar xf mysql-boost-5.7.20.tar.gz
[root@localhost packages]# cd mysql-5.7.20/
[root@localhost mysql-5.7.20]#cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \		#指定将 mysql 数据库程序安装到某目录下,如目录/usr/local/ mysql
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \			#指定套接字文件的存储路径,数据库连接的文件
-DSYSCONFDIR=/etc \ 	#指定初始化参数文件目录	
-DSYSTEMD_PID_DIR=/usr/local/mysql \		#指定PID目录 		#
-DDEFAULT_CHARSET=utf8  \		#指定默认使用的字符集编码,如 utf8
-DDEFAULT_COLLATION=utf8_general_ci \		#指定默认使用的字符集校对规则,utf8_general_ci 是适用于 UTF-8 字符集的通用规则
-DWITH_INNOBASE_STORAGE_ENGINE=1 \		#安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \		#安装ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \		#安装BLACKHOLE存储引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \		#安装FEDERATED存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \		#数据安装路径
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1
[root@localhost mysql-5.7.20]# make && install

2.4 数据库目录进行权限调整

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

2.5 调整配置文件

[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

2.6 配置文件进行权限调整

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

2.7 设置环境变量

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

2.8 初始化数据库

[root@localhost mysql]# cd /usr/lib/sytemd/system
[root@localhost mysql]# bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

2.9 添加mysqld服务,开启并检查状态

[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@localhost mysql]# systemctl enable mysqld
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
[root@localhost mysql]# systemctl start mysqld
[root@localhost mysql]# netstat -anpt | grep mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      14232/mysqld  

2.10 设置Mysql密码

[root@localhost mysql]# mysqladmin -u root -p password
Enter password:		#密码默认为空,回车就好 
New password: 		#密码为qwe123
Confirm new password: 		#两次密码一致

2.11 登录数据库

[root@localhost mysql]mysql -uroot -pqwe123		#用户为root,密码为qwe123

三、PHP编译安装

3.1 安装PHP环境依赖包

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

3.2 编译安装PHP

[root@localhost packages]# tar xf php-7.1.10.tar.bz2 
[root@localhost packages]# cd php-7.1.10
[root@localhost php-7.1.10]# ./configure \
> --prefix=/usr/local/php \		#指定将 PHP 程序安装到哪个目录下
> --with-mysql-sock=/usr/local/mysql/mysql.sock \		#设置Apache服务提供的apxs模块支持程序的文件位置
> --with-apxs2=/usr/local/httpd/bin/apxs \		#设置Apache服务提供的apxs模块支持程序的文件位置
> --with-mysqli \		#mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定
> --with-zlib \		#支持zlib功能--压缩流
> --with-curl \		#开启curl扩展功能
> --with-gd \		#激活gd库的支持
> --with-jpeg-dir \		#激活jpeg的支持
> --with-png-dir \		#激活png的支持
> --with-freetype-dir \
> --with-openssl \
> --enable-mbstring \		#启用多字节字符串功能,以便支持中文等代码
> --enable-xml \
> --enable-session \
> --enable-ftp \
> --enable-pdo \
> --enable-tokenizer \
> --enable-zip \
> --enable-fpm		#开启php-fpm模块
[root@localhost php-7.1.10]# make && make install

3.3 复制模板文件作为PHP的主配置文件,并修改其配置

[root@localhost php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini
date.timezone = Asia/Shanghai      #位于939行
mysqli.default_socket = /usr/local/mysql/mysql.sock   #位于1170行
[root@localhost php-7.1.10]# /usr/local/php/bin/php -m		#验证安装的模块

3.4 编辑httpd的配置文件设置php的默认首页

[root@localhost htdocs]# vi /etc/httpd.conf
<IfModule dir_module>	
   DirectoryIndex index.php index.html 		#在index.html前面添加index.php
</IfModule>
#添加两行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

3.5 创建一个php页面,重启Http服务并验证

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

在这里插入图片描述

3.6 测试数据库的连接性

将原来的测试网页内容更改如下:

[root@localhost htdocs]# vi index.php
<?php
$link=mysqli_connect('localhost','root','qwe123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

在这里插入图片描述

至此,LAMP搭建完成。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值