lamp环境编译安装基于centos6

一、准备工作

1)关闭selinux,iptables

[root@centos ~]# sed -i 7s/enforcing/disabled/ /etc/selinux/config
[root@centos ~]# service iptables stop
[root@centos ~]# chkconfig iptables off
#记得重启

2)配置好本地光盘yum源,实验机器为cenos6.8

[root@centos ~]# mount /dev/sr0 /mnt/cdrom1
[root@centos ~]# mount /dev/sr1 /mnt/cdrom2
#光盘源配置
    [c6-media]
    name=CentOS-$releasever - Media
    baseurl=file:///mnt/cdrom1/
            file:///mnt/cdrom2/
    gpgcheck=0
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

3)安装相关编译工具

[root@centos ~]#  yum -y install gcc gcc-c++ make 

4)准备好相关源码包

#建立一个专门存放源码包文件夹
mkdir  /lamp
#解压参考脚本
#!/bin/bash
cd /lamp
/bin/ls *.tar.gz >ls.txt
for i in `/bin/cat ls.txt`
do
	tar -zxf $i
	if [ $? -eq 0 ];then
		echo " $i 解压成功"
	else
		echo " $i 解压失败" >> error.txt
	fi
done 
/bin/rm -rf ls.txt

二、编译安装

1、安装 libxml2

Libxml2 是一个 xml c 语言版的解析器,本来是为 Gnome 项目开发的工具,是一个基于 MIT License 的免 费开源软件。它除了支持 c 语言版以外,还支持 c++、PHP、Pascal、 Ruby、Tcl 等语言的绑定,能在 Windows、 Linux、Solaris、MacOsX 等平台上运行。

[root@centos ~]#  yum install -y libxml2-devel python-devel 
[root@centos ~]# cd /lamp/libxml2-2.9.8
[root@centos libxml2-2.9.8]# ./configure --prefix=/usr/local/libxml2/ 
[root@centos libxml2-2.9.8]# make && make install
2、安装libmcrypt

libmcrypt 是加密算法扩展库。支持 DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR, SERPENT, SAFER+等算法。

[root@centos libxml2-2.9.8]# cd /lamp/libmcrypt-2.5.8
[root@centos libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt/
[root@centos libmcrypt-2.5.8]# make && make install

安装 libltdl,也在 libmcrypt 源码目录中

[root@centos libmcrypt-2.5.8]# cd /lamp/libmcrypt-2.5.8/libltdl
[root@centos libltdl]#  ./configure --enable-ltdl-install
[root@centos libltdl]# make && make install
3、 安装 mhash

mhash 是基于离散数学原理的不可逆向的 php 加密方式扩展库,其在默认情况下不开启。mhash 的可 以用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存(如密码)等。

[root@centos libltdl]# cd /lamp/mhash-0.9.9.9
[root@centos mhash-0.9.9.9]# ./configure && make && make install
4、安装 mcrypt

mcrypt 是 php 里面重要的加密支持扩展库。mcrypt 库支持 20 多种加密算法和 8 种加密模式

[root@centos mhash-0.9.9.9]# cd /lamp/mcrypt-2.6.8
[root@centos mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib #变量:LD_LIBRARY_PATH 用于指定 libmcrypt 和 mhash 的库的位置
[root@centos mcrypt-2.6.8]# ./configure --with-libmcrypt-prefix=/usr/local/libmcrypt
[root@centos mcrypt-2.6.8]# make && make install
5、安装 zlib

zlib 是提供数据压缩用的函式库,由 Jean-loup Gailly 与 Mark Adler 所开发,初版 0.9 版在 1995 年 5 月 1 日发表。zlib 使用 DEFLATE 算法,最初是为 libpng 函式库所写的,后来普遍为许多软件所 使用。此函式库为自由软件,使用 zlib 授权

[root@centos mcrypt-2.6.8]#  cd /lamp/zlib-1.2.8
[root@centos zlib-1.2.8]# ./configure && make && make install
6、安装 libpng

libpng 软件包包含 libpng 库.这些库被其他程式用于解码 png 图片

[root@centos zlib-1.2.8]# cd /lamp/libpng-1.2.31
[root@centos libpng-1.2.31]# ./configure --prefix=/usr/local/libpng
[root@centos libpng-1.2.31]# make && make install
7、安装 jpeg6

jpeg6 提供用于解码.jpg 和.jpeg 图片的库文件

#创建目录
[root@centos libpng-1.2.31]# mkdir /usr/local/jpeg6 
mkdir /usr/local/jpeg6/bin 
mkdir /usr/local/jpeg6/lib 
mkdir /usr/local/jpeg6/include 
mkdir -p /usr/local/jpeg6/man/man1
[root@centos libpng-1.2.31]# yum -y install libtool* 
[root@centos libpng-1.2.31]# cd /lamp/jpeg-6b
复制 libtool 中的文件,覆盖 jpeg-6b 中的文件(64 位中的问题) 
[root@centos jpeg-6b]# cp -a /usr/share/libtool/config/config.sub ./
[root@centos jpeg-6b]# cp -a /usr/share/libtool/config/config.guess ./
[root@centos jpeg-6b]# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
[root@centos jpeg-6b]# make && make install
8、安装 freetype

FreeType 库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种 字体格式文件,支持单色位图、反走样位图的渲染。

[root@centos jpeg-6b]#  cd /lamp/freetype-2.3.5 
[root@centos freetype-2.3.5]# ./configure --prefix=/usr/local/freetype/
[root@centos freetype-2.3.5]# make && makre install 
9、安装 Apache

1)、源码包 2.4.*版本中默认没有集成 apr 的依赖包,所以需要提前解决依赖问题

[root@centos freetype-2.3.5]# yum install expat-devel -y
[root@centos freetype-2.3.5]#  cp  -a  /lamp/apr-1.7.0 /lamp/httpd-2.4.41/srclib/apr
[root@centos freetype-2.3.5]#  cp  -a  /lamp/apr-util-1.6.1 /lamp/httpd-2.4.41/srclib/apr-util

2)、Apache 默认需要依赖 pcre 软件,但由于 Apache 软件版本较高,则系统预安装的 pcre 无法使用, 所以需要人为手动安装适合版本。

