LAMP编译安装

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

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

L:Linux
A:Apache
M:MySQL
P:PHP

LAMP平台与编译安装

LAMP平台概述

LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整台系统和相关软件,能够提供动态web站点服务及其应用开发环境
LAMP是一个缩写词,具体包括Linux操作系统,Apache网站服务器,MySQL数据库服务器,PHP(或perl,Python)网页编程语言

构建LAMP平台顺序

在构建LAMP平台时,各组件的安装顺序依次为Linux,Apache,MySQL,PHP
其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通web服务器和数据库系统以协同工作

编译安装的优点

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

编译安装的基本过程
在这里插入图片描述

解包
开源软件的源代码包一般为TarBall形式,扩展名为“.tar.gz”或“.tar.bz2”,都可以使用tar命令进行解压。
在Linux系统中,通常将各种软件的源代码目录保存到“/sur/src”目录中,便于集中管理。

习惯上将软件包解压到/sur/src/目录中
解包后源代码文件位置:/usr/src/软件名-版本号/

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

配置工作通常使用源码目录中的configure脚本完成
执行“./configure --help”可查看帮助
典型的配置选项:–prefix=软件安装目录(指定软件包安装的目标文件夹)

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

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

Apache网站服务源码编译安装

Apache起源

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

主要特点

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

编译安装的优点

具有较大的自由度,功能可定制

可及时获得最新的软件版本

普遍适用于大多数Linux版本,便于移植使用

MySQL服务源码编译安装

MySQL概述

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

PHP代码源码编译安装

PHP概述

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

实验

[root@localhost /]# cd /opt
[root@localhost opt]# mkdir apache mysql php

编译安装Apache

[root@localhost opt]# cd apache/

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

