PHP中高级工程师面试重点讲解视频课程
Go快速入门浅显易懂视频教程-基础篇
Go快速入门浅显易懂视频教程-中级篇
lamp环境安装总结
原创杂文 / 时间:2014-08-27 16:32:27 / 阅读:1955 / 分享:0

备注:系统环境:centos6.4 相关软件:httpd-2.4.9,apr-1.5.1,apr-util-1.5.3,mysql-5.5.38,php-5.4.29,libmcrypt-2.5.7,cmake-2.8.10.2 所有的源文件放在/root/zengzhihai/下面
    准备:yum -y install gcc*,yum -y groupinstall "Development Tools",yum -y install pcre*,yum -y install ncurses-devel,yum -y install libxml2*,yum -y install openssl openssl-devel,yum -y install bzip2 bzip2-devel
    流程:
        1:安装apr
        # tar xf apr-1.4.6.tar.bz2
        # cd apr-1.4.6
        # ./configure --prefix=/usr/local/apr
        # make && make install
        2:安装apr-util
        # tar xf apr-util-1.5.2.tar.bz2
        # cd apr-util-1.5.2
        # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
        # make && make install
        3:安装httpd-2.4.4
        # tar xf httpd-2.4.4.tar.bz2
        # cd httpd-2.4.4
        # ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-cgi --enable-rewrite --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre --with-libxml2 --with-ssl --with-zlib --enable-deflate --enable-expires --enable-headers
        #  解析 
        # ./configure \
          --prefix=/usr/local/apache \  #安装地址
          --sysconfdir=/etc/httpd \  #配置文件路径
          --enable-so \  #支持基于DMO的方式动态加载模块
          --enable-cgi \  #CGI脚本支持
          --enable-rewrite \  #支持重写
          --with-apr=/usr/local/apr \  #指定apr的安装路径
          --with-apr-util=/usr/local/apr-util \  #指定apr-util的安装路径
          --with-pcre \  #支持正则表达式
          --with-libxml2 \ #支持xml
          --with-ssl \  #支持https协议
          --with-zlib \  #支持网页数据压缩
          --enable-deflate \  #提供对内容的压缩传输编码支持,一般html/js/css等内容的站点,使用此参数功能会大大提高传输速度,提示访问者访问体验,在生产环境中,这是apache调优的重要选项之一
          --enable-expires \  #激活允许通过配置文件控制http的“expires”和“cache-control”头内容,即对网站图片,js,css等内容,提供在客户端浏览器缓存的设置,这是apache调优的重要选项之一
          --enable-headers \  #提供允许http请求头的控制
        4:注意:如果有默认的安装的httpd的话,可以用yum remove httpd 删除,然后安装httpd
        5:添加httpd启动脚本
            a.编辑/etc/httpd/httpd.conf,添加如下行即可:PidFile  "/var/run/httpd.pid"
            b.提供SysV服务脚本/etc/rc.d/init.d/httpd,内容如下:
                #!/bin/bash
                #
                # httpd        Startup script for the Apache HTTP Server
                #
                # chkconfig: - 85 15
                # description: Apache is a World Wide Web server.  It is used to serve \
                #              HTML files and CGI.
                # processname: httpd
                # config: /etc/httpd/httpd.conf
                # config: /etc/sysconfig/httpd
                # pidfile: /var/run/httpd.pid

                # Source function library.
                . /etc/rc.d/init.d/functions

                if [ -f /etc/sysconfig/httpd ]; then
                        . /etc/sysconfig/httpd
                fi

                # Start httpd in the C locale by default.
                HTTPD_LANG=${HTTPD_LANG-"C"}

                # This will prevent initlog from swallowing up a pass-phrase prompt if
                # mod_ssl needs a pass-phrase from the user.
                INITLOG_ARGS=""

                # Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
                # with the thread-based "worker" MPM; BE WARNED that some modules may not
                # work correctly with a thread-based MPM; notably PHP will refuse to start.

                # Path to the apachectl script, server binary, and short-form for messages.
                apachectl=/usr/sbin/apachectl
                httpd=${HTTPD-/usr/local/apache/bin/apachectl}
                prog=httpd
                pidfile=${PIDFILE-/var/run/httpd.pid}
                lockfile=${LOCKFILE-/var/lock/subsys/httpd}
                RETVAL=0

                # check for 1.3 configuration
                check13 () {
                        CONFFILE=/etc/httpd/httpd.conf
                        GONE="(ServerType|BindAddress|Port|AddModule|ClearModuleList|"
                        GONE="${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|"
                        GONE="${GONE}AccessConfig|ResourceConfig)"
                        if LANG=C grep -Eiq "^[[:space:]]*($GONE)" $CONFFILE; then
                                echo
                                echo 1>&2 " Apache 1.3 configuration directives found"
                                echo 1>&2 " please read /usr/share/doc/httpd-2.2.3/migration.html"
                                failure "Apache 1.3 config directives test"
                                echo
                                exit 1
                        fi
                }

                # The semantics of these two functions differ from the way apachectl does
                # things -- attempting to start while running is a failure, and shutdown
                # when not running is also a failure.  So we just do it the way init scripts
                # are expected to behave here.
                start() {
                        echo -n $"Starting $prog: "
                        check13 || exit 1
                        LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
                        RETVAL=$?
                        echo
                        [ $RETVAL = 0 ] && touch ${lockfile}
                        return $RETVAL
                }

                # When stopping httpd a delay of >10 second is required before SIGKILLing the
                # httpd parent; this gives enough time for the httpd parent to SIGKILL any
                # errant children.
                stop() {
                        echo -n $"Stopping $prog: "
                        killproc -p ${pidfile} -d 10 $httpd
                        RETVAL=$?
                        echo
                        [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
                }
                reload() {
                    echo -n $"Reloading $prog: "
                    if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
                        RETVAL=$?
                        echo $"not reloading due to configuration syntax error"
                        failure $"not reloading $httpd due to configuration syntax error"
                    else
                        killproc -p ${pidfile} $httpd -HUP
                        RETVAL=$?
                    fi
                    echo
                }

                # See how we were called.
                case "$1" in
                  start)
                        start
                        ;;
                  stop)
                        stop
                        ;;
                  status)
                        status -p ${pidfile} $httpd
                        RETVAL=$?
                        ;;
                  restart)
                        stop
                        start
                        ;;
                  condrestart)
                        if [ -f ${pidfile} ] ; then
                                stop
                                start
                        fi
                        ;;
                  reload)
                        reload
                        ;;
                  graceful|help|configtest|fullstatus)
                        $apachectl $@
                        RETVAL=$?
                        ;;
                  *)
                        echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
                        exit 1
                esac

                exit $RETVAL
            c.添加权限,并添加自启动  
                # chmod +x /etc/rc.d/init.d/httpd
                # chkconfig httpd --level 235 on
        6:安装cmake-2.8.10.2
        # ./configure && make && make install
        7:将cmake永久加入系统环境变量
        # vi /etc/profile
            在文件末尾追加以下两行代码:
            PATH=/usr/local/cmake-2.8.10.2/bin:$PATH
            export PATH
        # source /etc/profile
        # echo $PATH
        7:安装编译mysql-5.5.38
        # mkdir /usr/local/mysql
        # mkdir /usr/local/mysql/data
        # groupadd mysql
        # useradd -r -g mysql mysql
        # cd mysql-5.5.38
        # cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
          -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
          -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_DATADIR=/usr/local/mysql/data \
          -DMYSQL_USER=mysql \
          -DMYSQL_TCP_PORT=3306
        # cd /usr/local/mysql/
        # chown -R root:mysql .
        # chown -R mysql:mysql data
        # cp support-files/my-medium.cnf /etc/my.cnf
        # 创建系统库
        # scripts/mysql_install_db --user=mysql 
        # vi /root/.bash_profile
            在修改PATH=$PATH:$HOME/bin为:
            PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
        # source /root/.bash_profile
        # ./bin/mysqld_safe --user=mysql &
        # 将mysql的启动服务添加到系统服务中
        # cp support-files/mysql.server /etc/init.d/mysql
        # chown -R mysql:mysql /usr/local/mysql
        # /etc/init.d/mysql start
        8:安装libmcrypt-2.5.7
        # ./configure && make && make install
        9:安装php-5.4.29
        # ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2  --enable-maintainer-zts
        # make && make install
        # cp php.ini-production /etc/php.ini
        10:编辑apache配置文件httpd.conf,以apache支持php
        # vim /etc/httpd/httpd.conf
        1、添加如下二行
           AddType application/x-httpd-php  .php
           AddType application/x-httpd-php-source  .phps

        2、定位至DirectoryIndex index.html 
           修改为:
            DirectoryIndex  index.php  index.html
        11:通过phpsize去扩展gd库或者pdo
        # cd /root/zengzhihai/php-5.4.29/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_mysql.so

关于作者
按时间分类