[root@centos freetype-2.3.5]# cd /lamp/pcre-8.43-RC1
[root@centos pcre-8.43-RC1]# ./configure && make && make install

3)、Apache 的加密传输模块 mod_ssl,需要安装此软件产生

[root@centos pcre-8.43-RC1]# yum install openssl-devel  -y

4)、httpd 软件安装

[root@centos pcre-8.43-RC1]# cd /lamp/httpd-2.4.41
[root@centos httpd-2.4.41]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/usr/local/apache2/etc --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-ssl
[root@centos httpd-2.4.41]# make && make install
10、安装 ncurses

Ncurses 提供字符终端处理库,包括面板和菜单。它提供了一套控制光标,建立窗口,改变前 景背景颜色以及处理鼠标操作的函数。使用户在字符终端下编写应用程序时绕过了那些恼人的底层机制

[root@centos httpd-2.4.41]# yum -y install ncurses-devel
[root@centos httpd-2.4.41]# cd /lamp/ncurses-5.9
[root@centos ncurses-5.9]#  ./configure --with-shared --without-debug --without-ada --enable-overwrite
[root@centos ncurses-5.9]# make && make install
11、安装 cmake 和 bison

mysql 在 5.5 以后,不再使用./configure 工具,进行编译安装。而使用 cmake 工具替代了./configure 工具。bison 是一个自由软件,用于自动生成语法分析器程序,可用于所有常见的操作系统

[root@centos ncurses-5.9]# yum -y install cmake bison
12、安装 MySQL

1)、创建mysql用户

[root@centos ncurses-5.9]# useradd -r -s /sbin/nologin mysql

2)、安装mysql

[root@centos ncurses-5.9]# cd /lamp/mysql-5.5.48
[root@centos mysql-5.5.48]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
[root@centos mysql-5.5.48]# make && make install 

参数解释

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  安装位置 
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock   指定 socket(套接字)文件位置 
-DEXTRA_CHARSETS=all      扩展字符支持 
-DDEFAULT_CHARSET=utf8         默认字符集 
-DDEFAULT_COLLATION=utf8_general_ci      默认字符校对 
-DWITH_MYISAM_STORAGE_ENGINE=1      安装 myisam 存储引擎 
-DWITH_INNOBASE_STORAGE_ENGINE=1      安装 innodb 存储引擎 
-DWITH_MEMORY_STORAGE_ENGINE=1     安装 memory 存储引擎  
-DWITH_READLINE=1          支持 readline 库 
-DENABLED_LOCAL_INFILE=1        启用加载本地数据 
-DMYSQL_USER=mysql        指定 mysql 运行用户 
-DMYSQL_TCP_PORT=3306      指定 mysql 端口 

3)、修改 MySQL 目录的用户归属

[root@centos mysql-5.5.48]# cd /usr/local/mysql/
[root@centos mysql]# chown -R root .
[root@centos mysql]# chown -R mysql data

4)、生成配置文件,并初始化授权表

[root@centos mysql]# cp -a /lamp/mysql-5.5.48/support-files/my-medium.cnf /etc/my.cnf
[root@centos mysql]#  cd /usr/local/mysql 
[root@centos mysql]#  ./scripts/mysql_install_db --user=mysql

5)、启动服务

[root@centos mysql]# /usr/local/mysql/bin/mysqld_safe &

6)、设置密码

[root@centos mysql]# /usr/local/mysql/bin/mysqladmin -uroot password 123456

7)、登录mysql

[root@centos mysql]# /usr/local/mysql/bin/mysql -u root -p
13 、安装 PHP
[root@centos mysql]# cd /lamp/php-7.3.11
[root@centos php-7.3.11]# ./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/libpng/ --with-freetype-dir=/usr/local/freetype/ --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config
[root@centos php-7.3.11]# make && make install

参数解释

