博主许久不更,最近在准备考试。LAMP目前最为成熟的一种企业网站应用模式,可提供动态Web站点应用及开发环境,以下就是博主搭建的整个环境,断断续续准备了好久。
目录
- 源代码编译
- 一:LAMP平台概述
-
- 1.1:什么是LAMP
- 1.2:构成组件
- 1.3:LAMP的优势
- 二:Apache服务安装
-
- 2.1:apache软件包及依赖包准备
- 2.2:安装编译器和其他工具
- 2.3:configure配置
- 2.4:make编译和make install
- 2.5:优化执行路径
- 2.6:配置启动脚本
- 2.7:编辑配置文件
- 2.8:重启httpd服务
- 2.9: 客户机测试访问html页面
- 三:MYSQL服务安装
-
- 3.1:MySQL概述
- 3.2:源码编译安装过程
- 3.3:配置cmake
- 3.4:make编译和make install
- 3.5:数据库目录进行权限调整
- 3.6:建立调整配置文件
- 3.7:设置环境变量
- 3.8:初始化数据库
- 3.9:启动服务
- 3.10:测试mysql
- 四:PHP服务安装
-
- 4.1:PHP概述
- 4.1:首先配置安装环境
- 4.3:配置configre
- 4.4:make编译和make install
- 4.5:编辑配置文件
- 4.6:重启服务并测试PHP页面
- 五:搭建一个phpMyAdmin
-
- 5.1:PHPMyAdmin概述
- 5.2:tar解压
- 5.3:修改配置文件
- 5.4:测试网页
源代码编译
一般来说,我们软件的安装方式有 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 10月 8 18:46 apr-1.6.2.tar.gz
-rw-r--r--. 1 root root 565507 10月 8 18:46 apr-util-1.6.0.tar.gz
-rw-r--r--. 1 root root 6567926 10月 8 18:46 httpd-2.4.29.tar.bz2
drwxr-xr-x. 2 root root 6 3月 26 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 10月 11 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配置的密码登录管理系统。可以对数据库进行管理操作了
- 直接在网页上创建数据库名称
- 在服务器上验证数据库
以上就搭建完成了。真的断断续续做了好久
- 最后分享一个励志小短句
如果对您有用的话,点个三连吧,求求啦!