LAMP搭建
本文主要参考高老师的《细说php》一书,并结合自己实践过程中遇到的问题做一下记录:
1.Linux系统下源码包方式安装最理想的lamp,需要准备的安装包有以下13个(注:安装包并不是最新,建议更新)
==============================
httpd-2.2.9.tar.gz
mysql-5.0.41.tar.gz
php-5.2.6.tar.gz
phpMyAdmin-3.0.0-rc1-all-languages.tar.gz
libxml2-2.6.30.tar.gz
libmcrypt-2.5.8.tar.gz
zlib-1.2.3.tar.gz
gd-2.0.35.tar.gz
Autoconf-2.61.tar.gz
freetype-2.3.5.tar.gz
libpng-1.2.31.tar.gz
jpegsrc.v6b.tar.gz
ZendOptimizer330a.tar.gz
==============================
2.安装过程:
注意:系统必须有安装过gcc,; gcc –v 检测是否存在gcc编译程序
将13个安装包都拷贝到/usr/local/src 中
tar zxvf *.tar.gz //解压安装包,再进入相应的目录就可以进行编译和安装。
==============================
- 安装libmxl2最新库文件
- ./configure --prefix=/usr/local/libxml2 //指定安装目录
- # make
- # make install
安装完成libmcryp后,最好再安装一下libltdl库
cd /usr/local/src/libmcrypt-2.5.8/libltdl
./configure --enable-ltdl-install
make
make install
安装zlib最新库文件
#./configure
--prefix=/usr/local/zlib
# make
# make install
安装libpng最新库文件
# ./configure
--prefix=/usr/local/libpng
# make
# make install
安装jpeg6最新库文件
# mkdir /usr/
local
/jpeg6 //建立jpeg6软件安装目录
# mkdir /usr/
local
/jpeg6/bin //建立存放命令的目录
# mkdir /usr/
local
/jpeg6/lib //创建jpeg6库文件所在目录
# mkdir /usr/
local
/jpeg6/include //建立存放头文件目录
# mkdir -p /usr/
local
/jpeg6/man/man1 //建立存放手册的目录
# ./configure \
>
--prefix=/usr/local/jpeg6/ \
>
--enable-shared \ //建立共享库使用的GNU的libtool
>
--enable-static //建立静态库使用的GNU的libtool
make && make install
- 安装freetype最新库文件
- # ./configure --prefix=/usr/local/freetype
- # make
- # make install
- 安装autoconf最新的库文件
- # ./configure
- # make
- # make install
- 安装最新的GD库文件
- #./configure \ //配置命令
- > --prefix=/usr/local/gd2/ \ //指定软件安装的位置
- > --with-zlib=/usr/local/zlib/ \ //指定到哪去找zlib库文件的位置
- > --with-jpeg=/usr/local/jpeg6/ \ //指定到哪去找jpeg库文件
- > --with-png=/usr/local/libpng/ \ //指定到哪去找png库文件的位置
- > --with-freetype=/usr/local/freetype/ //指定到哪去找freetype 2.x字体库的位置
- make && make install
- 安装新版本的Apache服务器
- #./configure \ //执行当前目录下软件自代的配置命令
- > --prefix=/usr/local/apache2 \ //指定Apache软件安装的位置
- > --sysconfdir=/etc/httpd \ //指定Apache服务器的配置文件
- > --with-z=/usr/local/zlib/ \ //指定zlib库文件的位置
- > --with-included-apr \ //使用捆绑APR/APR-Util的副本
- > --enable-so \ //以动态共享对象(DSO)编译
- > --enable-deflate=shared \ //缩小传输编码的支持
- > --enable-expires=shared \ //期满头控制
- > --enable-rewrite=shared \ //基于规则的URL操控
- > --enable-static-support //建立一个静态链接版本的支持
- # make && make install
- 测试Apache服务器
- 检查安装目录
- 检查配置文件目录
- /usr/local/apache2/bin/apachectl start //启动Apache
- /usr/local/apache2/bin/apachectl stop //关闭Apache
- # netstat -tnl|grep 80 //查看80端口是否开启
- http://localhost/去访问Apache服务器
- echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local //添加自启动
- 安装MySQL数据库管理系统
- # groupadd mysql //添加一个mysql标准组
- useradd -g mysql mysql //添加mysql用户并加到mysql组中
- # ./configure \
- > --prefix=/usr/local/mysql \
- > --with-extra-charsets=all //安装所有的字符集
- #make && make install
- 创建MySQL数据库服务器的配置文件
- # cp support-files/my-medium.cnf /etc/my.cnf
- bin/mysql_install_db --user=mysql //创建授权表
- # chown -R root . //将文件的所有属性改为root用户
- # chown -R mysql var //将数据目录的所有属性改为mysql用户
- # chgrp -R mysql . //将组属性改为mysql组
- # /usr/local/mysql/bin/mysqld_safe --user=mysql & 启动数据库
- # netstat -tnl|grep 3306 //查看3306端口是否开启
- # bin/mysqladmin version //简单的测试
- # bin/mysqladmin variables //查看所有mysql参数
- # bin/mysql -u root //没有密码可以直接登录本机服务器
- mysql> DELETE FROM mysql.user WHERE Host='localhost' AND User='';
- mysql> FLUSH PRIVILEGES;
- mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
- # bin/mysql -u root -h localhost –p //回车进入MySQL客户端
- # bin/mysqladmin -u root –p shutdown //关闭MySQL数据库
- 安装最新版本的PHP模块
- # ./configure \ //执行当前目录下软件自代的配置命令
- > --prefix=/usr/local/php \ //设置PHP5 的安装路径
- > --with-config-file-path=/usr/local/php/etc \ //指定PHP5配置文件存入的路径
- > --with-apxs2=/usr/local/apache2/bin/apxs \ //告诉PHP查找Apache 2的地方
- > --with-mysql=/usr/local/mysql/ \ //指定MySQL的安装目录
- > --with-libxml-dir=/usr/local/libxml2/ \ //告诉PHP放置libxml2库的地方
- > --with-png-dir=/usr/local/libpng/ \ //告诉PHP放置libpng库的地方
- > --with-jpeg-dir=/usr/local/jpeg6/ \ //告诉PHP放置jpeg库的地方
- > --with-freetype-dir=/usr/local/freetype/ \ //告诉PHP放置freetype库的地方
- > --with-gd=/usr/local/gd2/ \ //告诉PHP放置gd库的地方
- > --with-zlib-dir=/usr/local/zlib/ \ //告诉PHP放置zlib库的地方
- > --with-mcrypt=/usr/local/libmcrypt/ \ //告诉PHP放置libmcrypt库的地方
- > --with-mysqli=/usr/local/mysql/bin/mysql_config \ //变量激活新增加的MySQLi功能
- > --enable-soap \ //变量激活SOAP和Web services支持
- > --enable-mbstring=all \ //使多字节字符串支持
- > --enable-sockets //变量激活socket通讯特性
- #make && make install
- # cp php.ini-dist /usr/local/php/etc/php.ini //创建配置文件
- vi /etc/httpd/httpd.conf //使用vi编辑apache配置文件
- Addtype application/x-httpd-php .php .phtml #添加这一条
- # vi test.php //编辑test.php文件
- <?php
- phpinfo();
- ?>
- 浏览器: http://localhost/test.php 成功则显示出php版本相关信息
- 安装Zend加速器
- ./install.sh //执行安装,为图形界面安装,根据提示需要输入以下三个目录
- /usr/local/Zend //Zend 目录
- /usr/local/php/etc //php.ini目录
- /usr/local/apache2/bin/apachectl //apache 执行文件目录
- phpMyAdmin的安装
- cp -a phpMyAdmin-3.0.0-rc1-all-languages \
- /usr/local/apache2/htdocs/phpmyadmin //拷贝目录到指定位置并改名为phpmyadmin
- cd /usr/local/apache2/htdocs/phpmyadmin/
- cp config.sample.inc.php config.inc.php
- vi config.inc.php
- http身份验证模式
- $cfg[‘Servers’][$i][‘auth_type’]='http' ;//修改这一行为http身份验证
- 这时可以访问phpMyAdmin目录下的index.php文件, 启动phpMyAdmin
- 用户名和密码为Mysql的用户名和密码
- cookie身份验证模式
- $cfg[‘Servers’][$i][‘auth_type’]='cookie' ; //修改这一行为cookie身份验证
- 其他同http一样
- config身份验证模式
- $cfg[‘Servers’][$i][‘auth_type’]='config';
- $cfg[‘Servers’][$i][‘user’]='root';
- $cfg[‘Servers’][$i][‘password’]='123456';
- Web 可以直接登录
可能会遇到的问题:
- 1.gd_png.c
- 安装 Gd库错误 [gd_png.lo] Error 1
- make[2]: *** [gd_png.lo] Error 1
- make[2]: Leaving directory `/tmp/gd-2.0.26gif'
- make[1]: *** [all-recursive] Error 1
- make[1]: Leaving directory `/tmp/gd-2.0.26gif'
- make: *** [all] Error 2
- [root@RHEL3 gd-2.0.26gif]#
- 解决方法 【将gd库的文件进行修改】
- vi gd_png.c
- 找到“png.h”改成“/usr/local/libpng/include/png.h”)
- 2.zlib
- 安装libpng出现configure: error: ZLib not installed
- 然后就按照以下步骤做
- 0.先安装zlib
- 1.进入zlib的源文件目录,执行命令 make clean,清除zlib;
- 2.重新配置 ./configure,后面不要接--prefix参数;
- 3.编辑 make && make install 安装;
- 4.进入libpng目录,执行命令 ./configure --prefix=/usr/local/libpng;
- 5.编译 make && make install 安装
- 3.selinux permission deny
- 1、关闭iptables
- #service iptables stop
- 2、关闭SELinux
- #vi /etc/selinux/config
- 将文件中的SELINUX="" 为 disabled ,然后重启。
- 如果不想重启系统,使用命令setenforce 0
- 注:
- setenforce 1 设置SELinux 成为enforcing模式
- setenforce 0 设置SELinux 成为permissive模式
- 在lilo或者grub的启动参数中增加:selinux=0,也可以关闭selinux
- 4.安装mysql,在./configure时出现错误:error: No curses/termcap library found的解决办法
- 原因:
- 缺少ncurses安装包
- 解决办法:
- 一、如果你的系统是RedHat系列:
- yum list|grep ncurses
- yum -y install ncurses-devel
- 5.php
- ../bin/nagios: error while loading shared libraries: libltdl.so.3: cannot open shared object file: No such file or directory
- 解决办法:
- yum -y install libtool-ltdl-devel.i386
==============================================================
OK,完工,Lamp基本搭建到此结束!(鼓掌)
转载于:https://blog.51cto.com/tanght/1116805