易怀源

导航

在linux中搭建amp环境(apache2.4.7+mysql5.5.23+php5.6.19)

目标配置一台网络服务器阿里云ECS安装64CentOS6.5使用源码安装Apache2.4.7MySQL5.5.23PHP5.6.19

工具SecureCRTWinSCP

软件包安装需要的AMP源码包以及辅助扩展软件源码包

下载在linux中搭建amp环境(apache2.4.7+mysql5.5.23+php5.6.19)LAMP_README.PHP

安装详情

一.WinSCP将源码包传送到ECS这里直接将所有源码包放在lamp文件夹里面拖到/目录就可以了

二.SecureCRT终端工具链接上ECS在选项->会话控制->外观里面设置好界面字体编码等

三.写脚本
进入到lamp文件写解压脚本解压所有源码包或者安装时一个一个的解压使用解压脚本一次性解压更方便而已);
vim /lamp/tar.sh

#/bin/bash
cd /lamp
ls *.tar.gz > ls.log
for i in $(cat ls.log)
do
tar -zxf $i
done
rm -rf ls.
log
保存退出(这里需要先掌握vim编辑器的使用方法),

四.解压源码包
1.可以使用第三步写的脚本来解压不过需要拥有执行脚本的权限chmod 777 /lamp/tar.sh
执行脚本 /lamp/tar.sh
2.也可以一个一个的解压使用解压命令tar -zxf 压缩包名但是比较慢

五.查看80端口和3306端口是否被占用 netstat -ltunp
这里如果端口被占用查看占用端口的服务关闭占用端口的服务

六.安装辅助软件
安装前先查看此软件是否已经安装,有时候在装系统的时候默认有些软件已经安装了,先使用命令 “rpm -q 软件名” 查看软件是否安装。 辅助软件有的是用源码包安装,有的是用rpm包安装,这些服务的安装方式不同,管理方式自然也就不同,我们安装这些辅助软件是为了服务于AMP,所以一切以便利快捷为主。
  1.安装libxml2:   
  #libxml是一个用来解析XML文档的函数库。它用C语言写成, 并且能为多种语言所调用,例如C语言,C++,XSH。C#, Python,Kylix/Delphi,Ruby,和PHP等。
  #Perl中也可以使用XML::LibXML模块。它最初是为GNOME开发的项目,但现在可以用在各种各样的方面。libXML 代码可移植性非常好,因为它基于标准的ANSI C库, 并采用MIT许可证。
  yum -y install python-devel
  cd /lamp/libxml2-2.9.1
  ./configure --prefix=/usr/local/libxml2/
  make
  make install
#这里如果提示libxml2已经安装,也不用在意,说明这个已经安装过了,直接下一步就可以了,也可以在安装之前查一下这项服务是否被安装。
  
  2.安装libmcrypt:
  #libmcrypt是加密算法扩展库。支持DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR, SERPENT, SAFER+等算法。
  cd /lamp/libmcrypt-2.5.8
  ./configure --prefix=/usr/local/libmcrypt/
  make
  make install
  #需要使用gcc编译器,默认情况下是会安装的,如果没有安装的话就 yum install gcc-c++ -y 安装

  3.安装libltdl,也在libmcrypt源码目录中,非新软件
  cd /lamp/libmcrypt-2.5.8/libltdl
   ./configure --enable-ltdl-install
  make
  make install

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

  5.安装mcrypt
  #mcrypt 是 php 里面重要的加密支持扩展库。Mcrypt库支持20多种加密算法和8种加密模式
  cd /lamp/mcrypt-2.6.8
  LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib \
  ./configure --with-libmcrypt-prefix=/usr/local/libmcrypt
  #以上为一条命令。LD_LIBRARY_PATH用于指定libmcrypt和mhash的库的位置。 --with-libmcrypt-prefix用于指定libmcrypt软件位置
  make
  make install
  #mcrypt没有安装完成,这是php的模块,需要等php安装完成之后,再继续安装.

  6.安装zlib
  #zlib是提供数据压缩用的函式库,由Jean-loup Gailly与Mark Adler所开发,初版0.9版在1995年5月1日发表。zlib使用DEFLATE算法,最初是为libpng函式库所写的,后来普遍为许多软件所使用。此函式库为自由软件,使用zlib授权
  cd /lamp/zlib-1.2.3
  CFLAGS="-O3 -fPIC" ./configure
  make   
  make install

  7. 安装libpng
  #libpng 软件包包含 libpng 库.这些库被其他程式用于解码png图片
  cd /lamp/libpng-1.2.31
  ./configure --prefix=/usr/local/libpng
  make
  make install

  8.安装libtool
  cd /lamp/libtool-2.4.2
  ./configure
  make
  make install
  #libtool版本过低会导致jpeg6安装报错,需要先安装高版本的libtool

  9.安装jpeg6
  #用于解码.jpg和.jpeg图片
  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
  #目录必须手工建立
  cd /lamp/jpeg-6b
  cp /usr/share/libtool/config/config.sub .
  cp /usr/share/libtool/config/config.guess .
  ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
  make
  make install
  # --enable-shared与--enable-static参数分别为建立共享库和静态库使用的libtool

  10.安装freetype
  #FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。支持单色位图、反走样位图的渲染。FreeType库是高度模块化的程序库,虽然它是使用ANSI C开发,但是采用面向对象的思想,因此,FreeType的用户可以灵活地对它进行裁剪。
  cd /lamp/freetype-2.3.5
  ./configure --prefix=/usr/local/freetype/
  make
  make install

  11.安装GD库
  #GD库,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 在网站上GD库通常用来生成缩略图,或者用来对图片加水印,或者用来生成汉字验证码,或者对网站数据生成报表等。
  cd /lamp/gd-2.0.35
  /**
  * png错误,修改方法:
  * vi gd_png.c
  * 把 #include “png.h” 替换为 #include "/usr/local/libpng/include/png.h"
  */
  ./configure --prefix=/usr/local/gd2/ --with-jpeg=/usr/local/jpeg6/ --with-freetype=/usr/local/freetype/ --with-png=/usr/local/libpng/
  make
  make install