[root@localhost apache]# tar xzvf apr-1.6.2.tar.gz
[root@localhost apache]# tar xzvf apr-util-1.6.0.tar.gz
[root@localhost apache]# tar xjvf httpd-2.4.29.tar.bz2 
[root@localhost apache]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost apache]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
[root@localhost apache]# yum -y install \
> gcc \		//编译器
> gcc-c++ \	//编译器
> make \		//make工具
> pcre-devel \	//支正则表达式的工具
> expat-devel \	//使网站能解析标签语言的工具
> perl		//Perl语言工具
[root@localhost apache]# cd httpd-2.4.29/
[root@localhost httpd-2.4.29]# ./configure \
> --prefix=/usr/local/httpd \		//指定路径
> --enable-so \			//开启核心功能模块
> --enable-rewrite \			//开启重写功能
> --enable-charset-lite \		//开启字符集
> --enable-cgi			//开启通用网关接口
[root@localhost httpd-2.4.29]# make && make install
[root@localhost httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

[root@localhost httpd-2.4.29]# vim /etc/init.d/httpd		//在行首插入
# chkconfig: 35 85 21	//35级别自动运行 第85个启动 第21个关闭
# description: Apache is a World Wide Web server
[root@localhost httpd-2.4.29]# chkconfig --add httpd	//将httpd加入到service管理器
[root@localhost httpd-2.4.29]# vim /usr/local/httpd/conf/httpd.conf 
197 ServerName www.hui.com:80
 
 51 Listen 192.168.20.10:80	//开启ipv4监听自己的地址
 52 #Listen 80		//注释掉ipv6监听
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/	//建立软连接方便管理
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin/		//建立软连接方便管理

[root@localhost httpd-2.4.29]# systemctl stop firewalld.service		//关闭防火墙 
[root@localhost httpd-2.4.29]# iptables -F			//清空iptables规则
[root@localhost httpd-2.4.29]# setenforce 0			//关闭核心防护

[root@localhost httpd-2.4.29]# httpd -t			
[root@localhost httpd-2.4.29]# apachectl -t
[root@localhost httpd-2.4.29]# service httpd start

在宿主机上测试
在这里插入图片描述

编译安装MySQL

[root@localhost httpd-2.4.29]# cd /opt/mysql/	
[root@localhost mysql]# yum -y install ncurses-devel autoconf cmake

mysql-5.6.26.tar.gz

[root@localhost mysql]# tar xzvf mysql-5.6.26.tar.gz 
[root@localhost mysql]# cd mysql-5.6.26
[root@localhost mysql-5.6.26]# 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	//指通信文件
[root@localhost mysql-5.6.26]# make && make install
[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y
[root@localhost mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql-5.6.26]# chmod +x /etc/init.d/mysqld 
[root@localhost mysql-5.6.26]# chkconfig --add /etc/init.d/mysqld 	//将mysqld添加到service服务器中
[root@localhost mysql-5.6.26]# chkconfig mysqld --level 35 on		//设置mysqld在运行级别3和5都是开启的
[root@localhost mysql-5.6.26]# echo "PATH=$PATH:/usr/local/mysql/bin">>/etc/profile	
[root@localhost mysql-5.6.26]# source /etc/profile
[root@localhost mysql-5.6.26]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
[root@localhost mysql-5.6.26]# useradd -s /sbin/nologin mysql
[root@localhost mysql-5.6.26]# chown -R mysql.mysql /usr/local/mysql/
[root@localhost mysql-5.6.26]# /usr/local/mysql/scripts/mysql_install_db  \
> --user=mysql \
> --ldata=/var/lib/mysql \
> --basedir=/usr/local/mysql \
> --datadir=/home/mysql
[root@localhost mysql-5.6.26]# vim /etc/profile
78 PATH=$PATH:/usr/local/mysql/bin
[root@localhost mysql-5.6.26]# source /etc/profile
[root@localhost mysql-5.6.26]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin:/usr/local/mysql/bin
[root@localhost mysql-5.6.26]# vim /etc/init.d/mysqld 
 46 basedir=/usr/local/mysql
 47 datadir=/home/mysql

[root@localhost mysql-5.6.26]# service mysqld start
Starting MySQL. SUCCESS! 
[root@localhost mysql-5.6.26]# netstat -anpt | grep 3306

[root@localhost mysql-5.6.26]# mysqladmin -u root -p password "abc123"
Enter password: 
Warning: Using a password on the command line interface can be insecure.

[root@localhost mysql-5.6.26]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
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> 
mysql> show databases;
mysql> exit
Bye

编译安装php

[root@localhost mysql-5.6.26]# cd /opt/php/
[root@localhost php]# yum -y install \
> gd \
> libpng \
> libpng-devel \
> pcre \
> pcre-devel \
> libxml2-devel \
> libjpeg-devel

php-5.6.11.tar.bz2

[root@localhost php]# tar xjvf php-5.6.11.tar.bz2 
[root@localhost php]# cd php-5.6.11/
[root@localhost php-5.6.11]# ./configure \
> --prefix=/usr/local/php5 \
> --with-gd \
> --with-zlib \
> --with-apxs2=/usr/local/httpd/bin/apxs \
> --with-mysql=/usr/local/mysql \
> --with-config-file-path=/usr/local/php5 \
> --enable-mbstring
[root@localhost php-5.6.11]# make && make install
[root@localhost php-5.6.11]# cp php.ini-development /usr/local/php5/php.ini
[root@localhost php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/

[root@localhost php-5.6.11]# vim /etc/httpd.conf 
382     AddType application/x-httpd-php .php
383     AddType application/x-httpd-php-source .phps

256     DirectoryIndex index.php index.html

[root@localhost php-5.6.11]# service httpd stop
[root@localhost php-5.6.11]# service httpd start
[root@localhost php-5.6.11]# vim /usr/local/httpd/htdocs/index.html 
<?php
phpinfo();
?>
[root@localhost php-5.6.11]# mv /usr/local/httpd/htdocs/index.html /usr/local/httpd/htdocs/index.php

在宿主机测试
在这里插入图片描述

测试

创建MySQL bbs数据库

[root@localhost bbs]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
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> 
mysql> create database bbs;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on bbs.* to 'bbsuser'@'%' identified by 'admin123';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)
mysql> quit
Bye

安装论坛

[root@localhost php-5.6.11]# cd /opt

Discuz_X2.5_SC_UTF8.zip

[root@localhost opt]# unzip Discuz_X2.5_SC_UTF8.zip -d /opt/dis
[root@localhost opt]# cd /opt/dis
[root@localhost opt]# cp -r upload/ /usr/local/httpd/htdocs/bbs
[root@localhost opt]# cd /usr/local/httpd/htdocs/bbs
[root@localhost bbs]# chown -R daemon ./config/
[root@localhost bbs]# chown -R daemon ./data/
[root@localhost bbs]# chown -R daemon ./uc_client/
[root@localhost bbs]# chown -R daemon ./uc_server/data/

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值