编译安装lamp环境
2014-05-27 10:06
134 查看
1.1准备工作 检查系统 #uname-a如果有x86_64就是64位的,没有就是32位的这是64位的 1、安装编译工具gcc、gcc-c++ 注意解决依赖关系,推荐使用yum安装,若不能联网可使用安装光盘做为yum源—— 1)编辑yum配置文件:(根据实际情况配置) # mount /dev/cdrom /mnt/cdrom 进入到/etc/yum.repos.d目录CentOS-Base.repo重命名。 cd /etc/yum.repos.d mv CentOS-Base.repo CentOS-Base.repo.bak # vi /etc/yum.repos.d/CentOS-Media.repo [c5-media] name=CentOS-$releasever - Media baseurl=file:///mnt/cdrom * 修改为光盘挂载点 file:///media/cdrom/ file:///media/cdrecorder/ gpgcheck=1 enabled=1 * 改为1意为启用 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 2)设置alias值:(不设) # vi /etc/bashrc alias yum="yum --disablerepo=\* --enablerepo=c5-media" . /etc/bashrc 3)依次安装gcc、gcc-c++ # yum -y install gcc # yum -y install gcc-c++ 2、关闭系统RPM安装包的Apache、MySQL的服务 关闭启动的服务httpd、mysqld # service httpd stop # service mysqld stop 3、关闭SELinux,允许防火墙80端口访问 1)关闭SELinux # vi /etc/selinux/config SELINUX=disabled * 若安装时没有禁用SELinux ,将enforcing改为disabled 修改后需重新启动Linux方可生效! 2)关闭防火墙Netfilter/iptables 因尚未做防火墙讲解,直接简单的关闭所有防火墙设置: # iptables -F * 如果没有禁用防火墙,默认80端口禁止访问 4、关闭不必要自启动服务 # ntsysv 以下列出服务可保持自启动,未列出的服务都可以关闭: atd crond # atd、crond计划任务 irqbalance microcode_ctl # 系统irq端口调用,系统服务 network #网络设置 sendmail #邮件 sshd #远程管理 syslog #系统日志 5、拷贝源码包,解包解压缩 建议将LAMP环境安装源码包统一存放在一个目录下,如/lamp 可编写个批量处理脚本,一次性把所有.tar.gz的安装包解包解压缩 # vi tar.sh cd /lamp /bin/ls *.tar.gz > ls.list /bin/ls *.tgz >> ls.list for TAR in `cat ls.list` do /bin/tar -zxf $TAR done /bin/rm ls.list 6、查看确认磁盘空间未满 df -h * 若/分区已满,可以移动安装包到其他分区或删除其他无用文件 1.2编译安装 * 每个源码包配置编译安装完成后,确认安装目录下是否生成安装文件 # 安装libxml2 cd /lamp/libxml2-2.6.30 ./configure --prefix=/usr/local/libxml2/ make make install # 安装libmcrypt cd /lamp/libmcrypt-2.5.8 ./configure --prefix=/usr/local/libmcrypt/ make make install * 需调用gcc-c++编译器,未安装会报错 # 安装libltdl,也在libmcrypt源码目录中,非新软件 cd /lamp/libmcrypt-2.5.8/libltdl ./configure --enable-ltdl-install make make install # 安装zlib cd /lamp/zlib-1.2.3 ./configure * (64位编译方法) CFLAGS="-O3 -fPIC" ./configure 不然装到freetype会出错: 在执行./configure --prefix=/usr/local/freetype出错make: Nothing to be done for `unix'. 在执行./configure --prefix=/usr/local/fonttype出错configure: error: You must have freetypeinstalled; make make install * zlib指定安装目录可能造成libpng安装失败,故不指定,为卸载方便,建议make install执行结果输出到安装日志文件,便于日后卸载 # 安装libpng cd /lamp/libpng-1.2.31 ./configure --prefix=/usr/local/libpng/ make make install #(注意在64位下需要)检查安装libtool-1.5.22.tar.gz rpm -qa|grep libtool (检查是否安装) cd /lamp/libtool-1.5.22 ./configure make make install cp /usr/share/libtool/config.sub . (如果找不到路径就find / -name libtool ) cp /usr/share/libtool/config.guess . # 安装jpeg6 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 ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static make make install * --enable-shared与--enable-static参数分别为建立共享库和静态库使用的libtool # 安装freetype cd /lamp/freetype-2.3.5 ./configure --prefix=/usr/local/freetype/ make make install # 安装autoconf cd /lamp/autoconf-2.61 ./configure make make install # 安装GD库 mkdir /usr/local/gd2 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 * 若前面配置zlib时没有指定安装目录,gd配置时不要添加--with-zlib=/usr/local/zlib/参数 装GD64位同样会报错: Makefile.am:18: Libtool library used but `LIBTOOL' is undefined Makefile.am:18: Makefile.am:18: The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL' Makefile.am:18: to `configure.ac' and run `aclocal' and `autoconf' again. make: *** [Makefile.in] 错误 1 #yum -y install gettext-devel #yum -y install libtool* #aclocal #autoconf就可以了,然后就make吧 # 安装Apache cd /lamp/httpd-2.2.9 ./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 * 若前面配置zlib时没有指定安装目录,Apache配置时不要添加--with-z=/usr/local/zlib/参数 启动Apache测试: /usr/local/apache2/bin/apachectl start ps -le | grep httpd * 若启动时提示/usr/local/apache2/modules/mod_deflate.so无权限,可关闭SELinux或者执行命令chcon -t texrel_shlib_t /usr/local/apache2/modules/mod_deflate.so ,类似此类.so文件不能载入或没有权限的问题,都是SELinux问题,使用命令:“chcon -t texrel_shlib_t 文件名”即可解决,MySQL和Apache也可能有类似问题。 通过浏览器输入地址访问:http://Apache服务器地址,若显示“It works”即表明Apache正常工作 设置Apache系统引导时启动: echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local # 安装ncurses 1、yum -y install ncurses* 2、源代码编译: cd /lamp/ncurses-5.6 ./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目录 # 安装MySQL groupadd mysql useradd -g mysql mysql * 添加用户组mysql ,将mysql用户默认组设置为mysql用户组 cd /lamp/mysql-5.1.59 ./configure --prefix=/usr/local/mysql --without-debug --enable-thread-safe-client --with-pthread --enable-assembler --enable-profiling --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-extra-charsets=all --with-plugins=all --with-mysqld-user=mysql --without-embedded-server --with-server-suffix=-community --with-unix-socket-path=/tmp/mysql.sock make make install * --with-extra-charsets=all参数为安装所有字符集 * 若编译失败,make clean后再make ; make install 。默认不支持innodb存储引擎,其中--with-plugins=all可以把innodb加载进来。 1、 cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf 修改mysql配置文件 1.[client] default-character-set=utf8 2.[mysqld] character-set-server=utf8 collation-server = utf8_general_ci * 生成MySQL配置文件 setfacl -m u:mysql:rwx -R /usr/local/mysql * 用acl来让mysql用户对/usr/local/mysql有所有权限 /usr/local/mysql/bin/mysql_install_db --user=mysql * 创建数据库授权表 启动MySQL服务: 1.用原本源代码的方式去使用和启动mysql /usr/local/mysql/bin/mysqld_safe --user=mysql & 2.重启以后还要生效: vi /etc/rc.local /usr/local/mysql/bin/mysqld_safe --user=mysql & 3./usr/local/mysql/bin/mysqladmin -uroot password 123456 (111111) * 给mysql用户root加密码123456 /usr/local/mysql/bin/mysql -u root -123456 test mysql>show databases; mysql>use test; mysql>show tables; * 进入mysql以后用set来改密码 mysql> exit * 登录MySQL客户端控制台设置指定root密码 # 安装PHP 编译前确保系统已经安装了libtool和libtool-ltdl软件包,安装: yum -y install libtool* yum -y install libtool-ltdl* cd /lamp/php-5.2.6 ./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=/usr/local/gd2/ --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets * 若前面配置zlib时没有指定安装目录,PHP配置时不要添加--with-zlib-dir=/usr/local/zlib/参数 64位报错:configure:error:libjpeg.(a|so) not found 检查一下: [root@cheng Nginxsource]# rpm -qa |grep libjpeg libjpeg-6b-46.el6.x86_64 libjpeg-devel-6b-46.el6.x86_64 #貌似我明明安装了 看了找不到库文件那我就给他复制一份: 1. cp -frp /usr/lib64/libjpeg.* /usr/lib/ #configure:error:libjpeg.(a|so) not found 报错搞定 2. 注意过程中还会提示" Configure: error: libpng.(also) not found."错误,解决办法和上面的一样. cp -frp /usr/lib64/libpng* /usr/lib/ 如果还不行用:# yum install libpng libpng-devel 3.如果提示"configure: error: Cannot find ldap libraries in /usr/lib." cp -frp /usr/lib64/libldap* /usr/lib make make install 生成php.ini cp /lamp/php-5.2.6/php.ini-dist /usr/local/php/etc/php.ini 测试Apache与PHP的连通性,看Apache是否能解析php文件 vi /usr/local/apache2/etc//httpd.conf Addtype application/x-httpd-php .php .phtml .phps (注意T的大小写,这句放在第一行) <IfModule dir_module>(是在这个标签下加哦) DirectoryIndex index.shtml index.html index.php DirectoryIndex index.html </IfModule> * .phtml为将.phps做为PHP源文件进行语法高亮显示 重启Apache服务:/usr/local/apache2/bin/apachectl restart * Apache无法启动,提示cannot restore segment prot after reloc: Permission denied错误,为SELinux问题,可关闭SELinux或者执行命令chcon -t texrel_shlib_t /usr/local/apache2/modules/libphp5.so 测试:vi /usr/local/apache2/htdocs/test.php <? phpinfo(); ?> 通过浏览器输入地址访问:http://Apache服务器地址/test.php * 有时第一次浏览器测试会失败,关闭浏览器重启再尝试即可,非编译错误 # 编译安装memcache cd /lamp/memcache-2.2.5 /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config make && make install # 编译安装 PDO_MYSQL cd /lamp/PDO_MYSQL-1.0.2/ /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql make && make install 修改/usr/local/php/etc/php.ini extension_dir=" /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626 /" extension="memcache.so"; extension="pdo.so"; extension="pdo_mysql.so"; --------------------------------------------以下软件可选装------------------------------------------------ # 安装Zend加速器 cd /lamp/ZendOptimizer-3.2.6-linux-glibc21-i386 ./install.sh * 注意PHP配置文件和Apache启动脚本所在目录指定正确即可 #安装memcache源代码 首先安装依赖包libevent yum -y install libevent* cd /lamp/memcached-1.4.10 ./configure --prefix=/usr/local/memcache make && make install useradd memcache passwd memcache 123456 * Linux不能用root运行memcache软件 /usr/local/memcache/bin/memcached -umemcache & netstat -an | grep :11211 telnet 192.168.10.1 11211 stats 写入自启动: vi /etc/rc.d/rc.local /usr/local/memcache/bin/memcached -umemcache & # 安装phpMyAdmin cp -r /lamp/phpMyAdmin-3.0.0-rc1-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 ['auth_type']='http' * 设置auth_type为http ,即设置为HTTP身份认证模式 通过浏览器输入地址访问:http://Apache服务器地址/phpmyadmin/index.php 用户名为root ,密码为MySQL设置时指定的root密码(111111) 安装过程中大多错误起始为输入错误,可以通过history命令查看历史记录检查。
相关文章推荐
- Ubuntu 11.04 x64 常用软件及编译安装LAMP开发环境
- Ubuntu 11.10 源代码编译安装lamp环境
- 详解四:CentOS下编译安装PHP开发环境,配置LAMP
- centos下编译安装LAMP环境
- 已经安装好了的lamp或者lnmp环境,编译其他的模块进来?
- REDHAT5下编译安装LAMP环境
- CentOS下编译安装LAMP环境
- 详解五:CentOS下编译安装PHP开发环境,配置LAMP
- 详解一:CentOS下编译安装PHP开发环境,配置LAMP
- RHEL6.4 源码包编译安装LAMP环境
- Ubuntu 11.04 x64 常用软件及编译安装LAMP开发环境
- lamp环境下编译安装postfix+dovecot实现系统用户收发邮件
- Linux下LAMP环境的安装之编译安装过程(二)
- centos下编译方式安装lamp环境和mod_wsgi扩展
- 在ubuntu linux下以编译方式安装LAMP(apache mysql php)环境
- CentOS5.5下快速编译安装最新的LAMP环境
- Linux下LAMP环境的安装之编译安装过程(四)
- Linux下LAMP环境的安装之编译安装过程(五)
- LAMP环境安装1之php编译报错
- ubuntu12.04下编译安装lamp(apache2.2.26 mysql5.5.36 php5.2.17)环境