实战:LAMP源码编译安装

家住海边喜欢浪:zhang789.blog.51cto.com

目录

  • 详解LAMP源码编译安装

    • LAMP简介

    • 一、准备工作

    • 二、编译安装 Apache

    • 三、编译安装 MySQL

    • 四、编译安装 PHP

  • 测试LAMP搭建开源数据web管理程序phpMyadmin

详解LAMP源码编译安装

LAMP简介

LAMP是当下非常流行的一套Web架构,我们可以在GNU/Linux下通过其他人打包的程序包来进行安装; 但是在生产环境中,很多时候都需要我们自己定制安装AMP,编译安装LAMP有以下几个优点

根据生产环境灵活定制程序 
优化编译参数,提高性能 
解决不必要的软件依赖

一、准备工作

卸载yum或rpm安装的amp软件

1、在编译安装lamp之前,首先先卸载已存在的rpm包。

[root@localhost ~]# yum -y remove httpd[root@localhost ~]# yum -y remove mysql-server mysql[root@localhost ~]# yum -y remove php[root@localhost ~]# yum -y remove php-mysql

2、禁用SeLinux

selinux可能会致使编译安装失败,我们先禁用它。

[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config  #永久禁用,需要重启生效。或[root@localhost ~]# setenforce 0  #临时禁用,不需要重启(推荐)。

3、yum安装必要工具

[root@localhost ~]# yum -y groupinstall "Development tools" "Server Platform Development"

4、下载所需源码

Apache=http://httpd.apache.org/                                     httpd主程序包MySQL=http://dev.mysql.com/downloads/mysql/         mysql主程序包PHP=http://php.net/downloads.php                        php主程序包apr=http://apr.apache.org/                              apr是httpd的依赖包apr-util=http://apr.apache.org/                         apr-util是httpd的第二个依赖包pcre=http://pcre.org/                                   pcre是httpd的三个依赖包

下载的源码包统一放在 /usr/local/src/ 目录下。

[root@localhost ~]# ll /usr/local/src/总用量 54444-rwxr-xr-x 1 root root  1031613 2月  28 2016 apr-1.5.2.tar.gz-rwxr-xr-x 1 root root   694427 2月  28 2016 apr-util-1.5.4.tar.bz2-rwxr-xr-x 1 root root  5101005 2月  28 2016 httpd-2.4.16.tar.bz2-rwxr-xr-x 1 root root 33278710 2月  28 2016 mysql-5.6.26.tar.gz-rwxr-xr-x 1 root root  1557603 2月  28 2016 pcre-8.37.tar.bz2-rwxr-xr-x 1 root root 14077633 2月  28 2016 php-5.6.13.tar.bz2

二、编译安装 Apache

Apache官方说:

与Apache 2.2.x相比,Apache 2.4.x提供了很多性能方面的提升,包括支持更大流量、更好地支持云计算、利用更少的内存处理更多的并发等。除此之外,还包括性能提升、内存利用、异步I/O的支持、动态反向代理设置、与时间驱动的Web服务器相当或更好的性能、更强大的处理资源分配能力,更便捷的缓存支持以及可定制的高速服务器和代理等。其它的功能还包括更简单的错误分析、更灵活的设置项、更强大的验证机制和更完整的文档。

Apache服务器项目管理委员会和Apache基金会主席Jim Jagielski表示,他们希望终端用户能真正地看到性能进步,Apache 2.4.x比许多以速度见长的Web服务器更快,例如 Nginx。 
apache-2.2与新出的apache-2.4安装不同的地方在于,2.4版的已经不自带apr库,所以在安装apache-2.4之前,需要下载apr。

所需源码包

apr-1.5.2.tar.gzapr-util-1.5.4.tar.bz2pcre-8.37.tar.bz2httpd-2.4.16.tar.bz2

安装Apache依赖库

1、安装 apr
[root@localhost ~]# cd /usr/local/src/[root@localhost src]# tar xf apr-1.5.2.tar.gz[root@localhost src]# cd apr-1.5.2[root@localhost apr-1.5.2]# ./configure --prefix=/usr/local/apr[root@localhost apr-1.5.2]# make && make install
2、安装 apr-util
[root@localhost ~]# cd /usr/local/src/[root@localhost src]# tar xf apr-util-1.5.4.tar.bz2 [root@localhost src]# cd apr-util-1.5.4[root@localhost apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr[root@localhost apr-util-1.5.4]# make && make install
3、安装 pcre
[root@localhost apr-util-1.5.4]# cd /usr/local/src/[root@localhost src]# tar xf pcre-8.37.tar.bz2 [root@localhost src]# cd pcre-8.37[root@localhost pcre-8.37]# ./configure --prefix=/usr/local/pcre[root@localhost pcre-8.37]# make && make install
4、安装 Apache2.4.16
[root@localhost src]# tar xf httpd-2.4.16.tar.bz2 [root@localhost src]# cd httpd-2.4.16[root@localhost httpd-2.4.16]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --enable-so --enable-rewrite --enable-ssl --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util[root@localhost httpd-2.4.16]# make && make install

编译参数解释: 
--prefix=/usr/local/apache :指定安装目录 
--sysconfdir=/etc/httpd:配置文件安装路径 
--with-apr=/usr/local/apr: apr库 
--with-apr-util=/usr/local/apr-util :apr-util库 
--with-pcre=/usr/local/pcre : pcre库 
--enable-so : 允许运行时加载DSO模块(注意:so模块需静态编译) 
--enable-ssl=shared: 将ssl模块编译为DSO 
--enable-headers=shared : 将headers模块编译为DSO 
--enable-rewrite=shared : 将rewrite模块编译为DSO

5、初始化配置Apache
[root@localhost httpd-2.4.16]# /bin/cp /usr/local/apache2/bin/apachectl /etc/init.d/apache2[root@localhost httpd-2.4.16]# groupadd apache #添加apache用户组及用户[root@localhost httpd-2.4.16]# useradd -g apache -s /usr/sbin/nologin apache[root@localhost httpd-2.4.16]# chown -R apache:apache /usr/local/apache2[root@localhost httpd-2.4.16]# chmod +x /etc/init.d/apache2[root@localhost httpd-2.4.16]# chkconfig --add apache2    #增加执行权限[root@localhost httpd-2.4.16]# chkconfig --level 2345 apache2 on   #设置开机启动[root@localhost httpd-2.4.16]# chkconfig --list apache2    #查看是否设置成功httpd           0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭
6、修改init命令文件
主要是修改文件中pidfile参数的值(进程文件指向)[root@localhost ~]# vim /etc/init.d/httpd#!/bin/sh# chkconfig: 2345 64 36             #这个是启动级别的服务,2345是指那些级别启动,64是开启顺序,应该在network服务的后面,36是关闭顺序,应该在network的前面,这里并不是注释#默认network的是:2345 10 90# description: Apache2.4.16 start script            #描述字段,有了这两个字段,就可以用chkconfig命令控制

pidfile=${PIDFILE-/var/run/${prog}.pid}修改为pidfile=${PIDFILE-/usr/local/apache/logs/${prog}.pid}[root@localhost httpd-2.4.16]# hostname mageedu.com[root@localhost httpd-2.4.16]# echo "172.16.13.162 mageedu.com" >> /etc/hosts   //启动不会报错[root@localhost httpd-2.4.16]# /etc/init.d/apache2 start

三、编译安装 MySQL

所需源码包:

cmake-2.8.8.tar.gzmysql-5.6.26.tar.gz
安装cmake

MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具。

因此,我们首先要在系统中源码编译安装cmake工具。

[root@localhost ~]# cd /usr/local/src/cmake-2.8.8[root@localhost cmake-2.8.8]# ./configure[root@localhost cmake-2.8.8]# make && make install
编译安装配置MySQL

1、切换至 MySQL源码 解压目录

[root@localhost ~]# cd /usr/local/src/

2、创建所需data目录

[root@localhost src]# mkdir -pv /data/mysql

3、创建mysql用户和mysql组

[root@localhost src]# groupadd -r mysql[root@localhost src]# useradd -g mysql -r -s /sbin/nologin mysql

4、cmake编译安装

[root@localhost src]# tar xf mysql-5.6.26.tar.gz [root@localhost src]# cd mysql-5.6.26[root@localhost mysql-5.6.26]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql -DMYSQL-USER=mysql[root@localhost src]# make && make install

5、初始化MySQL配置

[root@localhost src]# ln -s /usr/local/mysql/bin/* /bin/[root@localhost src]# chmod +x /usr/local/mysql/scripts/mysql_install_db[root@localhost src]# /usr/local/mysql/scripts/mysql_install_db \--defaults-file=/etc/my.cnf  \--basedir=/usr/local/mysql/ \--datadir=/data/mysql \--user=mysql
配置开机自动启动
[root@localhost src]# /bin/cp support-files/mysql.server /etc/init.d/mysqld[root@localhost src]# chmod +x /etc/init.d/mysqld[root@localhost src]# chkconfig --add mysqld[root@localhost src]# chkconfig --level 2345 mysqld on[root@localhost src]# chkconfig --list mysqld #查看是否已应用上
修改配置文件
[root@localhost src]# /bin/cp support-files/my-default.cnf /etc/my.cnf[root@localhost src]# vim /etc/my.cnf在[mysqld]节点中添加:datadir = /data/mysqllog-error = /data/mysql/error.logpid-file = /data/mysql/mysql.piduser = mysqltmpdir = /tmp
启动MySQL
[root@localhost src]# service mysqld start  # 或 /etc/init.d/mysqld start[root@localhost src]# /usr/local/mysql/bin/mysqladmin -u root -p password "123456"

四、编译安装 PHP

安装PHP依赖库

yum install -y libxml2 libxml2-devel bzip2-devel

1、安装 libmcrypt

[root@localhost PHP]# cd /usr/local/src/PHP[root@localhost PHP]# tar -xzvf ./libmcrypt-2.5.8.tar.gz[root@localhost PHP]# cd ./libmcrypt-2.5.8[root@localhost PHP]# ./configure --prefix=/usr[root@localhost PHP]# make && make install

2、安装 mhash

[root@localhost PHP]# cd /usr/local/src/PHP[root@localhost PHP]# tar -xzvf ./mhash-0.9.9.9.tar.gz[root@localhost PHP]# cd ./mhash-0.9.9.9[root@localhost PHP]# ./configure --prefix=/usr[root@localhost PHP]# make && make install

3、安装 mcrypt

[root@localhost PHP]# /sbin/ldconfig  #搜索出可共享的动态链接库[root@localhost PHP]# cd /usr/local/src/PHP[root@localhost PHP]# tar -xzvf ./mcrypt-2.6.8.tar.gz[root@localhost PHP]# cd ./mcrypt-2.6.8[root@localhost PHP]# ./configure[root@localhost PHP]# make && make install

4、安装 libiconv

[root@localhost PHP]# cd /usr/local/src/PHP[root@localhost PHP]# tar -xzvf ./libiconv-1.14.tar.gz[root@localhost PHP]# cd ./libiconv-1.14[root@localhost PHP]# ./configure --prefix=/usr/local/libiconv[root@localhost PHP]# make && make install

安装 PHP

[root@localhost PHP]# tar -xzvf ./php-5.6.13.tar.gz[root@localhost PHP]# cd php-5.6.13/[root@localhost php-5.6.13]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-mcrypt --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2  --enable-maintainer-zts[root@localhost php-5.6.13]# make && make install

编译参数解释: 
--prefix=/usr/local/php : 设置安装路径 
--with-apxs2=/usr/local/apache2/bin/apxs : 编译共享的 Apache 2.0 模块 
--with-config-file-path=/etc : 指定配置文件php.ini地址 
--with-config-file-scan-dir=/etc/php.d : 指定额外的ini文件目录 
--with-openssl : 编译OpenSSL支持 
--with-zlib: 编译zlib支持 
--enable-bcmath : 启用BC风格精度数学函数 
--with-bz2 : BZip2支持 
--with-gd : GD支持 
--with-mhash : mhash支持 
--enable-mbstring : 启用支持多字节字符串 
--with-mcrypt : 编译mcrypt加密支持 
--enable-zip : 启用zip 读/写支持 
--with-iconv=/usr/local/libiconv : iconv支持 
--with-curl : CRUL支持 
--with-mysql=/usr/local/mysql : 启用mysql支持 
--with-pdo-mysql=/usr/local/mysql : 启用pdo-mysql支持 
--without-pear : 不安装PEAR

复制配置文件php.ini

[root@localhost php-5.6.13]# cp /usr/local/src/php-5.6.13/php.ini-production /etc/php.ini

整合Apache

1、在/etc/httpd/conf/httpd.conf文件中加入PHP文件类型解析(加在文件最后即可)

[root@localhost ~]# sed -i '378aAddType application/x-httpd-php .php' /etc/httpd/httpd.conf[root@localhost ~]# sed -i '379aAddtype application/x-httpd-php-source .phps' /etc/httpd/httpd.conf[root@localhost ~]# sed -i 's/DirectoryIndex.*index.*/DirectoryIndex index.php index.html/g' /etc/httpd/httpd.conf

2、重启Apache

[root@localhost ~]# service httpd restart  # 或 /etc/init.d/httpd restart

3、添加测试页面

[root@localhost php-5.6.13]# cat /usr/local/apache2/htdocs/index.php <?php    phpinfo()?>

测试LAMP搭建开源数据web管理程序phpMyadmin

[root@localhost src]# tar xf phpMyAdmin-3.5.8.2-all-languages.tar.gz[root@localhost src]# ln -s /usr/local/src/phpMyAdmin-3.5.8.2 /usr/local/apache2/htdocs/pma/[root@localhost htdocs]# chmod 755 pma[root@localhost htdocs]# cd pma[root@localhost pma]# cp -f config.sample.inc.php config.inc.php[root@localhost htdocs]# chown -R apache:apache pma/

转载于:https://blog.51cto.com/zhang789/1862437

详解LAMP源码编译安装相关推荐

  1. LAMP详解及源码编译安装过程

      LAMP 指的Linux (操作系统). ApacheHTTP 服务器, MySQL (数据库软件) 和PHP (有时也是指Perl 或 Python) 的第一个字母,一般用来建立的web 服务器 ...

  2. LAMP源码编译安装之Apache

    LAMP源码编译安装之Apache 一.LAMP的基本架构概述 1.LAMP架构 2.各组件的主要作用如下 二.编译安装Apache httpd服务 1.关闭防火墙,将安装Apache所需软件包传到/ ...

  3. Linux系统中软件的“四”种安装原理详解:源码包安装、RPM二进制安装、YUM在线安装、脚本安装包...

    一.Linux软件包分类 1.1 源码包 优点: 开源,如果有足够的能力,可以修改源代码: 可以自由选择所需的功能: 软件是编译安装,所以更加适合自己的系统,更加稳定.效率更高: 卸载方便: 缺点: ...

  4. LAMP源码编译安装配置+wordpress

    什么是LAMP呢?LAMP就是Linux+apache+mysql+php,一组常用来搭建动态网站或者静态网站的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同 ...

  5. LAMP源码编译安装及一键部署LAMP架构

    文章目录 一.什么是LAMP? 1.LAMP平台概述 2.构建LAMP平台顺序 3.编译安装的优点 4.各组件的主要作用 二.LAMP架构流向 三.编译安装Apache服务 1.先关闭防火墙 2.将软 ...

  6. php源码详解,PHP源码编译详解

    编译php包:php-5.4.26.tar.bz2 解压php-5.4.26.tar.bz2后,进入php解压目录: ./configure --prefix=/usr/local/php --ena ...

  7. 我的LAMP源码编译安装linux+Apache+mysql+php

    httpd-2.2.17.tar.gz mysql-5.1.51.tar.gz php-5.2.17.tar.gz mysql的安装 #安装需要的库 yum -y install ncurses nc ...

  8. Web服务 源码编译安装LAMP架构

    Web服务 源码编译安装LAMP架构 一.LAMP架构 1.LAMP架构是什么 2.各组件的主要作用 二.编译安装Apache httpd服务 1.关闭防火墙,将安装Apache所需软件包传到/opt ...

  9. 源码编译安装LAMP

    源码编译安装LAMP 前言 一.LAMP概述 (1)各组件的作用 (2)各组件安装顺序 (3)数据流向 二.编译安装apache httpd服务 (1)关闭防火墙,将安装apache的所需软件包上传到 ...

最新文章

  1. 并发编程专题——第二章(并发编程之Synchronized详解)
  2. 【编程题目】求二叉树中节点的最大距离
  3. 优雅的读懂支持向量机 SVM 算法
  4. 使用Java 8.0进行类型安全的依赖项注入
  5. 计算机可以调剂其他专业吗,机械能跨专业调剂计算机吗
  6. [转] 理解 JavaScript 中的 Array.prototype.slice.apply(arguments)
  7. 计算机组成原理——第一章
  8. java 实现MQTT客户端
  9. XJad(Java反编译工具)v2.2绿色版
  10. mysql替换占位符_【占位符替换】替换String中的占位符标志位{placeholder}
  11. php 检测硬盘,php测试硬盘读写速度脚本
  12. 解决百度云下载缓慢问题
  13. SQL Server 教程 之 一目了然
  14. Unity3d任务模型自动寻路(人员疏散)
  15. 单片机DAC输出方波简易实验
  16. vue2中的mixin
  17. SQL Server 登录出错 用户 ‘sa‘ 登录失败 (Microsoft SQL Server, Error: 18456)
  18. web开发下的HTTP编程及接口回调的使用
  19. 分享127个ASP源码,总有一款适合您
  20. 一个grpcServer实现多个proto文件

热门文章

  1. 【Android View绘制之旅】主脉络
  2. linux php安装RabbitMq扩展
  3. 【AC自动机】【字符串】【字典树】AC自动机 学习笔记
  4. android studio 如何让包名展开
  5. Android面试收集录12 View测量、布局及绘制原理
  6. 作为首席架构师,我是如何选择并落地架构方案的?
  7. SQLite数据库操作
  8. css 中input和select混排对齐问题
  9. Vue里标签嵌套限制问题解决------解析DOM模板时注意事项:
  10. Google浏览器(您的连接不是私密连接)解决方案