在Centos 5.2下编译安装LAMP

首先使用Virtualbox安装一台CentOS 5.2的虚拟机,网络连接采用 Host-only Adapter,这样主客机之间可以互相访问,但是客机不能够上广域网。

0、系统初步配置

源文件位置    /root/software 编译安装位置    /usr/local/{software_name} 数据存放        /data1/

Apache运行账户    www:www mysql运行账户    mysql:mysql

关闭 Selinux

    Selinux 经常会对系统的运行产生一些奇怪的影响,如果不是特别熟悉的话,建议关掉 Selinux。     Selinux 的配置文件位于 /etc/selinux/config,我们需要修改的部分在:         SELINUX=enforcing     修改为    SELINUX=disabled,然后重启服务器,SELINUX 的配置救生效了。

配置 iptables

安装必要的软件

    如果能够连上网络,可以通过 yum 来安装这些必要的工具;如果不能连上网络,则需要使用本地的安装源或者安装文件。

    下面列出一些必须的工具: gcc         wget         make         ntp         patch         autoconf         automake         bzip2-devel       

    通过本地的源来进行安装,首先在 Virtualbox 的 Devices -> Mount CD/DVD-Rom -> CD/DVD-Rom image,加载安装的镜像文件。             计划安装的软件及其版本: apache 1.3.41 cronolog 1.6.2 gd 2.0.35 libiconv 1.13.1 libmcrypt 2.5.8 mcrypt 2.6.7 openssl 0.9.8k openssh    5.2p1 pecre 7.9 nginx 0.7.62 mysql 5.0.51 php 5.2.9/4.4.9 memcached 1.4.1 memcache 2.2.5 xcache 1.2.2 zend optimizer 3.3.9 imap bind 9.4.2

1、安装其他软件

    安装 OpenSSL:         ./config --prefix=/usr/local/openssl/         make         make test         make install     安装GD2         ar jxvf gd-2.0.35.tar.bz2         cd gd-2.0.35         ./configure --prefix=/usr/local/gd2         make &&make install         cd ..

    安装libiconv         tar zxvf libiconv-1.12.tar.gz         cd libiconv-1.12         ./configure --prefix=/usr &&make &&make install         cd ..

    安装libmcrypt         tar jxvf libmcrypt-2.5.8.tar.bz2         cd libmcrypt-2.5.8         ./configure --prefix=/usr/local/libmcrypt &&make &&make install         cd ..

    安装 cronolog         ./configure --prefix=/usr/local/cronolog         make && make install

2、安装mysql     本文采用的是二进制安装的方式进行的,基本的顺序和 mysql 官方的顺序差不多,只不过有些地方做一些说明。     shell> groupadd mysql     shell> useradd -g mysql mysql     shell> cd /usr/local     shell> tar -xvzf /path/to/mysql-VERSION-OS.tar.gz     shell> mkdir /usr/local/mysql     shell> cp -rf /path/to/mysql-VERSION-OS /usr/local/mysql     shell> cd /usr/local/mysql     shell> chown -R mysql .     shell> chgrp -R mysql .     shell> scripts/mysql_install_db --user=mysql     shell> chown -R root .     shell> chown -R mysql data     shell> bin/mysqld_safe --user=mysql &     前面几步一般不会有问题,只是最后一步执行 bin/mysqld_safe --user=mysql & 的时候,系统出错了:     Starting mysqld daemon with databases from /var/lib/mysql     STOPPING server from pid file /var/run/mysqld/mysqld.pid     090930 12:19:32  mysqld ended     然后就结束了,这个问题的原因,我们可以在日志文件 /var/log/mysqld.log 中看到     090930 12:19:31  mysqld started     090930 12:19:31 [Warning] option 'thread_stack': unsigned value 126976 adjusted to 131072         090930 12:19:32  InnoDB: Started; log sequence number 0 43655         090930 12:19:32 [ERROR] /usr/local/mysql/bin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2)         090930 12:19:32 [ERROR] Can't start server: can't create PID file: No such file or directory         090930 12:19:32  mysqld ended

    也就是权限不够,解决的办法有两个,一个是建立一个 mysql 有权限读写的 /var/run/mysqld/ 文件夹;另一个方法,我们可以使用 /usr/local/mysql/support-files/mysql.server 来进行服务的启动。

    这样 mysql 安装完成以后,文件的存放结构都是按照默认的设定来的,比如一些常见的:         配置文件    /etc/my.cnf         basedir    /usr/local/mysql     最后需要配置一下mysql随系统启动服务,拷贝 /usr/local/mysql/support-files/mysql.server -> /etc/rc.d/init.d/mysql 中,然后添加 chkconfig --add mysql     这样就可以通过 service mysql start 来启动 mysql 服务了           

