狂欢‰一夜 发表于 2018-11-22 11:53:12

apache/mysql/php编译安装及支持xcache和fastcgi方式运行

  一、编译安装apache
      1、安装环境:yum install gcc gcc-c++ openssl-devel libtool -y
      2、安装apr、apr-util及pcre
        tar jxf apr-1.5.1.tar.bz2
        cd apr-1.5.1
        ./configure --prefix=/usr/local/apr
        make && make install
     
        tar jxf apr-util-1.5.3.tar.bz2
        cd apr-util-1.5.3
        ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
  
        tar jxf pcre-0.8.33.tar.bz2
        cd pcre-0.8.33
        ./configure --prefix=/usr/local/pcre
      3、解压编译安装httpd
        tar jxf httpd-2.4.9.tar.bz2
        cd httpd-2.4.9
        ./configure --prefix=/usr/local/apache \
        --enable-so \
        --enable-rewrite \
        --enable-ssl \
        --enable-mpms-shared=all \
        --sysconfdir=/etc/httpd \
        --enable-proxy \
        --enable-cgi \
        --enable-cgid \
        --enable-zlib \
        --with-apr=/usr/local/apr \
        --with-apr-util=/usr/local/apr-util \
        --with-pcre=/usr/local/pcre
        make && make install
        编译完成之后测试启动apache/usr/local/apache/bin/apachectl start
        检查httpd是否启动netstat -tnpl |grep httpd
      注:如httpd进程未启动,则检查/usr/local/apache/logs/error_log
   AH01177: Failed to lookup provider 'shm' for 'slotmem': is mod_slotmem_shm loaded??
[:emerg] AH00020: Configuration Failed, exiting
        可以看出是proxy_balancer这个模块的问题,编辑配置文件注释proxy_balancer.so这个模块,重新启动
  
        添加apache到系统变量 echo 'export PATH=$PATH:/usr/local/apache/bin' >>/etc/profile.d/httpd.sh
  
  配置虚拟主机:
  
  配置中心主机注释中心主机并开启虚拟主机
  注释:DocumentRoot "/usr/local/apache/htdocs"
  开启:Include /etc/httpd/extra/httpd-vhosts.conf
  配置虚拟主机:vim /etc/httpd/extra/httpd-vhosts.conf
  
      servername www.example.com
      documentroot "/www/example.com"
      errorlog "/var/log/httpd/error_log"
      customlog "/var/log/httpd/access_log" combined
     
      options none
      allowoverride none
      require all granted
     
  #限制目录访问功能:
  #   
  #    options none
  #    allowoverride authconfig
  #    authtype basic
  #    authname "example.com"
  #    authuserfile "/etc/httpd/.htpassword"
  #    require vaild-user   
  
  启用apache的ssl功能:
      启用LoadModule ssl_so
      启用Include /etc/httpd/extra/httpd-ssl.conf      
  二、源码安装mysql
      groupadd -r -g 306 mysql
      useradd -r -g mysql -s /sbin/nolog mysql
      tar zxf mysql-5.6.19-linux-glibc2.5.x86_64.tar.gz -C /usr/local
      cd /usr/local
      ln -s mysql-5.6.19-linux-glibc2.5.x86_64 mysql
      cd mysql
      chown -R mysql.mysql .
      mkdir /mydata
      chown -R mysql.mysql /mydata
      ./usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mydata
      vim my.cnf
        
        user=mysql
        socket=/tmp/mysql.sock
        datedir=/mydata
        
        socket=/tmp/mysql.sock
        
      cp support-files/mysql.server /etc/init.d/mysqld
      chkconfig --add mysqld
      chkconfig mysqld on
      echo 'export PATH=$PATH:/usr/local/mysql/bin'>>/etc/profile.d/mysqld.sh
      chown -R root .
      echo '/usr/local/mysql/lib'>>/etc/ld.so.conf.d/mysqld.conf
      ldconfig
      ldconfig -v |grep mysql
        service mysqld start————>mysql客户端连接查看
  

  三、编译安装PHP
      tar jxf php-5.5.13.tar.bz2
      cd php-5.5.13
      ./configure --prefix=/usr/local/php \
      --with-apxs2=/usr/local/apache/bin/apxs \
      --with-mysql=/usr/local/mysql \
      --enable-fpm \
      --with-config-file-path=/etc/php \
      --sysconfdir=/etc/php \
      --with-config-file-scan-dir=/etc/php/php.d \
      --with-zlib \
      --with-bz2 \
      --enable-mbstring \
      --with-mysqli=/usr/local/mysql/bin/mysql_config \
      --enable-zip \
      --with-jpeg-dir \
      --with-png-dir \
      --with-openssl
      make && make install

      为php提供配置文件: cp php.ini-production /etc/php/php.ini

      输出php脚本到系统环境变量:

        echo 'export PATH=$PATH:/usr/local/php/bin'>>/etc/profile.d/php.sh

      编辑httpd配置文件加载php模块

      LoadModule php5_module    modules/libphp5.so

      DirectoryIndexindex.php index.html

      AddType application/x-httpd-php .php

      AddType application/x-httpd-php-source .phps

      重启httpd 新建index.php页面,测试访问

      建立mysql_connect()函数测试php与mysql连接

        

      安装xcache:
        tar zxf xcache-3.1.0.tar.gz
        cd xcache-3.1.0
        yum install autoconf -y

        /usr/local/php/bin/phpize
        ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
        make && make install
        cp xcache.ini /etc/php/php.d
        修改vim /etc/php/php.d/xcache.ini 指定正确的PHP扩展路径即编译xcache时make install最后输出的路径
        重启httpd 使用phpinfo查看xcache是否加载成功    
  四、配置php与apache以fastcgi的方式工作
      cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
      chmod +x /etc/init.d/php-fpm
      chkconfig --add php-fpm
      cp /etc/php/php-fpm.conf.default /etc/php/fpm.conf
      配置FPM的相关选项,并启用PID文件:
      vim /etc/php/php-fpm.conf
        pm.max_children = 100 --->最大连接数
        pm.start_servers = 8 --->服务启动进程数
        pm.min_spare_servers = 5 --->最小空闲进程数
        pm.max_spare_servers = 20 --->最大空闲进程数
        pid = /usr/local/php/var/run/php-fpm.pid
      接下来启动php-fpmservice php-fpm start
     
      httpd上需要做的修改:vim /etc/httpd/httpd.conf
      启用模块:
        LoadModule proxy_module modules/mod_proxy.so
        LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
        注释模块:
        LoadModule php5_modulemodules/libphp5.so
      在相应的虚拟机中添加类似如下两行:
        proxyrequests Off
        proxypassmatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1
  
  例:
     
        documentroot "/www/example.com"
        servername www.example.com
        proxyrequests Off
        proxypassmatch ^/(*.\.php)$ fcgi://127.0.0.1:9000/www/example.com/$1
        
        options none
        allowoverride none
        require all granted
        
                             



页: [1]
查看完整版本: apache/mysql/php编译安装及支持xcache和fastcgi方式运行