在centos7中编译安装lamp环境

1.   辅助软件的安装

(1)   所需软件包与安装准备

下载地址能够到各个软件的官网上下载,也能够到百度云盘下载:https://pan.baidu.com/s/1bozAghT,注意:在安装时必定要手敲,千万不要复制粘贴,否者会有报错哟。php

  1. apr-1.5.2.tar.gz
  2. apr-util-1.5.4.tar.gz
  3. curl-7.52.1.tar.gz
  4. freetype-2.7.tar.gz
  5. httpd-2.4.25.tar.gz
  6. jpegsrc.v7.tar.gz
  7. jpgraph-4.0.2.tar.gz
  8. libevent-2.1.8-stable.tar.gz
  9. libgd-2.1.0.tar.gz
  10. libmcrypt-2.5.8.tar.gz
  11. libmemcached-1.0.18.tar.gz
  12. libpng-1.5.28.tar.gz
  13. libxml2-sources-2.9.7.tar.gz
  14. mcrypt-2.6.8.tar.gz
  15. memcache-3.0.8.tgz
  16. memcached-1.4.34.tar.gz
  17. mhash-0.9.9.9.tar.gz
  18. mysql-5.6.41.tar.gz
  19. ncurses-6.0.tar.gz
  20. pcre-8.39.gz
  21. php-5.6.29.tar.gz
  22. zlib-1.2.10.tar.gz

同时须要配置yum源,而且yum源能够正常使用,yum如何配置在这里就不作说明了。另外须要在防火墙中容许80、44三、3306这三个端口的tcp协议经过。html

(2)   安装libxml2

libxml是一个用来解析XML文档的函数库。它用C语言写成, 而且能为多种语言所调用,例如C语言,C++,XSH。C#, Python,Kylix/Delphi,Ruby,和PHP等。Perl中也可使用XML::LibXML模块。它最初是为GNOME开发的项目,但如今能够用在各类各样的方面。libXML 代码可移植性很是好,由于它基于标准的ANSI C库, 并采用MIT许可证。安装步骤以下:node

       tar -zxvf libxml2-2.9.1.tar.gzpython

       yum -y install python-devel gcc-c++mysql

       cd /lamp/libxml2-2.9.1c++

       ./configure --prefix=/usr/local/libxml2/ && make && make install算法

(3)   安装libmcrypt

libmcrypt是加密算法扩展库。支持DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR, SERPENT, SAFER+等算法。安装步骤以下:sql

       tar -zxvf libmcrypt-2.5.8.tar.gz数据库

       cd /lamp/libmcrypt-2.5.8apache

       ./configure --prefix=/usr/local/libmcrypt/ && make && make install

(4)   安装libltdl

libltdl也在libmcrypt源码目录中,非新软件,安装步骤以下:

       cd /lamp/libmcrypt-2.5.8/libltdl

       ./configure --enable-ltdl-install && make && make install

(5)   安装mhash  

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

       tar -zxvf mhash-0.9.9.9.tar.gz

       cd /lamp/mhash-0.9.9.9

       ./configure  && make && make install

(6)   安装mcrypt

mcrypt 是PHP里面重要的加密支持扩展库。Mcrypt库支持20多种加密算法和8种加密模式。安装步骤以下:

       tar -zxvf mcrypt-2.6.8.tar.gz

       cd /lamp/mcrypt-2.6.8

       LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib  ./configure --with-libmcrypt-prefix=/usr/local/libmcrypt && make && make install

(7)   安装zlib

zlib是提供数据压缩用的函式库,由Jean-loup Gailly与Mark Adler所开发,第一版0.9版在1995年5月1日发表。zlib使用DEFLATE算法,最初是为libpng函式库所写的,后来广泛为许多软件所使用。此函式库为自由软件,使用zlib受权。安装步骤以下:

       tar -zxvf zlib-1.2.3.tar.gz

       cd /lamp/zlib-1.2.3                    

       CFLAGS="-O3 -fPIC" ./configure && make && make install >>  /root/zlib.log

(8)   安装libpng

libpng 软件包包含 libpng 库.这些库被其余程式用于解码png图片。安装步骤以下:

       tar -zxvf   libpng-1.2.31.tar.gz

       cd /lamp/libpng-1.2.31

       ./configure --prefix=/usr/local/libpng && make && make install

(9)   安装jpeg7

