本文教你如何从源码安装LAMP环境

export PREFIX=/usr/local/lamp

(1).Zlib

    tar xvf zlib-1.2.5.tar.bz2

    cd zlib-1.2.5

    ./configure –prefix=${PREFIX}/zlib

    make && make install

 

(2).libjpeg

    tar xvf jpegsrc.v8c.tar.gz

    cd jpeg-8c

    ./configure –prefix=${PREFIX}/libjpeg –with-gnu-ld

     make && make install

(3).FreeType

    tar xvf freetype-2.4.4.tar.bz2

    cd freetype-2.4.4

    ./configure –prefix=${PREFIX}/freetype –with-gnu-ld

    make && make install

(4).libpng

    tar xvf libpng-1.5.1.tar.gz

    cd libpng-1.5.1

    ./configure –prefix=${PREFIX}/libpng –with-zlib-prefix=${PREFIX}/zlib

    make && make install

(5).expat

    tar xvf expat-2.0.1.tar.gz

    cd expat-2.0.1

    ./configure –prefix=${PREFIX}/expat

    make && make install

(5-1).libiconv

    tar xvf libiconv.tar.gz

    cd libiconv

    ./configure –prefix=${PREFIX}/libiconv

    make && make install

(5-2).autoconf

    tar xvf autoconf.tar.gz

    cd autoconf

    ./configure –prefix=${PREFIX}/autoconf

    make && make install

(6).gd

    tar xvf gd-2.0.35.tar.gz

    cd gd-2.0.35

    ./configure –prefix=${PREFIX}/gd –with-gnu-ld  –with-png=${PREFIX}/libpng \

    –with-freetype=${PREFIX}/freetype –with-jpeg=${PREFIX}/libjpeg  \

    –with-libiconv-prefix=${PREFIX}/libiconv

    make && make install

   

(7).libxml

    tar xvf libxml2-sources-2.7.8.tar.gz

    cd libxml2-2.7.8

    ./configure –prefix=${PREFIX}/libxml –with-zlib=${PREFIX}/zlib \

    –with-iconv=${PREFIX}/libiconv

    make && make install

(8).libmcrypt

    tar xvf libmcrypt-2.5.8.tar.gz

    cd libmcrypt-2.5.8

    ./configure –prefix=${PREFIX}/libmcrypt –enable-static=yes –enable-dynamic-loading

    make && make install

(9).cronolog

    tar xvf cronolog.tar.gz

    cd cronolog   

    ./configure –prefix=${PREFIX}/cronolog

    make && make install

(10).openssl

    tar xvf openssl-1.0.0d.tar.gz

    cd openssl-1.0.0d

    ./config –prefix=${PREFIX}/openssl –openssldir=${PREFIX}/openssl shared

    make && make install

    echo “${PREFIX}/openssl/lib”>>/etc/ld.so.conf

(11).openssh

    tar xvf openssh-5.8p1.tar.gz

    cd openssh-5.8p1

    ./configure –prefix=${PREFIX}/openssh -with-zlib=${PREFIX}/zlib –with-md5-passwords \

    –with-mantype=man –with-ssl-dir=${PREFIX}/openssl -with-ssl-engine \

    –with-Werror

    make && make install

(12).pcre

    tar xvf pcre-8.12.tar.bz2

    cd pcre-8.12

    ./configure –prefix=${PREFIX}/pcre –enable-pcregrep-libz

    make && make install

(12-1).openssl-0.98

    tar xvf openssl-0.98.tar.gz

    cd openssl-0.98

    ./config –prefix=${PREFIX}/openssl0.98 –openssldir=${PREFIX}/openssl0.98 shared

    make && make install

