学习LAMP这一篇就够啦!(企业网站LAMP之源代码编译安装)

  博主许久不更,最近在准备考试。LAMP目前最为成熟的一种企业网站应用模式,可提供动态Web站点应用及开发环境,以下就是博主搭建的整个环境,断断续续准备了好久。

源代码编译

一般来说,我们软件的安装方式有 yum (rpm),和源码编译两种方式。选择源码编译安装软件有以下几个原因:

  • 满足不同的运行平台,我们Linux发型版本众多,但是每个版本采用的软件或者内核版本都不一样,而我们的二进制包所依赖的环境不一定能够正常运行,所以大部分软件直接提供源码!
  • 方便定制,满足需求,很多时候我们所需要的软件都是可以定制的,我需要什么就安装什么,大多数二进制代码都是一键装全,所以自由度并不高!
  • 方便运维、开发人员维护,我们的源码是可以打包二进制的,但是对于这个软件的打包都会有一份代价不小的额外工作,包括维护,所以如果是源码的话,软件产商会直接维护,但是如果是二进制的话,一般都是Linux发行商提供

一:LAMP平台概述

1.1:什么是LAMP

LAMP 是指Linux(操作系统)+ Apache (HTTP 服务器)+ MySQL(数据库)和 PHP(网络编程语言)目前最为成熟的一种企业网站应用模式,可提供动态Web

1.2:构成组件

Linux、Apache、 MySQL、PHP/Perl/Python

1.3:LAMP的优势

  • 成本低廉

  • 可定制、易于开发

  • 方便易用、安全和稳定

此图来自百度

二:Apache服务安装

以下为本次实验的环境

2.1:apache软件包及依赖包准备

####编译安装HTTP服务####
#####安装Apache所需软件#####
apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz
httpd-2.4.29.tar.gz
#apr-1.6.2.tar.gz、apr-util-1.6.0.tar.gz(工具)是跨平台的组件包
http://apache.org/dyn/closer.cgi

通过Xftp 导入文件到/opt目录下
在这里插入图片描述