用于解码.jpg和.jpeg图片。安装步骤以下:

       tar -zxvf jpegsrc.v7.tar.gz

       mkdir /usr/local/jpeg7

       mkdir /usr/local/jpeg7/bin

       mkdir /usr/local/jpeg7/lib

       mkdir /usr/local/jpeg7/include

       mkdir -p /usr/local/jpeg7/man/man1

       cd /lamp/jpeg-7

       ./configure --prefix=/usr/local/jpeg7/ --enable-shared --enable-static && make && make install

(10)  安装freetype

FreeType库是一个彻底免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。支持单色位图、反走样位图的渲染。FreeType库是高度模块化的程序库,虽然它是使用ANSI C开发,可是采用面向对象的思想,所以,FreeType的用户能够灵活地对它进行裁剪。安装步骤以下:

       tar -zxvf greetype-2.3.5.tar.gz

       cd /lamp/freetype-2.3.5

       ./configure --prefix=/usr/local/freetype/ && make && make install

(11)  安装GD库   

GD库,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库能够处理图片,或者生成图片。 在网站上GD库一般用来生成缩略图,或者用来对图片加水印,或者用来生成汉字验证码,或者对网站数据生成报表等。安装步骤以下:

       tar -zxvf libgd-2.1.0.tar.gz

       cd /lamp/ libgd-2.1.0

       ./configure --prefix=/usr/local/gd2/ --with-jpeg=/usr/local/jpeg7/ --with-freetype=/usr/local/freetype/ --with-png=/usr/local/libpng/ && make && make install


2.     安装Apache

(1)   检测系统是否安装有httpd

       rpm -qa  | grep httpd

       若是有,就卸载httpd:rpm -e httpd –nodeps

(2)   安装Apache

       tar -zxvf pcre-8.34.tar.gz

       cd pcre-8.34

       ./configure && make && make install

       tar -zxvf apr-1.4.6.tar.gz

       tar -zxvf apr-util-1.4.1.tar.gz

       cp -r apr-1.4.6  httpd-2.4.7/srclib/apr

       cp -r apr-util-1.4.1   httpd-2.4.7/srclib/apr-util

       cd/lamp/httpd-2.4.7

       ./configure --prefix=/usr/local/apache2/ --sysconfdir=/usr/local/apache2/etc/ --with-include-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared

       make && make install

(3)   把httpd添加到系统服务中,并开机自动启动

       cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd

       vim /etc/rc.d/init.d/httpd  在第一行#!/bin/sh下增长两行文字:

       #chkconfig: 234 20 80

       #description: apache

(4)添加开机自启动

       chkconfig --add httpd

       chkconfig --level 345 httpd on

(5)添加环境变量

       在/etc/profile文件中的最后一行添加“export PATH=/usr/local/apache2/bin/:$PATH”

       source /etc/profil

(6)将 apache 的配置文件httpd.conf(在/usr/local/apache2/etc/下)中的 ServerName 改为可用域名或以下配置ServerName localhost:80

(7)启动Apache

       systemctl start httpd

  (8)  Apache测试

在浏览器中输入安装Apache软件所在主机的IP地址,查看是否有It Works文字。


3.     安装MySQL

(1)   检测系统是否安装有MySQL

       rpm -qa | grep mysql

       若是有卸载:rpm -e mysql --nodeps

       同时卸载:rpm -e mysql-server

(2)   安装ncurses

       yum install -y ncurses-devel

       tar -zxvf ncurses-5.9.tar.gz

      cd  cd /lamp/ncurses-5.9

       ./configure --with-shared --without-debug --without-ada --enable-overwrite && make && make install

(3)   安装cmake和bison

       yum install -y cmake bison autoconf

(4)   创建用户组

       groupadd mysql

       useradd -g mysql -s /usr/sbin/nologin mysql

       mkdir -p /var/mysql/data/

       chown mysql.mysql -R /var/mysql/

(5)   安装MySQL

       tar -zxvf /lamp/ mysql-5.6.16.gz

       cd /lamp mysql-5.6.16

       cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_DATADIR=/var/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE= \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_TCP_PORT=3306

              make && make install

(6)   添加配置文件

在/usr/local/mysql/文件夹下添加my.ini文件,内容以下:

[client]
port=3306
[mysql]
default-character-set=utf8
[mysqld]
port=3306
server_id=1
basedir="/usr/local/mysql/"
datadir="/var/mysql/data/"
log-error="/var/mysql/Logs/mysql.log"
slow-query-log-file="/var/mysql/Logs/mysql_slow_query.log"
character-set-server=utf8
default-storage-engine=MYISAM
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
explicit_defaults_for_timestamp=true
interactive_timeout=120
wait_timeout=120
log_error_verbosity=1
slow_query_log=0
long_query_time=2
local-infile=0
skip-external-locking
skip-ssl
#skip-name-resolve
#skip-networking
#enable-named-pipe
#bind-address=127.0.0.1
#log-bin=mysql-bin
#binlog_format=mixed
max_connections=300
query_cache_size=0
performance_schema_max_table_instances=600
table_definition_cache=400
key_buffer_size=64M
sort_buffer_size=512kb
read_buffer_size=1M
join_buffer_size=2M
read_rnd_buffer_size=4M
max_allowed_packet=16M
table_open_cache=256
tmp_table_size=64M
max_heap_table_size=64M
thread_cache_size=16
myisam_max_sort_file_size=64G
myisam_sort_buffer_size=32M
innodb_buffer_pool_size=128M
innodb_log_file_size=32M
innodb_log_buffer_size=8M
innodb_file_per_table=1
innodb_flush_log_at_trx_commit=1
innodb_flush_method=normal
innodb_thread_concurrency=0
innodb_lock_wait_timeout=50
[mysqldump]
quick
max_allowed_packet=16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size=20M
sort_buffer_size=20M
read_buffer=2M
write_buffer=2M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open-files-limit=8192

 

(7)  修改权限

       chown -Rf mysql:mysql /usr/local/mysql

(8)   将mysql添加到系统服务中,开机启动

       cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

       chkconfig --add mysqld

       chkconfig --level 2345 mysqld on

(9)   添加环境变量

       在/etc/profile文件中的最后一行添加“export PATH=/usr/local/mysql/bin/:$PATH' ”

       source /etc/profile

(10)   初始化数据库

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/var/mysql/data

(11)  mysql的启动

systemctl start mysqld

(12)  修改密码

/usr/local/mysql/bin/mysqladmin -u root password 'root'


4.     安装PHP

(1)   检测系统是否安装有MySQL

       rpm -qa | grep php

       若是有,卸载:rpm -e php

(2)   安装所需软件包

       yum -y install libxml2-devel openssl openssl-devel curl curl-devel libjpeg-devel  libpng-devel freetype-devel pcre-devel libxslt libxslt-devel bzip2 bzip2-devel libtool-ltdl* libtool* readline readLine-devel

(3)安装libmcrypt

       tar zxf libmcrypt-2.5.8.tar.gz

       cd libmcrypt-2.5.8

       ./configure

       make && make install

(4)安装PHP

       tar-zxvf php-5.6.29.tar.gz

       cd php-5.6.29

./configure --prefix=/usr/local/php \
--with-config-file-scan-dir=/usr/local/php/etc/ \
--enable-inline-optimization \
--enable-opcache \
--enable-session \
--enable-debug \
--enable-rpath \
--enable-shared \
--enable-fpm \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-pdo-sqlite \
--with-sqlite3  \
--enable-mbregex \
--with-gettext \
--enable-mbstring \
--with-iconv \
--with-mhash \
--with-openssl \
--enable-bcmath \
--enable-soap \
--with-libxml-dir=/usr/local/libxml2/ \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--with-curl \
--with-zlib \
--enable-zip \
--with-bz2 \
--with-gd \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-xml \
--with-xmlrpc \
--with-pdo-sqlite \
--with-pear \
--with-kerberos \
--with-pcre-regex \
--with-libdir=lib \
--enable-ftp \
--with-readline

       make && make install

(5)   生成php.ini

       mkdir /usr/local/php/etc/

       cp /lamp/php-5.6/php.ini-production /usr/local/php/etc/php.ini

(6)   编辑http.conf文件

vi /usr/local/apache2/conf/httpd.conf

找到

#ServerName www.example.com:80

改为
ServerName localhost:80

找到:

AddType application/x-gzip .gz .tgz

在该行下面添加:

AddType application/x-httpd-php .php

找到:

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

将该行改成:

<IfModule dir_module>
    DirectoryIndex  index.php index.html
</IfModule>

在文件最后添加:

 <IfModule mod_php5.c>

         AddType application/x-httpd-php .php

         AddType application/x-httpd-php-source .phps

  </IfModule>

(7)   安装phpMyAdmin

phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口能够成为一个简易方式输入繁杂SQL语法的较佳途径,尤为要处理大量资料的汇入及汇出更为方便。其中一个更大的优点在于因为phpMyAdmin跟其余PHP程式同样在网页服务器上执行,可是您能够在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的创建、修改、删除数据库及资料表。也可借由phpMyAdmin创建经常使用的php语法,方便编写网页时所须要的sql语法正确性。安装步骤以下:

       cp -r phpMyAdmin-4.1.4-all-languages /usr/local/apache2/htdocs/phpmyadmin

       cd /usr/local/apache2/htdocs/phpmyadmin

       cp config.sample.inc.php config.inc.php

       vim config.inc.php

修改

       $cfg[‘Servers’][$i][auth_type]=’cookie’;

       $cfg[‘Servers’][$i][auth_type]=’http’;

 (8)  PHP和phpMyAdmin的测试

在Apache网站运行的根目录下编写文件index.php,文件内容具体以下所示。

<?php

     phpinfo();

?>

若是出现了LAMP的具体配置信息,就说明Apache和PHP组件正常运行。在浏览器中输入http://192.168.1.128/phpmyadmin/,出现MySQL的登陆表单,就说明,MySQL正常运行。到此为止,LAMP环境搭建成功。

 

拓展:

--prefix=/usr/local/PHP                                   php 安装目录  --with-apxs2=/usr/local/apache/bin/apxs     表示使用apache2.0以上版本,apxs表示使用的apache1.0版本 --with-config-file-path=/usr/local/PHP/etc               指定php.ini位置 --with-MySQL=/usr/local/mysql                        mysql安装目录,对mysql的支持 --with-MySQLi=/usr/local/mysql/bin/mysql_config            mysqli文件目录,优化支持 --enable-safe-mode                              打开安全模式 --enable-ftp                                 打开ftp的支持 --enable-zip                                 打开对zip的支持 --with-bz2                                    打开对bz2文件的支持                        --with-jpeg-dir                                 打开对jpeg图片的支持 --with-png-dir                                 打开对png图片的支持 --with-freetype-dir                              打开对freetype字体库的支持 --without-iconv                                 关闭iconv函数,种字符集间的转换 --with-libXML-dir                                 打开libxml2库的支持 --with-XMLrpc                                 打开xml-rpc的c语言 --with-zlib-dir                                 打开zlib库的支持 --with-gd                                    打开gd库的支持 --enable-gd-native-ttf                           支持TrueType字符串函数库 --with-curl                                    打开curl浏览工具的支持 --with-curlwrappers                              运用curl工具打开url流 --with-ttf                                    打开freetype1.*的支持,能够不加了 --with-xsl 打开XSLT 文件支持,扩展了libXML2库 ,须要libxslt软件 --with-gettext                                 打开gnu 的gettext 支持,编码库用到 --with-pear                      打开pear命令的支持,PHP扩展用的 --enable-calendar                  打开日历扩展功能 --enable-mbstring                  多字节,字符串的支持 --enable-bcmath                  打开图片大小调整,用到zabbix监控的时候用到了这个模块 --enable-sockets                  打开 sockets 支持 --enable-exif                      图片的元数据支持 --enable-magic-quotes               魔术引用的支持 --disable-rpath                     关闭额外的运行库文件 --disable-debug                  关闭调试模式 --with-mime-magic=/usr/share/file/magic.mime      魔术头文件位置 CGI方式安装才用的参数 --enable-fpm                     打上PHP-fpm 补丁后才有这个参数,CGI方式安装的启动程序 --enable-fastCGI                  支持fastcgi方式启动PHP --enable-force-CGI-redirect             同上 ,帮助里没有解释 --with-ncurses                     支持ncurses 屏幕绘制以及基于文本终端的图形互动功能的动态库 --enable-pcntl                     freeTDS须要用到的,多是连接mssql 才用到 mhash和mcrypt算法的扩展 --with-mcrypt                     算法 --with-mhash                     算法 --with-gmp --enable-inline-optimization --with-openssl                     openssl的支持,加密传输时用到的 --enable-dbase --with-pcre-dir=/usr/local/bin/pcre-config      perl的正则库案安装位置 --disable-dmalloc --with-gdbm                     dba的gdbm支持 --enable-sigchild --enable-sysvsem --enable-sysvshm --enable-zend-multibyte               支持zend的多字节 --enable-mbregex --enable-wddx --enable-shmop --enable-soap