(13).mysql

    tar xvf mysql-5.0.22.tar.gz

    cd mysql-5.0.22   

    groupadd mysql

    useradd -g mysql -M mysql

    ./configure –prefix=${PREFIX}/mysql –enable-assembler –enable-local-infile \

    –enable-thread-safe-client –with-charset=utf8 –with-extra-charsets=all \

    –with-mysqld-user=mysql –with-zlib-dir=${PREFIX}/zlib –with-comment \

    –with-openssl=${PREFIX}/openssl0.98 –with-big-tables

    make && make install

    cp support-files/my-medium.cnf /etc/my.cnf

    cd ${PREFIX}/mysql

    bin/mysql_install_db –user=mysql

    chown -R root  .

    chown -R mysql var

    chgrp -R mysql .

   

    #启动mysqld服务器

    bin/mysqld_safe –user=mysql &

    bin/mysqladmin -u root password “root”

    cp -v ${PREFIX}/mysql/share/mysql/mysql.server /etc/init.d/mysqld

    chmod +x /etc/init.d/mysqld

   

   

(14).Apache

    tar xvf httpd-2.3.11-beta.tar.gz

    cd httpd-2.3.11-beta

    ./configure –prefix=${PREFIX}/apache –enable-modules=all \

    –enable-mods-shared=most –enable-so –with-pcre=${PREFIX}/pcre \

    –with-z=${PREFIX}/zlib –with-ssl==${PREFIX}/openssl –enable-ssl \

    –enable-cgi –enable-rewrite=shared –enable-vhost-alias –enable-static-support \

    –disable-userdir –enable-mime-magic

    make && make install

    cp -v ${PREFIX}/apache/bin/apachectl /etc/init.d/httpd

    chmod -R 755 ${PREFIX}/apache/htdocs

(15).php

    tar xvf php-5.3.5.tar.bz2

    cd php-5.3.5

    ./buildconf –force

    ./configure –prefix=${PREFIX}/php –with-config-file-path=${PREFIX}/php/etc \

    –with-mysql=${PREFIX}/mysql –with-mysqli=${PREFIX}/mysql/bin/mysql_config \

    –with-iconv-dir=${PREFIX}/libiconv  –with-freetype-dir=${PREFIX}/freetype \

    –with-jpeg-dir=${PREFIX}/libjpeg  –with-png-dir=${PREFIX}/libpng –with-zlib-dir=${PREFIX}/zlib \

    –with-libxml-dir=${PREFIX}/libxml –enable-xml –enable-magic-quotes –enable-safe-mode \

    –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl \

    –with-curlwrappers –with-gettext –with-mhash –enable-pcntl –enable-sockets \

    –with-xmlrpc –enable-zip –enable-soap –enable-mod-charset –with-apxs2=${PREFIX}/apache/bin/apxs \

    –with-openssl=${PREFIX}/openssl –with-pcre-regex=${PREFIX}/pcre –with-zlib=${PREFIX}/zlib  \

    –with-mcrypt=${PREFIX}/libmcrypt

    make && make install

    mkdir -p ${PREFIX}/php/etc

    cp php.ini-development ${PREFIX}/php/etc/php.ini

    echo “Addtype application/x-httpd-php .php .phtml” >> ${PREFIX}/apache/conf/httpd.conf

(15-1).若开启SELINUX则如下操作

[1].关闭SELINUX

    sed -i -e “s@SELINUX=enforcing@SELINUX=disabled@” /etc/selinux/config

[2].不关闭SELINUX

    setenforce 0

    chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t ${PREFIX}/apache/modules/libphp5.so

    setenforce 1

(15-2).配置httpd.conf

sed -i -e “s|ServerAdmin you@example.com|ServerAdmin $(hostname)|” ${PREFIX}/apache/conf/httpd.conf

sed -i -e “s|ServerName www.example.com:80|ServerName localhost:80|” ${PREFIX}/apache/conf/httpd.conf

sed -i -e “s|DirectoryIndex|DirectoryIndex index.php|” ${PREFIX}/apache/conf/httpd.conf

(16).测试

    echo “<?php phpinfo(); ?>” >${PREFIX}/apache/htdocs/index.php

    chmod 755 ${PREFIX}/apache/htdocs/index.php

    service httpd restart

(17).phpMyAdmin

    tar xvf phpMyAdmin-3.3.10-all-languages.tar.bz2

    cd phpMyAdmin-3.3.10-all-languages

    mv * ${PREFIX}/apache/htdocs

    cd ${PREFIX}/apache/htdocs

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