[root@server4 ~]# cd /opt/
[root@server4 opt]# ll
总用量 8020
-rw-r--r--. 1 root root 1071074 108 18:46 apr-1.6.2.tar.gz
-rw-r--r--. 1 root root  565507 108 18:46 apr-util-1.6.0.tar.gz
-rw-r--r--. 1 root root 6567926 108 18:46 httpd-2.4.29.tar.bz2
drwxr-xr-x. 2 root root       6 326 2015 rh
apr-1.6.2.tar.gz //MAC记录与端口扫描脚本
apr-util-1.6.0.tar.gz   //pxe.txt
httpd-2.4.29.tar.bz2     //开发系统监控脚本.txt
[root@server4 opt]# tar xf apr-1.6.2.tar.gz 
[root@server4 opt]# tar xf apr-util-1.6.0.tar.gz 
[root@server4 opt]# tar xf httpd-2.4.29.tar.bz2 
#将跨平台的组件包移动到源码包目录下去执行里面的功能
[root@server4 opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@server4 opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
[root@server4 opt]# ls httpd-2.4.29/srclib/
apr  apr-util  Makefile.in

2.2:安装编译器和其他工具

手工安装要预先装环境

gcc   ###C语言的编译器
gcc-c++   ###C++的编译器
make   ###源代码编译(源代码转换成二进制文件)
pcre-devel ###支持正则表达式
expat-devel ###网站解析HTML文件
perl  ###perl编译器
[root@server4 opt]# yum -y install \
> gcc \
> gcc-c++ \
> make \
> pcre-devel \
> expat-devel \
> perl
#省略内容

2.3:configure配置

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

2.4:make编译和make install

make && make install                 #时间较长,可以先make -j3   然后make install   -j3是你核心数,最大不要超过虚拟机的核心数

2.5:优化执行路径

[root@server4 httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf  /etc/
[root@server4 httpd-2.4.29]# ln -s /usr/local/httpd/bin/*  /usr/local/bin/
[root@server4 ~]# httpd -v           #查看HTTP版本
Server version: Apache/2.4.29 (Unix) 
Server built:   Oct  8 2020 19:49:11

2.6:配置启动脚本

[root@server4 httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@server4 httpd-2.4.29]# vi /etc/init.d/httpd
添加下面两行
# chkconfig: 35 85 21        #35级别自动运行  第85个启动 第21个关闭
# description: Apache is a World Wide Web server
chkconfig --add httpd        #添加为系统服务
chkconfig --list httpd       #查看http服务自启状态 该输出结果只显示Sysv服务,
#并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖

2.7:编辑配置文件

[root@server4 httpd-2.4.29]# vi /etc/httpd.conf 
ServerName www.tom.com:80                              #更改域名

2.8:重启httpd服务

[root@server4 ~]# systemctl restart httpd
[root@server4 ~]# netstat -anpt | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      121903/httpd        

2.9: 客户机测试访问html页面

客户机添加映射

  • Linux系统
[root@server3 ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.158.40 www.tom.top      #末行添加

在这里插入图片描述

  • Windows系统
    C:\Windows\System32\drivers\etc目录下有个hosts文件,以记事本方式打开并在末尾添加,打开浏览器测试
    在这里插入图片描述
    末行添加映射记录
    在这里插入图片描述
    在这里插入图片描述

三:MYSQL服务安装

3.1:MySQL概述

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

3.2:源码编译安装过程

  • 环境准备
[root@server3 ~]# useradd -s /sbin/nologin  mysql
[root@server3 ~]# yum -y install \
ncurses \
ncurses-devel \        #ncurses是字符终端屏幕控制的基本库
bison \                #用于自动生成语法分析器的程序
cmake                  #跨平台编译安装工具
查看软件包
[root@server3 ~]# cd /opt/
[root@server3 opt]# ll
drwxr-xr-x. 38      7161     31415     4096 1011 20:54 mysql-5.7.20

3.3:配置cmake

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 \            
-DDEFAULT_CHARSET=utf8  \                       #指定默认使用的字符集编码,如 utf8。
-DDEFAULT_COLLATION=utf8_general_ci \           #适用于 UTF-8 字符集的通用规则。
-DWITH_INNOBASE_STORAGE_ENGINE=1 \              #安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \               #安装ARCHIVE存储引擎 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \             #安装ARCHIVE存储引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \            #安装FEDERATED存储引擎 
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1
#若要明确指定不编译某存储引擎,可以使用类似如下的选项:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1        不启用或不编译EXAMPLE存储引擎 
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1 
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
#如若要编译进其它功能,如SSL等,则可使用类似如下选项来实现编译时使用某库或不使用某库:
-DWITH_READLINE=1 
 -DWITH_SSL=system           #表示使用系统上的自带的SSL库 
-DWITH_ZLIB=system 
 -DWITH_LIBWRAP=0
#其它常用的选项:
-DMYSQL_TCP_PORT=3306                       #设置默认端口的 
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock           #MySQL进程间通信的套接字的位置 
-DENABLED_LOCAL_INFILE=1                    #是否启动本地的LOCAL_INFILE 
 -DEXTRA_CHARSETS=all                       #支持哪些额外的字符集 
-DDEFAULT_CHARSET=utf8                      #默认字符集 
-DDEFAULT_COLLATION=utf8_general_ci         #默认的字符集排序规则 
-DWITH_DEBUG=0                              #是否启动DEBUG功能 
-DENABLE_PROFILING=1                        #是否启用性能分析功能
  • 注意:如果在CMAKE的过程中有报错—

     当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧
    
  • 注意:make: *** No targets specified and no makefile found. Stop.解决方法

1、wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.6.tar.gz
2.、tar zxvf ncurses-5.6.tar.gz
3./configure -prefix=/usr/local -with-shared-without-debug
4、make
5、make install

3.4:make编译和make install

[root@server3 opt]# make -j3 && make install    #不要超过虚拟机的核心数
 

3.5:数据库目录进行权限调整

[root@server3 opt]# chown -R mysql:mysql /usr/local/mysql/

3.6:建立调整配置文件

[root@server3 opt]# 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
#保存退出
[root@server3 etc]# chown mysql:mysql /etc/my.cnf

3.7:设置环境变量

[root@server3 ~]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@server3 ~]# echo 'export PATH' >> /etc/profile
#添加到配置文件
[root@server3 ~]# source /etc/profile    #命令不重启生效
cd /usr/local/mysql/

3.8:初始化数据库

bin/mysqld \
--initialize-insecure \     
--user=mysql \                           #指定用户  这边不创建用户就会报错
--basedir=/usr/local/mysql \             #数据库服务所在位置
--datadir=/usr/local/mysql/data          #数据库位置

3.9:启动服务

[root@server3 ~]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@server3 ~]# systemctl enable mysqld
[root@server3 ~]# systemctl start mysqld
[root@server3 ~]# systemctl status mysqld
[root@server3 ~]# netstat -anpt|grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      80307/mysqld        

3.10:测试mysql

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

mysql -u root -p ##这个命令敲下,提示要输入密码,这个就是刚才设置的密码abc123

[root@server3 ~]# mysqladmin -uroot -p123123 password 111111
mysql> create database student ;  #分号不能忘记,创建数据库(student为数据库名)
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| myadm              |
| mysql              |
| performance_schema |
| student            |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

mysql> exit
Bye

以上mysql就安装就成功了

四:PHP服务安装

4.1:PHP概述

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

4.1:首先配置安装环境

[root@server3 ~]# yum -y install \
> libjpeg \ 
> libjpeg-devel \
> libpng libpng-devel \
> freetype freetype-devel \
> libxml2 \
> libxml2-devel \
> zlib zlib-devel \
> curl curl-devel \
> openssl openssl-devel

4.3:配置configre

[root@server3 ~]# cd /opt
[root@server3 opt]# tar xf php-7.1.10.tar.bz2 
[root@server3 opt]# cd php-7.1.10
./configure \
--prefix=/usr/local/php \                        #指定将 PHP 程序安装到哪个目录下     
--with-apxs2=/usr/local/httpd/bin/apxs \         #设置 Apache HTTP Server 提供的 apxs 模块支持程序的文件位置
--with-mysql-sock=/usr/local/mysql/mysql.sock \  #指定mysql的mysql.sock位置
--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

4.4:make编译和make install

[root@server3 ~]# make && make install

4.5:编辑配置文件

[root@server3 ~]# cp php.ini-development /usr/local/php/lib/php.ini  	#将php.ini-development开发样板,复制到生产环境中去

[root@server3 ~]# vi /usr/local/php/lib/php.ini
mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai

[root@server3 ~]# /usr/local/php/bin/php -m       #验证安装的模块

[root@server3 ~]# vi /etc/httpd.conf 			  #在合适位置新增

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

DirectoryIndex index.php index.html

[root@server3 ~]# rm -f /usr/local/httpd/htdocs/index.html
[root@server3 ~]# vi /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>

4.6:重启服务并测试PHP页面

[root@server3 ~]# systemctl restart httpd

在这里插入图片描述

五:搭建一个phpMyAdmin

5.1:PHPMyAdmin概述

  • phpMyAdmin 是众多 MySQL图形化管理工具中使用最为广泛的一种,是一款使用PHP 开发的基于B/S模式的 MySQL客户端软件,该工具是基于 Web 跨平台的管理程序,并且支持简体中文,用户可以在官网上下载最新版本的。
  • phpMyAdmin 为Web 开发人员提供了类似 Access,SQL Server 的图形化数据库操作界面,通过该管理工具可以对 MySQL 进行各种操作,如何创建数据库,数据表和生成 MySQL 数据库脚本文件等。

5.2:tar解压

[root@server3 myadm]# cd /opt/
[root@server3 opt]# ls
phpMyAdmin-4.7.6-all-languages.zip
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

5.3:修改配置文件

vi config.inc.php
$cfg['Servers'][$i]['host'] = '127.0.0.1'; 
#把localhost 改成IP 31

5.4:测试网页

http://192.168.158.30/myadm
使用root 以及前面为root配置的密码登录管理系统。可以对数据库进行管理操作了
在这里插入图片描述
在这里插入图片描述

  • 直接在网页上创建数据库名称

在这里插入图片描述

  • 在服务器上验证数据库

在这里插入图片描述
以上就搭建完成了。真的断断续续做了好久

  • 最后分享一个励志小短句

在这里插入图片描述
如果对您有用的话,点个三连吧,求求啦!

猜你喜欢

转载自blog.csdn.net/qyf158236/article/details/109065047