七.安装AMP
  1.安装Apache
  cp -r /lamp/apr-1.4.6 /lamp/httpd-2.4.7/srclib/apr
  cp -r /lamp/apr-util-1.4.1 /lamp/httpd-2.4.7/srclib/apr-util
  #取消apr和apr-util版本号,避免报错:configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.
  cd pcre-8.34
  ./configure && make && make install
  #安装pcre,避免报错:configure: error: pcre-config for libpcre not found. PCRE is required and available from
  yum install openssl-devel
  #安装openssl,避免报错:checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures
  #以上操作时为了避免常见错误,如果提示服务已经安装无须在意
  cd /lamp/httpd-2.4.7
  ./configure --prefix=/usr/local/apache2/ --sysconfdir=/usr/local/apache2/etc/ --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared
  make
  make install
  /usr/local/apache2/bin/apachectl start
  #上面一条命令是apache的启动命令,启动之后会有一个报错,大概意思是主机找不到,这个错误不用在意,每个人都会有的。
  #像这种: #AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 10.171.210.43. Set the 'ServerName' directive globally to suppress this message
  netstat -ltunp |grep 80
  #这条命令查看80端口是否开启,如果显示有,就说明apache已经开启了,可以打开任意一个浏览器,输入你的ecs的外网ip,不出意外会看到It work!
  echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local
  #将apache的启动命令放到rc.local文件里面,因为rc.local是系统开启后自动读取的文件,所以把apache的开启命令写入这个文件里,apache就会开机自启动。

  2.安装ncurses
  #Ncurses 提供字符终端处理库,包括面板和菜单。它提供了一套控制光标,建立窗口,改变前景背景颜色以及处理鼠标操作的函数。使用户在字符终端下编写应用程序时绕过了那些恼人的底层机制。简而言之,他是一个可以使应用程序直接控制终端屏幕显示的函数库。
  cd /lamp/ncurses-5.9
  ./configure --with-shared --without-debug --without-ada --enable-overwrite make make install
  #若不安装ncurses编译MySQL时会报错
  # --without-ada参数为设定不编译为ada绑定,因进入chroot环境不能使用ada ;--enable-overwrite参数为定义把头文件安装到/tools/include下而不是/tools/include/ncurses目录
  # --with-shared 生成共享库

  3.安装cmake和bison
  #mysql在5.5以后,不再使用./configure工具,进行编译安装。而使用cmake工具替代了./configure工具。cmake的具体用法参考文档cmake说明。
  #bison是一个自由软件,用于自动生成语法分析器程序,可用于所有常见的操作系统
  yum -y install cmake
  yum -y install bison
  #如果提示nothing to do也不要慌,可能这家伙已经默认安装过了

  4.安装MySQL
  groupadd mysql
  useradd -g mysql mysql
  #添加用户组mysql ,将mysql用户默认组设置为mysql用户组
  cd /lamp/mysql-5.5.23
  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
  #-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端口
  make
  make install
  #如果报错,清除缓存,请使用以下命令 make clean rm –rf CMakeCache.txt
  cd /usr/local/mysql/
  chown -R mysql .
  chgrp -R mysql .
  #修改mysql目录权限
  /usr/local/mysql/scripts/mysql_install_db --user=mysql
  #创建数据库授权表,初始化数据库
  chown -R root .
  chown -R mysql data
  #修改mysql目录权限
  cp support-files/my-medium.cnf /etc/my.cnf
  #复制mysql配置文件
  启动MySQL服务: /usr/local/mysql/bin/mysqld_safe --user=mysql &
  #如果出现启动就关闭的情况就从重新安装一次)
  加入自启动 echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.d/rc.local
  netstat -ltun |grep 3306 #如果3306端口占用,说明MySQL已经开启
  设定mysql密码 /usr/local/mysql/bin/mysqladmin -uroot password 123
  清空历史命令 history -c
  #给mysql用户root加密码123(自定义)
  进入MySQL: /usr/local/mysql/bin/mysql -u root -p
  #密码为自己设置的密码,输入是看不见的。

  5.安装PHP
  #编译前确保系统已经安装了libtool和libtool-ltdl软件包,安装:
  yum -y install "libtool*"
  yum -y install "libtool-ltdl*"
  vi /usr/local/gd2/include/gd_io.h
  typedef struct gdIOCtx
  {
    ……
    void (*data);
    #加入此句
  }
  cd /lamp/php-5.6.19
  yum install -y libxml2-devel
  yum -y install python-devel
  ./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/ --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-gd --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --without-pear
  make
  make install
  #生成php.ini
  mkdir /usr/local/php/etc
  cp /lamp/php-5.6.19/php.ini-production /usr/local/php/etc/php.ini
  #测试Apache与PHP的连通性,看Apache是否能解析php文件
  vi /usr/local/apache2/etc/httpd.conf
  /**
  * 加入AddType
  */
  AddType application/x-httpd-php .php .phtml .phps
  #.phtml为将.phps做为PHP源文件进行语法高亮显示
  重启Apache服务:/usr/local/apache2/bin/apachectl stop
  /usr/local/apache2/bin/apachectl start
  测试:vi /usr/local/apache2/htdocs/info.php
  <?php phpinfo(); ?>
  #然后在浏览器访问http://IP地址/info.php,不出意外会显示出php的相关信息
  #有时第一次浏览器测试会失败,关闭浏览器重启再尝试即可,非编译错误

  6.安装phpMyAdmin
  cd /lamp
  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
  vi config.inc.php
  $cfg['Servers'][$i]['auth_type'] = 'cookie';
  $cfg['Servers'][$i]['auth_type'] = 'http';(把cookie 改成http)
  #设置auth_type为http ,即设置为HTTP身份认证模式
  #通过浏览器输入地址访问:http://Apache服务器地址/phpmyadmin/index.php
  #用户名为root ,密码为MySQL设置时指定的root密码(lampbrother)

  7.安装memcache
  #Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。
  #简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
  yum -y install zlib-devel
  cd memcache-3.0.8
  /usr/local/php/bin/phpize
  ./configure --with-php-config=/usr/local/php/bin/php-config
  make && make install

  8.安装mcrypt
  cd /lamp/php-5.4.25/ext/mcrypt/
  /usr/local/php/bin/phpize
  ./configure --with-php-config=/usr/local/php/bin/php-config --with-mcrypt=/usr/local/libmcrypt/
  make
  make install
  #php安装完成后,通过这些命令安装mcrypt模块

  修改/usr/local/php/etc/php.ini
  extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-2016XXXX/"
  #扩展路径是生成的so文件的保存路径
  #打开注释,并修改或者添加
  extension="memcache.so";
  extension="mcrypt.so";
  #重启apache,在phpinfo中可以找到这两个模块

  9.安装memcache源代码
  cd /lamp/memcached-1.4.17
  ./configure --prefix=/usr/local/memcache
  make
  make install
  useradd memcache
  #添加memcache用户,此用户不用登录,不设置密码
  #启动Memcache /usr/local/memcache/bin/memcached -umemcache &
  netstat -ltunp | grep :11211(查看11211端口是否存在,存在则说明成功)
  写入自启动: vi /etc/rc.d/rc.local
  将 /usr/local/memcache/bin/memcached -umemcache & 写入进去
  
  10.安装curl扩展
  yum -y install curl-devel
  cd /lamp/php-5.6.19/ext/curl
  进入到curl的源码目录; /usr/local/php/bin/phpize
  #这个是调用phpize程序生成编译配置文件,如果没有这一步,./configure会出错;
  ./configure --with-curl=/usr/local/curl --with-php-config=/usr/local/php/bin/php-config
  make
  make install
  #安装成功会显示curl.so的安装位置,如果正好是php的extension_dir的位置,就不需要懂了,否则复制到ext_dir里面去
  vim /usr/local/php/etc/php.ini
  #添加或修改 extension="curl.so";
  重启apache就可以在phpinfo里面找到curl了

  11.安装pdo_mysql扩展
  cd /lamp/php-5.6.19/ext/pdo_mysql
  /usr/local/php/bin/phpize
  ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
  make
  make install
  然后去php.ini文件,添加 extension=pdo.so extension=pdo_mysql.so ;
  #重启服务器就可以在phpinfo里里面看到pdo_mysql扩展了。

安装过程中大多错误其实为输入错误,可以通过history命令查看历史记录检查。

------eis13。
------myi13。

posted on 2016-05-04 16:16  易怀源  阅读(469)  评论(0编辑  收藏  举报