3、安装Apache

    这篇里 apache 选择经典的 1.3.41 版本。

    apache 的安装方法不止一种,无论哪一种,首先我们必须确认当前系统中没有 httpd 服务正在运行:ps -aux | grep httpd,如果我们发现结果中有的话,应该将他杀掉。     然后到 apache 的安装目录下,这里是 /root/software/source_lamp/apache_1.3.41,整个目录内的结构和文件介绍如下:         cgi-bin/ ――用于测试CGI的脚本。随后,安装过程将把这些文件复制到服务器的/cgi-bin目录中。如果启动了Apache的CGI功能,这些脚本可以用于测试那些功能。         conf/ ――配置文件。这些发布时的配置不应该进行编辑。安装过程把这些文件复制到服务器的配置目录中,对这些复制文件将进行扩展编辑。         htdocs/ ――第一个Web站点。安装过程把这些文件复制到服务器的文档根目录中。浏览器第一次测试服务器时将显示这些网页。         icons/ ――目录索引图标。这些图像文件将成为由Web服务器用来提供特别路径索引功能的图标。            logs/ ――日志工具。这个目录是空的,安装过程将为安装好的服务器创建一个日志目录。         src/ ――源代码。这个目录(和它的子目录)包含了C语言源代码文件,你编译它们以创建出Apache Web服务器。

    首先执行 configure,这里将 bin/data/log,三个目录进行了自定义:     ./configure --prefix=/usr/local/lampsrv/apache/ --datadir=/data1/www/data/htdocs/ --logfiledir=/data1/www/applogs/ --enable-shared=max --enable-module=most     make     make install 4、安装PHP     解压下载的安装包,然后执行配置。     ./configure --prefix=/usr/local/lampsrv/php --with-apxs=/usr/local/lampsrv/apache/bin/apxs  --with-config-file-path=/usr/local/lampsrv/etc/php/ --enable-track-vars --with-xml --with-mysql     make && make install

    安装完成后,在 apache 的配置文件中添加对于 php 后缀的解析。     AddType application/x-httpd-php .php .php3 .inc     AddType application/x-httpd-php-source .phps

    然后重启 apache 服务:/usr/local/lampsrv/apache/bin/apachectl restart     启动的时候,有可能会遇到这样的错误:Cannot load /usr/local/apache2/modules/libphp4.so into server: /usr/local/apache2/modules/libphp4.so : cannot restore segment prot after reloc: Permission Denied

    这种情况一般是由于 selinux 的安全设置引起的,可以考虑关闭掉 selinux,在 /etc/selinux/config 中进行设置。   

5、安装总结

    至此,我们已经配置了基本的 Linux + Apache + Mysql + PHP 的运行环境,但是仍有很多的配置文件散落在各处,比如 mysql 的配置文件和数据文件。如何将这些配置文件和数据文件归拢在一个统一的位置,比如 /data1/www/etc ,还是一个需要不断总结积累的问题,另外还有一个就是如何形成一个快速安装配置的模式,是通过编写脚本还是通过搭建 yum 源来实现多台机器的快速配置是一个很需要经验的问题,在这两个方面,今后要不断的总结。

参考资料: 1、CentOS 5.2 编译安装 2、Apache httpd project 3、Cronolog 4、GD Library 5、GNU libiconv 6、OPEN SSL 7、OPEN SSH 8、PCRE 9、nginx 10、mysql 11、php 12、Memcached 13、XCache 14、IMAP 15、Mysql Install 16、Linux自启动详细设置 17、Apache 1.3.x 安装配置笔记 18、Apache 安装指南

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据库新发现

Oracle9i新特性:iSQLPLUS

Last Updated: Wednesday, 2004-10-27 12:04 Eygle

1041
来自专栏惨绿少年

KICKSTART无人值守安装

1.1 环境说明 [root@test ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [roo...

2790
来自专栏Java技术分享

Jrebel6.3.3破解,配置图文教程

Jrebel6.3.3破解,配置图文教程 JRebel是个很好的开发工具,我在网上找了好久都没有找到很详细的教程,破解与配置教程千篇一律,步骤不详细。编写这篇教...

2369
来自专栏pangguoming

kafka 主要内容介绍

根据官网的介绍,ApacheKafka®是一个分布式流媒体平台,它主要有3种功能:

1345
来自专栏Debian社区

Debian Jessie、Stretch 下安装配置 PHP7.2

PHP 7.2.0 已于 2017 年11月30日正式发布GA版,大家可以第一时间尝鲜了。这里我们介绍如何在 Debian 9 “Stretch” 上安装配置 ...

2102
来自专栏Spark学习技巧

重磅:Flume1-7结合kafka讲解

本文主要是将flume监控目录,文件,kafka Source,kafka sink,hdfs sink这几种生产中我们常用的flume+kafka+hadoo...

6807
来自专栏Seebug漏洞平台

GNU tar 解压路径绕过漏洞(CVE-2016-6321) 分析

Author: LG (知道创宇404安全实验室) 漏洞简介 GNU tar文档管理命令是linux系统下常用的一个打包、压缩的命令。经CSS(FSC1V Cy...

3756
来自专栏WindCoder

边学边用Gradle:Gradle的脚本结构

配置此项目的构建脚本类路径。可声明用于编译和执行构建脚本的类路径。该类路径也用于加载构建脚本使用的插件。

810
来自专栏Java技术分享

Jrebel6.3.3破解,配置图文教程

JRebel是个很好的开发工具,我在网上找了好久都没有找到很详细的教程,破解与配置教程千篇一律,步骤不详细。编写这篇教程,综合网络上的知识,加上了自己的理解与详...

33610
来自专栏zhisheng

SpringBoot Kafka 整合使用

前提 假设你了解过 SpringBoot 和 Kafka。 1、SpringBoot 如果对 SpringBoot 不了解的话,建议去看看 DD 大佬 和 纯洁...

88416

扫码关注云+社区

领取腾讯云代金券