linux- 源码编译安装部署LAMP平台-企业平台架构(源码安装apache ,mysql,PHP搭建BBS网站小项目)

前言

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

虽然现代的Linux发行版本大部分采用包管理机制对软件进行打包安装,可以省去软件的编译安装过程,但是还有些情况需要使用源代码编译的方式为系统安装新的应用程序。

L:Linux

A:Apache

M:MySQL

P:PHP

一:LAMP平台与编译安装

1.1:LAMP平台概述

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

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

1.2:构建LAMP平台顺序

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

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

1.3:编译安装的优点

具有较大的自由度,功能可定制
可及时获得最新的软件版本
普遍适用于大多数Linux版本,便于一直使用
解包

开源软件的源代码包一般为TarBall形式,扩展名为“.tar.gz”或“.tar.bz2”,都可以使用tar命令进行解压。

在Linux系统中,通常将各种软件的源代码目录保存到“/sur/src”目录中,便于集中管理。
在这里插入图片描述

1.4 编译的基本过程

在这里插入图片描述

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

在这里插入图片描述

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

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

二:Apache网站服务源码编译安装

2.1:Apache起源

源于A Patchy Server,著名的开源web服务软件
1955年时,发布Apache服务程序的1.0版本
由Apache软件基金会(ASF)负责维护
最新的名称为“Apache HTTP Server”

2.2:主要特点

开放源代码,跨平台应用
支持多种网页编程语言
模块化设计,运行稳定,良好的安全性

2.3:环境准备

VMware软件
centos7操作系统
准备Apache服务的源码包
Apache跨平台组件包准备

2.4:源码编译安装过程

准备源码软件包
在这里插入图片描述

首先源码编译安装httpd

具体命令如下:

2.4.1安装环境软件及辅助工具包

yum install -y  gcc  gcc-c++   make  pcre-devel  expat-devel  perl  bzip2 
 gcc 		'//编译器'
gcc-c++	'//编译器'
 make 		'//make工具'
pcre-devel  '//支持正则表达式的工具'
 expat-devel	 '//使网站能解析标签语言的工具'
 perl			'//Perl语言工具'
apr   //支持跨平台
解压软件包
tar -jxvf httpd-2.4.29.tar.bz2
tar -zxvf apr-1.6.2.tar.gz
tar -zxvf apr-util-1.6.0.tar.gz
mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
cd httpd-2.4.29/srclib/

2.4.2 编译安装httpd

./configure \
--prefix=/usr/local/httpd \    //指定路径'
--enable-so \          //开启核心功能模块'
--enable-rewrite \      '//开启重写功能,如防盗链保护'
--enable-charset-lite \     '//开启字符集'
--enable-cgi              '//开启通用网关接口'
make
make install
 cp /usr/local/httpd/bin/apachectl  /etc/init.d/httpd  '//将启动脚本复制到/etc/init.d/初始化脚本文件中,并重命名为httpd'
vi /etc/init.d/httpd
//在行首插入下两行内容,并保存退出'
#chkconfig: 35 70 20   //35级别自动运行  第70个启动 第20个关闭
#description: Activates/Deactivates Apache Web Server
chkconfig --add httpd     //将httpd加入到SERVICE管理器'
创建软连接,方便修改配置
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/
 
 vim httpd
 修改下面两行参数
ServerName www.hello.com:80
Listen 192.168.100.48:80
测试命令使用
httpd -t
service httpd start

2.4.3检查http软件服务有无正常运行

netstat -ntap | grep 80
tcp        0      0 192.168.100.48:80       0.0.0.0:*               LISTEN40532/httpd

三. MySQL概述

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。
MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。
MySQL是一个真正的多线程,多用户的SQL数据库服务,凭借其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
源码安装MYSQL

3.1安装辅助软件包

yum install -y ncurses-devel autoconf cmake
tar xzvf mysql-5.6.26.tar.gz
//ncurses-devel是字符终端下屏幕控制的基本库'
    '//autoconf生成可以自动配置软件源代码'
    '//cmake跨平台编译安装工具'
 cd mysql-5.6.26/
CMAKE编译
 cmake  \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci  \
-DEXTRA_CHARSETS=all  \
-DSYSCONFIDIR=/etc  \
-DMYSQL_DATADIR=/home/mysql/  \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock

make && make install 

界面如下,此处需耐心等待
在这里插入图片描述
在这里插入图片描述

3.2 复制配置文件和脚本文件

