详解LAMP源码编译安装

   2016-10-17 0
核心提示:详解LAMP源码编译安装LAMP简介LAMP 是当下非常流行的一套Web架构,我们可以在 GNU/Linux 下通过其他人打包的程序包来进行安装; 但是在生产环境中,很多时候都需要我们自己定制安装AMP,编译安装LAMP有以下几个优点根据生产环境灵活定制程序 优化编译参数,提

详解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 228 2016 apr-1.5.2.tar.gz
-rwxr-xr-x 1 root root 694427 228 2016 apr-util-1.5.4.tar.bz2
-rwxr-xr-x 1 root root 5101005 228 2016 httpd-2.4.16.tar.bz2
-rwxr-xr-x 1 root root 33278710 228 2016 mysql-5.6.26.tar.gz
-rwxr-xr-x 1 root root 1557603 228 2016 pcre-8.37.tar.bz2
-rwxr-xr-x 1 root root 14077633 228 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.gz
apr-util-1.5.4.tar.bz2
pcre-8.37.tar.bz2
httpd-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

详解LAMP源码编译安装

三、编译安装 MySQL

所需源码包:

cmake-2.8.8.tar.gz
mysql-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/mysql
log-error = /data/mysql/error.log
pid-file = /data/mysql/mysql.pid
user = mysql
tmpdir = /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-development /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源码编译安装

测试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/

详解LAMP源码编译安装

 
标签: MySQL LAMP
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Perl操作Mysql数据库 perl操作excel
    一. 安装DBI模块步骤1:从TOOLS栏目中下载DBI.zip,下载完后用winzip解开到一个temp目录,共有三个文件:ReadmeDBI.ppdDBI.tar.gz步骤2: 在DOS窗口下,temp目录中运行下面的DOS命令:ppm install DBI.ppd 如果提示无效命令,可在perl/bin目录下运行 二. 安装DBD
    02-09
  • Nodejs+Express+Mysql实现简单用户管理增删改查
    Nodejs+Express+Mysql实现简单用户管理增删改查
     源码地址  https://github.com/king-y/NodeJs/tree/master/user目录结构  mysql.jsvar mysql = require('mysql');var pool = mysql.createPool({host : '127.0.0.1',user : 'root',password : '',database : 's79'});exports.que
    02-09
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
    PHP 使用 Swoole - TaskWorker 实现异步操作 My
    在一般的 Server 程序中都会有一些耗时的任务,比如:发送邮件、聊天服务器发送广播等。如果我们采用同步阻塞的防水去执行这些任务,那么这肯定会非常的慢。Swoole 的 TaskWorker 进程池可以用来执行一些异步的任务,而且不会影响接下来的任务,很适合处理以
    02-09
  • Mysql数据库一个小程序实现自动创建分表。
    每当跨月的时候也是系统出问题最多的时候,没有表和字段缺失是两个最常见的错误。为了解决这个问题,研究了一下mysql的 information_schema 表:information_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型与访
    02-09
  • delphi10.3安装使用mySQL及遇到的问题(01)
    delphi10.3安装使用mySQL及遇到的问题(01)
    1】下载安装好mySQL环境2】FDConnection1的设置3】执行增删改SQL语句和查询Select语句4】客户端连接5]长文本类型,及SQLITE导出,导入到MySQL6】遇到过的问题及解决1】下载安装好mySQL环境,注意32位/64位。本篇为32位mysql32位下载链接: https://pan.baidu.c
    02-09
  • Delphi XE中使用dbExpress连接MySQL数据库疑难
    Delphi IDE中包含一个Data Explorer的组件,如下图所示:  该组件基于dbExpress(包含TSQLConnection、TSQLDataSet、TSQLQuery、TSQLStoredProc、TSQLTable、TsqlServerMethod、TSQLMonitor、TSimpleDataSet)。但是因为该组件只提供了各种数据库的抽象驱动
    02-09
  • DELPHI 10.2 TOKYO搭建LINUX MYSQL开发环境
    DELPHI 10.2 TOKYO搭建LINUX MYSQL开发环境笔者使用ubuntu64位LINUX首先必须保证LINUX可以连互联网。安装MYSQLsudo apt-get update sudo apt-get install mysql-serversudo apt-get install mysql-clientsudo apt-get install libmysqlclient-dev复制MYSQL的
    02-09
  • Centos7上安装MySQL5.5报错,/usr/bin/perl is
    今天在Centos7上安装MySQL5.5时报了如下错/usr/bin/perl is needed by MySQL-server-...按照网上的几种说法进行了尝试1、在perl官网下载perl后安装到相应的目录下,仍无法解决问题2、采用强制安装 rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm --nodeps 
    02-09
  • 用perl做数据库迁移,从MSSQL到MYSQL(三)--V1
    从前边的程序的运行情况来看,程序是可以运行的,但速度太扯了,在读写1000W条之前速度还是可以的(大概2000条/秒左右),但过了1000W之后(变成400条/秒左右),当然这个与SQL SERVER读取,网络还有服务器等性能都是有关系的,但,这速度,不晓得有测试过的
    02-09
  • R语言连接MYSQL r语言连接数据库
     操作系统:centos 6.4 64bit R语言可以使用RMySQL来连接Mysql数据库,直接使用数据库里面的数据生成图像。 这个是RMYSQL的说明:http://cran.r-project.org/web/packages/RMySQL/index.htmlRMYSQL的依赖:Depends:R (≥ 2.8.0), methods, DBI (≥ 0.2-2),
    02-09
点击排行