--with-config-file-path=/usr/local/php/etc/  指定配置文件目录 
--with-apxs2=/usr/local/apache2/bin/apxs  指定 apache 动态模块位置 
--with-libxml-dir=/usr/local/libxml2/   指定 libxml 位置 
--with-jpeg-dir=/usr/local/jpeg6/    指定 jpeg 位置 
--with-png-dir=/usr/local/libpng/    指定 libpng 位置 
--with-mcrypt=/usr/local/libmcrypt/       指定 libmcrypt 位置
--with-freetype-dir=/usr/local/freetype/  指定 freetype 位
--with-mysqli=/usr/local/mysql/bin/mysql_config 指定 mysqli 位置 
--with-gd    启用 gd 库 
--enable-soap       支持 soap 服务 
--enable-mbstring=all     支持多字节,字符串 
--enable-sockets      支持套接字 
--with-pdo-mysql=/usr/local/mysql  启用 mysql 的 pdo 模块支持 
--without-pear       不安装 pear(安装 pear 需要连接互联网) 

1)、生成php配置文件

[root@centos php-7.3.11]# cp /lamp/php-7.3.11/php.ini-production /usr/local/php/etc/php.ini

2)、修改apache配置文件,使之识别php文件

[root@centos ~]# vim /usr/local/apache2/etc/httpd.conf
    AddType application/x-httpd-php .php .phtml    
    AddType application/x-httpd-php-source .phps

3)、重启apache

[root@centos ~]# /usr/local/apache2/bin/apachectl restart

4)、测试是否可以连接

[root@centos ~]# vim /usr/local/apache2/htdocs/test.php   
<?php   
    phpinfo();   
?>

访问测试,如下
http://20.20.20.21/test.php

14、安装 openssl 模块

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能 及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。

#先卸载原来系统中自带的 Autoconf ,版本过低会报错
[root@centos openssl]# rpm -e --nodeps autoconf-2.63
[root@centos openssl]# cd /lamp/autoconf-2.69
[root@centos autoconf-2.69]# ./configure && make && make install
#安装 openssl
[root@centos ~]# cd /lamp/php-7.3.11/ext/openssl
[root@centos openssl]# mv config0.m4 config.m4
[root@centos openssl]# /usr/local/php/bin/phpize
[root@centos openssl]# ./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config
[root@centos openssl]# make && make install
15、安装 memcache 模块

Memcache 是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的 hash 表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。 简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

[root@centos lamp]# unzip  pecl-memcache-php7.zip
[root@centos pecl-memcache-php7]# cd  pecl-memcache-php7
[root@centos pecl-memcache-php7]# mv memcache.loT memcache.lo
[root@centos pecl-memcache-php7]# /usr/local/php/bin/phpize
[root@centos pecl-memcache-php7]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@centos pecl-memcache-php7]# make && make install
#记录下安装位置
/usr/local/php/lib/php/extensions/no-debug-zts-20180731/
16、修改 php 配置文件

使其识别并调用 openssl 和 memcache 两个模块

[root@centos pecl-memcache-php7]# vim /usr/local/php/etc/php.ini 
    extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20180731/"
    extension="openssl.so";    
    extension="memcache.so";
#重启apache,测试看是否多了两个模块
17、 安装 memcached 服务
[root@centos pecl-memcache-php7]# yum -y install libevent-devel
[root@centos pecl-memcache-php7]# cd /lamp/memcached-1.5.9
[root@centos memcached-1.5.9]# ./configure --prefix=/usr/local/memcache
[root@centos memcached-1.5.9]# make && make install
[root@centos memcached-1.5.9]#  useradd -r -s /sbin/nologin memcache
[root@centos memcached-1.5.9]# /usr/local/memcache/bin/memcached -umemcache &
18、安装 phpMyAdmin

phpMyAdmin 是一个以 PHP 为基础,以 Web-Base 方式架构在网站主机上的 MySQL 的数据库管理工具, 让管理者可用 Web 接口管理 MySQL 数据库。

[root@centos lamp]#  cp -a /lamp/phpMyAdmin-4.9.1-all-languages  /usr/local/apache2/htdocs/phpmyadmin
[root@centos lamp]# cd /usr/local/apache2/htdocs/phpmyadmin
[root@centos phpmyadmin]# cp -a config.sample.inc.php config.inc.php
[root@centos phpmyadmin]# vim config.inc.php
#新增
    $cfg['Servers'][$i]['auth_type'] = 'http';

访问测试
http://20.20.20.21/phpmyadmin/index.php 用户名为 root ,密码为 MySQL 设置时指定的 root 密码 123456
如下

19、设置 Apache、MySQL、Memcache 开机自启
[root@centos phpmyadmin]# vim /etc/rc.local   
    /usr/local/apache2/bin/apachectl start   
    /usr/local/mysql/bin/mysqld_safe --user=mysql &   
    /usr/local/memcache/bin/memcached -umemcache &
20、lamp环境已经搭建完成。
原文地址:https://www.cnblogs.com/hjnzs/p/12145414.html