• CentOS 6.8 LAMP 安装配置


    1.远程系统拒绝了连接:


    需要关闭防火墙
    /etc/rc.d/init.d/iptables stop

    service iptables stop
    chkconfig iptables off
    setenforce 0
    vi /etc/sysconfig/selinux
       SELINUX=disabled      #enforcing改为disabled
     
    依赖包安装
     
    yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel openldap-clients openldap-servers make  libtool* git tree bison pcre-devel perl gd gd-devel

    安装libiconv(支持编码转换为函数)
    wget https://ftp.gnu.org/gnu/libiconv/libiconv-1.14.tar.gz
    tar xf libiconv-1.14.tar.gz 
    cd libiconv-1.14/ 
    ./configure --prefix=/usr/local/libconv/
    make && make install
     
    安装libmcrypt  (加密算法扩展库,支持DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR, SERPENT, SAFER+等算法)
     
    wget https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download
    tar xf libmcrypt-2.5.8.tar.gz
    cd libmcrypt-2.5.8
    ./configure
    make && make install 
    cd libltdl/ 
    ./configure --enable-ltdl-install    #加载动态库
    make && make install
     
     
    安装mhash(Mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启。 mhash的可以用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存)
     
    wget https://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.bz2/download
    tar xf mhash-0.9.9.9.tar.bz2 
    cd mhash-0.9.9.9
    ./configure
    make && make install
     
    注意,下面编译mcript的时候,要先编辑ld.so.conf文件!!!
    vim /etc/ld.so.conf
        /usr/local/lib/     
    ldconfig
     
    安装mcript(mcrypt 是 php 里面重要的加密支持扩展库,Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。)
    wget https://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/download
    cd /usr/local/src
    tar zxvf mcrypt-2.6.8.tar.gz 
    cd mcrypt-2.6.8/ 
    export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH    #暂时生效
    ./configure 
    make && make install
     
    安装cmake (MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具)
    wget https://cmake.org/files/v3.7/cmake-3.7.1.tar.gz
    tar xf cmake-3.4.1.tar.gz
    cd cmake-3.4.1
    ./bootstrap
    make && make install
     
    三、MySQL编译安装

    新增mysql用户

    1
    2
    groupadd -r mysql
    useradd -r -g mysql mysql

    新建MySQL所需目录

    1
    2
    mkdir -p /usr/local/mysql 
    mkdir -p /data/mysqldb

    编译安装

    1
    2
    3
    4
    wget http://pkgs.fedoraproject.org/repo/pkgs/community-mysql/mysql-5.6.23.tar.gz/md5/60344f26eae136a267a0277407926e79/mysql-5.6.23.tar.gz
    tar xf mysql-5.6.23.tar.gz
    cd mysql-5.6.23
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1-DMYSQL_DATADIR=/data/mysqldb -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1-DSYSCONFDIR=/etc -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0
    make&& make install

    修改mysql目录权限

    1
    2
    3
    4
    cd /usr/local/mysql 
    chown -R mysql:mysql .
    cd /data/mysqldb 
    chown -R mysql:mysql .

    初始化mysql数据库

    1
    2
    cd /usr/local/mysql
    ./scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb

    编译修改/etc/my.cnf (这里可能因为mysql 默认root用户也只有读和执行的权限,所以要chmod 644 my.conf)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    [mysql]
      
    # CLIENT #
    port                           = 3306
    socket                         = /data/mysqldb/mysql.sock
      
    [mysqld]
      
    # GENERAL #
    user                           = mysql
    default-storage-engine         = InnoDB
    socket                         = /data/mysqldb/mysql.sock
    pid-file                       /data/mysqldb/mysql.pid
      
    # MyISAM #
    key-buffer-size                = 32M
    myisam-recover                 = FORCE,BACKUP
      
    # SAFETY #
    max-allowed-packet             = 16M
    max-connect-errors             = 1000000
      
    # DATA STORAGE #
    datadir                        = /data/mysqldb/
      
    # BINARY LOGGING #
    log-bin                        = /data/mysqldb/mysql-bin
    expire-logs-days               = 14
    sync-binlog                    = 1
      
    # REPLICATION #
    skip-slave-start               = 1
    relay-log                      = /data/mysqldb/relay-bin
    slave-net-timeout              = 60
      
    # CACHES AND LIMITS #
    tmp-table-size                 = 32M
    max-heap-table-size            = 32M
    query-cache-type               = 0
    query-cache-size               = 0
    max-connections                = 500
    thread-cache-size              = 50
    open-files-limit               = 65535
    table-definition-cache         = 4096
    table-open-cache               = 4096
      
    # INNODB #
    innodb-flush-method            = O_DIRECT
    innodb-log-files-in-group      = 2
    innodb-log-file-size           = 64M
    innodb-flush-log-at-trx-commit = 1
    innodb-file-per-table          = 1
    innodb-buffer-pool-size        = 592M
      
    # LOGGING #
    log-error                      = /data/mysqldb/mysql-error.log
    log-queries-not-using-indexes  = 1
    slow-query-log                 = 1
    slow-query-log-file            /data/mysqldb/mysql-slow.log

    同时,这个时候可能会出现报错:

    在my.conf中加入

    basedir=/usr/local/mysql

    datadir=/usr/local/mysql/data

    explicit_defaults_for_timestamp=true

    复制MySQL启动文件及其命令加入PATH

    1
    2
    3
    4
    5
    cp support-files/mysql.server /etc/init.d/mysqld   
    vim /etc/profile.d/mysql.sh
        PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
        export PATH
    source /etc/profile.d/mysql.sh

    启动MySQL并增加启动项

    1
    2
    service mysqld start 
    chkconfig  mysqld on

    设置MySQL登录权限

    1
    2
    3
    4
    drop user ''@localhost;
    drop user ''@hostname;
    update mysql.user set password=password('*******');
    flush privileges;

    四、Nginx编译安装

    新增nginx用户

    1
    2
    groupadd -r nginx
    useradd -g nginx -r nginx

    创建所需要目录

    1
    mkdir -pv /var/tmp/nginx/client

    编译安装nginx

    1
    2
    3
    4
    tar xf nginx-1.9.14.tar.gz
    cd nginx-1.9.14
    ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre
    make && make install

    编辑启动脚本

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    vim /etc/rc.d/init.d/nginx
     
    #!/bin/sh   
    #   
    # nginx - this script starts and stops the nginx daemon   
    #   
    # chkconfig:   - 85 15    
    # description:  Nginx is an HTTP(S) server, HTTP(S) reverse    
    #               proxy and IMAP/POP3 proxy server   
    # processname: nginx   
    # config:      /etc/nginx/nginx.conf   
    # config:      /etc/sysconfig/nginx   
    # pidfile:     /var/run/nginx.pid   
          
    # Source function library.   
    /etc/rc.d/init.d/functions  
          
    # Source networking configuration.   
    /etc/sysconfig/network  
          
    # Check that networking is up.   
    "$NETWORKING" "no" ] && exit 0   
          
    nginx="/usr/local/nginx/sbin/nginx" 
    prog=$(basename $nginx)   
          
    NGINX_CONF_FILE="/etc/nginx/nginx.conf" 
          
    [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx  
          
    lockfile=/var/lock/subsys/nginx  
          
    make_dirs() {   
       # make required directories   
       user=`nginx -V 2>&1 | grep "configure arguments:" sed 's/[^*]*--user=([^ ]*).*/1/g' -`   
       options=`$nginx -V 2>&1 | grep 'configure arguments:'`   
       for opt in $options; do  
           if [ `echo $opt | grep '.*-temp-path'` ]; then  
               value=`echo $opt | cut -d "=" -f 2`   
               if [ ! -d "$value" ]; then  
                   # echo "creating" $value   
                   mkdir -p $value && chown -R $user $value   
               fi  
           fi  
       done  
    }   
          
    start() {   
        [ -x $nginx ] || exit 5   
        [ -f $NGINX_CONF_FILE ] || exit 6   
        make_dirs   
        echo -n $"Starting $prog: "  
        daemon $nginx -c $NGINX_CONF_FILE   
        retval=$?   
        echo  
        [ $retval -eq 0 ] && touch $lockfile   
        return $retval   
    }   
          
    stop() {   
        echo -n $"Stopping $prog: "  
        killproc $prog -QUIT   
        retval=$?   
        echo  
        [ $retval -eq 0 ] && rm -f $lockfile   
        return $retval   
    }   
          
    restart() {   
        configtest || return $?   
        stop   
        sleep 1   
        start   
    }   
          
    reload() {   
        configtest || return $?   
        echo -n $"Reloading $prog: "  
        killproc $nginx -HUP   
        RETVAL=$?   
        echo  
    }   
          
    force_reload() {   
        restart   
    }   
          
    configtest() {   
      $nginx -t -c $NGINX_CONF_FILE   
    }   
          
    rh_status() {   
        status $prog   
    }   
          
    rh_status_q() {   
        rh_status >/dev/null 2>&1   
    }   
          
    case "$1" in  
        start)   
            rh_status_q && exit 0   
            $1   
            ;;   
        stop)   
            rh_status_q || exit 0   
            $1   
            ;;   
        restart|configtest)   
            $1   
            ;;   
        reload)   
            rh_status_q || exit 7   
            $1   
            ;;   
        force-reload)   
            force_reload   
            ;;   
        status)   
            rh_status   
            ;;   
        condrestart|try-restart)   
            rh_status_q || exit 0   
                ;;   
        *)   
            echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"  
            exit 2   
    esac

    设置开机启动并启动服务

    1
    2
    3
    4
    chmod +x /etc/rc.d/init.d/nginx
    chkconfig --add nginx 
    chkconfig nginx on
    service nginx start

    五、PHP编译安装

    解决php安装的库依赖关系

    1
    2
    3
    4
    5
    cp-frp /usr/lib64/libjpeg.* /usr/lib
    cp-frp /usr/lib64/libpng/usr/lib
    cp -frp /usr/lib64/libldap/usr/lib/
    echo /usr/local/mysql/lib >> /etc/ld.so.conf.d/mysql-x86_64.conf 
    ldconfig -v

    编译安装php

    1
    2
    3
    4
    5
    tar xf php-5.6.17.tar.gz
    cd php-5.6.17
    ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-openssl --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-mbstring --with-gd --enable-gd-native-ttf --with-mhash --enable-pcntl --enable-sockets --with-mcrypt --with-ldap --with-ldap-sasl--with-xmlrpc --enable-zip --enable-soap --with-bz2 --with-config-file-path=/etc --enable-fpm --with-config-file-scan-dir=/etc/php.d --enable-maintainer-zts
    make ZEND_EXTRA_LIBS='-liconv'
    make install

    复制PHP配置文件

    1
    cp php.ini-production /etc/php.ini

    复制php-fpm配置文件

    1
    cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

    设置php-fpm启动脚本并开机启动

    1
    2
    3
    4
    5
    cp sapi/fpm/init.d.php-fpm  /etc/rc.d/init.d/php-fpm
    chmod +x /etc/rc.d/init.d/php-fpm
    chkconfig --add php-fpm
    chkconfig php-fpm on
    service php-fpm start

    六、web功能基本实现

    nginx,php功能整合

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    vim /etc/nginx/nginx.conf
    #location ~ .php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}
    #修改为
    location ~ .php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    增加LNMP测试页面

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    vim /usr/local/nginx/html/test.php
    <?php
    $link = mysql_connect('127.0.0.1','root','you_passwd');
    if($link)
    echo "It's OK,Frank";
    else
    echo "Failed,Frank";
    mysql_close;
    phpinfo();
    ?>

    nginx重载

    1
    service nginx reload

    访问 http://ip/test.php,LNMP测试成功。

     

    httpd安装

    安装apr

    1
    2
    3
    4
    tar xf apr-1.5.2.tar.gz
    cd apr-1.5.2
    ./configure --prefix=/usr/local/apr 
    make && make install

    安装apr-util

    1
    2
    3
    4
    tar xf apr-util-1.5.4.tar.gz
    cd apr-util-1.5.4
    ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
    make && make install

    安装httpd

    1
    2
    3
    cd httpd-2.4.18
    ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
    make && make install

    编译安装部分参数说明

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    --enable-so #支持DSO动态装载模块
    --enable-ssl #要编译启用ssl模块(前提是需要安装openssl-devel)
    --enable-cgi #启用CGI模块(默认就启用)
    --enable-rewrite #URL重写(支持URL重写)
    --with-zlib #这是一个压缩库(专用于网络传输)
    --with-pcre #使用增强的perl正则表达式分析工具(使用这项需要安装pcre-devel,pcre:正则表达式分析器)
    --with-apr=/usr/local/apr #指明apr的目录(若apr在特殊路径下)
    --with-apr-util=/usr/local/apr-util/ #指明apr-util路径(若apr-util在特殊路径下
    --enable-mpms-shared=all #把所有的mpm模块都编译进来而且是共享模块
    --with-mpm=work #默认使用的mpm模块
    --enable-modules=most(all) #还有很多其他模块,其他的动态可装载模块需要

    测试httpd配置是否正常

    1
    /usr/local/apache/bin/apachectl -t

    设置httpd服务和开机启动项

    1
    2
    3
    4
    5
    6
    cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
    vim /etc/rc.d/init.d/httpd
        #chkconfig: 35 61 61
        #description:Apache
    chkconfig --add httpd
    chkconfig httpd on

    三、php编译安装

    前期准备(补充安装,--with-xsl使用)

    1
    yum install libxslt-devel

    安装php

    1
    2
    3
    4
    5
    tar xf php-5.6.17.tar.gz
    cd php-5.6.17
     ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-openssl --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem -disable-inline-optimization --enable-mbregex --enable-mbstring --with-gd --enable-gd-native-ttf --with-mhash --enable-pcntl --enable-sockets --with-mcrypt --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --with-bz2 --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-maintainer-zts --with-xmlrpc=shared --with-xsl
    make ZEND_EXTRA_LIBS='-liconv' 
    make install

    编译安装部分参数说明(很多加载项用途不明,从别处抄袭,前几位参数还是特别重要的,比如--with-apsx2,httpd和php整合用使用)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    --with-mysql=/usr/local/mysql     #MySQL安装目录,对mysql的支持
    --with-mysqli=/usr/local/mysql/bin/mysql_config  #mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。 
    --with-apxs2=/usr/local/apache/bin/apxs    #整合apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到 apache,要求 apache 要打开SO模块
    --with-iconv-dir=/usr/local   # 选项指令,用于PHP编译时指定iconv在系统里的路径,否则会扫描默认路径(与ZEND_EXTRA_LIBS='-liconv')。
    --enable-maintainer-zts #编译成zts模块,event,worker模式使用
    --with-freetype-dir   #打开对freetype字体库的支持 
    --with-jpeg-dir   #打开对jpeg图片的支持 
    --with-png-dir   #打开对png图片的支持 
    --with-zlib-dir   #打开zlib库的支持,用于http压缩传输
    --with-libxml-dir   #打开libxml2库的支持
    --disable-rpath    #关闭额外的运行库文件 
    --enable-bcmath    #打开图片大小调整,用到zabbix监控的时候用到了这个模块
    --enable-sysvsem  #这样就使得你的PHP系统可以处理相关的IPC函数了。
    --enable-inline-optimization  #优化线程
    --with-curl    #打开curl浏览工具的支持 
    --with-curlwrappers    #运用curl工具打开url流 
    --enable-mbregex
    --enable-fpm           #支持PHP-fpm,早期版本需要补丁后才有这个参数,CGI方式安装的启动程序
    --enable-mbstring   #多字节,字符串的支持 
    --with-mcrypt     #mcrypt算法扩展
    --with-mhash      #mhash算法扩展
    --with-gd          #打开gd库的支持 
    --enable-gd-native-ttf   #支持TrueType字符串函数库
    --with-openssl      #openssl的支持,加密传输https时用到的
    --enable-pcntl   #freeTDS需要用到的,可能是链接mssql才用到
    --enable-sockets     #打开sockets支持
    --with-xmlrpc    #打开xml-rpc的c语言 
    --enable-zip   #打开对zip的支持 
    --enable-ftp   #打开ftp的支持 
    --with-bz2    #打开对bz2文件的支持        
    --without-iconv  #关闭iconv函数,字符集间的转换 
    --with-ttf     #打开freetype1.*的支持,可以不加了 
    --with-xsl     #打开XSLT文件支持,扩展了libXML2库,需要libxslt软件 
    --with-gettext    #打开gnu的gettext支持,编码库用到 
    --with-pear    #打开pear命令的支持,PHP扩展用的 
    --enable-calendar  #打开日历扩展功能
    --enable-exif    #图片的元数据支持 
    --enable-magic-quotes   #魔术引用的支持 
    --disable-debug    #关闭调试模式 
    --with-mime-magic=/usr/share/file/magic.mime      #魔术头文件位置
    #CGI方式安装才用的参数 
    --enable-fastCGI            #支持fastcgi方式启动PHP
    --enable-force-CGI-redirect        #重定向方式启动PHP
    --with-ncurses         #支持ncurses屏幕绘制以及基于文本终端的图形互动功能的动态库
    --with-gmp  #应该是支持一种规范
    --enable-dbase          #建立DBA作为共享模块
    --with-pcre-dir=/usr/local/bin/pcre-config    #perl的正则库案安装位置
    --disable-dmalloc
    --with-gdbm      #dba的gdbm支持
    --enable-sigchild
    --enable-sysvshm
    --enable-zend-multibyte         #支持zend的多字节
    --enable-wddx
    --enable-soap

    提供php配置文件

    1
    cp php.ini-production /etc/php.ini

    修改httpd.conf,使其支持php,并且可以识别index.php结尾作为首页

    1
    2
    3
    AddType application/x-httpd-php  .php
    AddType application/x-httpd-php-source  .phps
    DirectoryIndex  index.php  index.html

    四、PHP扩展

    libevent编译安装(libevent是一个基于事件触发的网络库,memcached底层也是使用libevent库。)

    1
    2
    3
    4
    5
    6
    tar xf libevent-2.0.22-stable.tar.gz
    cd libevent-2.0.22-stable
    ./configure --prefix=/usr/local/libevent
    make && make install
    echo "/usr/local/libevent/lib" /etc/ld.so.conf.d/libevent.conf
    ldconfig

    memcached编译安装

    1
    2
    3
    4
    tar xf memcached-1.4.25.tar.gz
    cd memcached-1.4.25
    ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/
    make && make install

    编译memcached开机启动项(部分设置均在服务脚本中)

    1
    vim /etc/rc.d/init.d/memcached
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    #!/bin/bash
    #
    # Init file for memcached
    #
    # chkconfig: - 86 14
    # description: Distributed memory caching daemon
    #
    # processname: memcached
    # config: /etc/sysconfig/memcached
     
    /etc/rc.d/init.d/functions
     
    ## Default variables
    PORT="11211"
    USER="root"
    MAXCONN="1024"
    CACHESIZE="64"
    OPTIONS=""
     
    RETVAL=0
    prog="/usr/local/memcached/bin/memcached"
    desc="Distributed memory caching"
    lockfile="/var/lock/subsys/memcached"
     
    start() {
            echo -n $"Starting $desc (memcached): "
            daemon $prog -d -p $PORT -u $USER -c $MAXCONN -m $CACHESIZE 
            RETVAL=$?
            echo
            [ $RETVAL -eq 0 ] && touch $lockfile
            return $RETVAL
    }
     
    stop() {
            echo -n $"Shutting down $desc (memcached): "
            killproc $prog
            RETVAL=$?
            echo
            [ $RETVAL -eq 0 ] && rm -f $lockfile
            return $RETVAL
    }
     
    restart() {
            stop
            start
    }
     
    reload() {
            echo -n $"Reloading $desc ($prog): "
            killproc $prog -HUP
            RETVAL=$?
            echo
            return $RETVAL
    }
     
    case "$1" in
      start)
            start
            ;;
      stop)
            stop
            ;;
      restart)
            restart
            ;;
      condrestart)
            [ -e $lockfile ] && restart
            RETVAL=$?
            ;;       
      reload)
            reload
            ;;
      status)
            status $prog
            RETVAL=$?
            ;;
       *)
            echo $"Usage: $0 {start|stop|restart|condrestart|status}"
            RETVAL=1
    esac
     
    exit $RETVAL
    1
    2
    3
    chmod +x /etc/rc.d/init.d/memcached 
    chkconfig --add memcached
    service memcached start

    memcached部分参数说明

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    -l <ip_addr>:指定进程监听的地址;
    -d: 以服务模式运行;
    -u <username>:以指定的用户身份运行memcached进程;
    -m <num>:用于缓存数据的最大内存空间,单位为MB,默认为64MB;
    -c <num>:最大支持的并发连接数,默认为1024;
    -p <num>: 指定监听的TCP端口,默认为11211;
    -U <num>:指定监听的UDP端口,默认为11211,0表示关闭UDP端口;
    -t <threads>:用于处理入站请求的最大线程数,仅在memcached编译时开启了支持线程才有效;
    -f <num>:设定Slab Allocator定义预先分配内存空间大小固定的块时使用的增长因子;
    -M:当内存空间不够使用时返回错误信息,而不是按LRU算法利用空间;
    -n: 指定最小的slab chunk大小;单位是字节;
    -S: 启用sasl进行用户认证;

    freetds编译安装(用于php连接mssql)

    1
    2
    3
    4
    5
    6
    7
    8
    tar xf freetds-1.00.11.tar.gz
    cd freetds-1.00.11
    ./configure --prefix=/usr/local/freetds --with-tdsver=7.3 --enable-msdblib --with-gnu-ld --enable-shared --enable-static
    make && make install
    cd /usr/local/src/php-5.6.17/ext/mssql/
    /usr/local/php/bin/phpize
    ./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds/
    make && make install

    --with-tdsver=7.3说明,具体说明参照:

    http://www.freetds.org/userguide/choosingtdsprotocol.htm#TAB.PROTOCOL.BY.PRODUCT

    wKiom1eXNBrCzsr4AAB2YE_enNA904.png

    安装php支持memcache扩展模块

    1
    2
    3
    4
    5
    tar zxvf memcache-2.2.7.tgz 
    cd memcache-2.2.7
    /usr/local/php/bin/phpize 
    ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zib-dir
    make && make install

    修改php.ini,增加freetds和memcache功能

    1
    2
    3
    4
    extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20131226/"
    extension=mssql.so
    mssql.charset="GBK"
    extension=memcache.so

    重启httpd使生效

    1
    service httpd restart

    编写php测试页面

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
          $link = mysql_connect('ip address','user','passwd');
          if ($link)
            echo "MySQL Success...";
          else
            echo "MySQL Failure...";
            mysql_close();
            $conn=mssql_connect('ip address','user','passwd');
            if($conn)
                    echo"MSSQL Sucess...";
            else
                    echo"MSSQL Failure...";
          mssql_close();
          phpinfo();
    ?>

    测试可正常使用.

  • 相关阅读:
    CUDA ---- 线程配置
    IOC/DI-控制反转----AOP-面向切面编程-----SpringMvc框架
    @RequestMapping与@PostMapping等新注释的curd操作
    SSM框架整合
    webapp下jsp文件报错
    基于maven使用IDEA创建多模块项目
    CURD
    Linux终端常用命令
    pom文件-常用插件jar包
    application常用配置
  • 原文地址:https://www.cnblogs.com/neco/p/6147905.html
Copyright © 2020-2023  润新知