[root@shanan mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf
cp: overwrite /etc/my.cnf’? y
[root@shanan mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld

3.3 配置脚本文件和命令环境

[root@shanan mysql-5.6.26]# chmod 755 /etc/init.d/mysqld
[root@shanan mysql-5.6.26]# chkconfig  --add /etc/init.d/mysqld  '//将mysqld添加到service服务器中'
[root@shanan mysql-5.6.26]# chkconfig mysqld --level 35 on  //设置mysqld在运行级别35都是开启的'
[root@shanan mysql-5.6.26]# echo"PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile      /设置mysql命令到/etc/profile中寻找'
[root@shanan mysql-5.6.26]# source /etc/profile  '//使命令不需重启立即生效
[root@shanan mysql-5.6.26]# echo $PATH     //查看环境'
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin

3.4 添加用户

[root@shanan mysql-5.6.26]#
//添加用户,指定shell,禁止用户登录系统'
[root@shanan mysql-5.6.26]# useradd -s /sbin/nologin mysql  
[root@shanan mysql-5.6.26]# chown -R mysql:mysql   /usr/local/mysql/       ////设置属主和数组'

3.5 初始化数据库

[root@shanan mysql-5.6.26]# /usr/local/mysql/scripts/mysql_install_db \    
> --user=mysql \
> --ldata=/var/lib/mysql \
> --basedir=/usr/local/mysql  \
> --datadir=/home/mysql
Installing MySQL system tables...2020-08-03 07:23:19 0 [Warning] TIMESTAMP withimplicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-08-03 07:23:19 0 [Note] /usr/local/mysql/bin/mysqld (mysqld 5.6.
.....................
WARNING: Default config file /etc/my.cnf exists on the system
This file will be read by default by the MySQL server
If you do not want to use this, either remove it, or use the
--defaults-file argument to mysqld_safe when starting the serve

r

3.6 编辑启动脚本

[root@shanan mysql-5.6.26]#
[root@shanan mysql-5.6.26]# vi /etc/init.d/mysqld
'//搜索basedir'
...省略内容
'//修改这两段内容'
basedir=/usr/local/mysql	'//添加工作路径'
datadir=/home/mysql			'//添加数据路径'
...省略内容

在这里插入图片描述

3.7 启动测试软件

[root@shanan mysql-5.6.26]# service mysqld start
Starting MySQL. SUCCESS!
[root@shanan mysql-5.6.26]# netstat -anpt | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN76125/mysqld

3.8 给账户设置密码

[root@shanan mysql-5.6.26]# mysqladmin -u root -p password "asd123"  ////给root用户设置密码'
'//mysqladmin -u用户名 -p旧密码 password 新密码'
Enter password:      '//原本密码为空,直接回车即可'
Warning: Using a password on the command line interface can be insecure.
[root@shanan mysql-5.6.26]# mysql -uroot -p
Enter password:    //输入刚设置的密码asd123'        
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.26 Source distribution

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

四 . PHP代码源码编译安装

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域
PHP支持绝大多数流行的数据库,在数据库层面的操作功能十分强大,而且能够支持Unix,Windows,Linux等多种操作系统
安装PHP

4.1 安装相关环境软件

[root@shanan mysql-5.6.26]# yum -y install \
> gd \      //安装GD库环境
> libpng \
> libpng-devel \
> pcre \
> pcre-devel \
> libxml2-devel \
> libjpeg-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
[root@shanan LAMP]# ls
apr-1.6.2.tar.gz         httpd-2.4.29          mysql-5.6.26.tar.gz
apr-util-1.6.0.tar.gz    httpd-2.4.29.tar.bz2  php-5.6.11.tar.bz2
Discuz_X2.5_SC_UTF8.zip  mysql-5.6.26
[root@shanan LAMP]# tar jxvf php-5.6.11.tar.bz2

4.2 源码编译安装

./configure \
--prefix=/usr/local/php5 \      '//指定安装路径
--with-gd \                          //指定GD库
--with-zlib \                             //支持数据压缩函数库'
--with-apxs2=/usr/local/httpd/bin/apxs \   //设置Apache服务提供的apxs模块支持程序的文件位置'
--with-mysql=/usr/local/mysql \              //设置MySQL数据库服务程序的安装位置
--with-config-file-path=/usr/local/php5 \     //设置PHP配置文件存放的位置'
--enable-mbstring                //启用多字节字符串功能,以便支持中文等代码'

编译完成在这里插入图片描述

[root@shanan php-5.6.11]# make && make install

在这里插入图片描述

[root@shanan php-5.6.11]# cp php.ini-development /usr/local/php5/php.ini               //'移动启动脚本'
[root@shanan php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/
'//创建命令软链接'

4.3 编辑httpd配置文件

vi /etc/httpd.conf
//搜索AddType,在下段文字后添加两行文字'

在这里插入图片描述

在这里插入图片描述

//搜索php5,查看是否有下面文字,若没有,之前配置有问题,需要重新配置LAMP'
LoadModule php5_module        modules/libphp5.so

4.4 配置PHP首页

原index.html删除
vi /usr/local/httpd/htdocs/index.php

在这里插入图片描述

service httpd stop 
service httpd start

4.5 检查PHP是否搭建成功

在这里插入图片描述

4.6 LAMP架构搭建论坛

4.6.1 创建MySQL数据库并添加用户

root@shanan bbs]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.6.26 Source distribution

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE DATABASE bbs;        '//创建数据库'
Query OK, 1 row affected (0.00 sec)

//给用户bbquser设置密码asd123并设置所有权限,所有终端都可登录'
mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'asd123';
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> flush privileges;    //刷新数据库
Query OK, 0 rows affected (0.00 sec)

mysql>

4.6.2 解压论坛压缩包,设置权限

unzip Discuz_X2.5_SC_UTF8.zip -d /opt/dis

cd /opt/dis

 cp -r upload/ /usr/local/httpd/htdocs/bbs   //将upload复制到Apache服务站点中'
cd /usr/local/httpd/htdocs/bbs

[root@shanan bbs]# chown -R daemon ./uc_client
[root@shanan bbs]# chown -R daemon ./uc_server/data
[root@shanan bbs]# chown -R daemon ./config
[root@shanan bbs]# chown -R daemon ./data

4.6.3 网站访问 192.168.100.48/bbs ,安装BBS

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

4.6.4 输入用户名,密码,就是之前设置的admin ,可以进行一系列后台操作

在这里插入图片描述

mysql> use bbs;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;   //查看数据库,发现有内容了
+-----------------------------------+
| Tables_in_bbs                     |
+-----------------------------------+
| pre_common_admincp_cmenu          |
| pre_common_admincp_group          |
| pre_common_admincp_member         |
.........省略
268 rows in set (0.00 sec)

mysql>

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/BIGmustang/article/details/107771234