hb_sz 发表于 2015-12-23 15:54:30

源码编译安装LAMP环境及配置基于域名访问的多虚拟主机

  实验环境及软件版本:
  CentOS版本: 6.6(2.6.32.-504.el6.x86_64)
  apache版本: apache2.2.27
  mysql版本:Mysql-5.6.23
  php版本:    php-5.3.27
  一、关闭防火墙:service iptables stop
  chkconfig iptables off
  二、关闭selinux: sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config
  init 6 重启系统一定要!
  三、apache安装

[*]  安装依赖:yum -y install zlib zlib-devel
  tar zxvf apr-1.5.1.tar.gz
  cd apr-1.5.1
  ./config --prefix=/usr/local/apr
  make && make install
  tar zxvf apr-util-1.5.4.tar.gz
  cd apr-util-1.5.4
  ./config --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
  make && make install
  2.安装apache: tar zxvf apache2.2.27.tar.gz
  cdapache2.2.27
  mkdir /application      
  ./configure --prefix=/application/apache2.2.27 --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-so --with-mpm=worker --enable-rewrite --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
  make && make install
  ln -s /application/apache2.2.27/ /application/apache/
  启动:/application/apache/bin/apachectl start
  echo "/application/apache/bin/apachectl start" >>/etc/rc.local 加入开机启动
  查看是否启动功能:
  # lsof -i:80
  COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
  httpd    1344 root    4uIPv610747      0t0TCP *:http (LISTEN)
  httpd   62462 wapp    4uIPv610747      0t0TCP *:http (LISTEN)
  httpd   62463 wapp    4uIPv610747      0t0TCP *:http (LISTEN)
  httpd   62464 wapp    4uIPv610747      0t0TCP *:http (LISTEN)
  httpd   62546 wapp    4uIPv610747      0t0TCP *:http (LISTEN)
  四、源码安装Mysql-5.6.23
  请移步:http://linuxzkq.blog.iyunv.com/9379412/1584642,这里不在描述
  五、php安装
  1.安装依赖:yum install zlib libxml libjpeg freetype libpng gdcurl libiconvzlib-                   devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel                     curl-devel -y
  tar zxvf libiconv-1.14.tar.gz
  cd libiconv-1.14
  # ./configure --prefix=/usr/local/libiconv
  make && make install
  2.php安装: tar zxvf php-5.3.27.tar.gz
  ./configure --prefix=/application/php-5.3.27 --with-apxs2=/application/apache/bin/apxs --with-mysql=/usr/local/mysql --with-xmlrpc --with-openssl --with-zlib --with-freetype-dir --with-gd --with-jpeg-dir --with-png-dir --with-iconv=/usr/local/libiconv --enable-short-tags --enable-sockets --with-zend-multibyte --enable-soap --enable-mbstring --enable-static --enable-gd-native-ttf --with-curl --with-xsl --enable-ftp --with-libxml-dir --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
  
  出错:configure: error: Cannot find MySQL header files under /usr/local/mysql.
  # find / -name mysql.h
  /usr/include/mysql/mysql.h
  查找到mysql.h文件,我们更改参数为--with-mysql=/usr,如果没有的话,请安装mysql-devel包,
  # yum install mysql-devel
  再次编译:
  ./configure --prefix=/application/php-5.3.27 ……后面省略
  
  configure: error: Cannot find libmysqlclient_r under /usr.
  Note that the MySQL client library is not bundled anymore!
  # yum -y install libxslt*
  修改编辑参数如下,上面的参数不行,是因为这个和前面的apache,mysql编译时的参数有关系:
  # ./configure --prefix=/application/php-5.3.27 --with-apxs2=/application/apache/bin/apxs --with-mysql=/usr --with-xmlrpc --with-openssl --with-zlib --with-freetype-dir --with-gd --with-jpeg-dir --with-png-dir --with-iconv --enable-short-tags --enable-sockets --with-zend-multibyte --enable-soap --enable-mbstring --enable-static --enable-gd-native-ttf --with-curl --with-xsl --enable-ftp --with-libxml-dir --with-libdir=lib64
  
  +--------------------------------------------------------------------+
  

  Thank you for using PHP.
  

  Notice: Following unknown configure options were used:
  

  --with-zend-multibyte
  

  Check './configure --help' for available options


  php检查系统配置环境成功,开始编译:make


  3.一并附上CentOS x64 里php 源码编译出错参见情况及解决办法(摘自网络):
  

  configure: error: xml2-config not found. Please check your libxml2 installation.
  

  yum install libxml2-devel.x86_64
  configure: error: Cannot find OpenSSL’s
  

  yum install openssl-devel.x86_64
  configure: error: Could not find pcre.h in /usr/local
  

  yum install pcre-devel.x86_64
  configure: error: Could not find pcre.h in /usr/local
  

  "--with-pcre-regex=/usr/include" \
  configure: error: Could not find libpcre.(a|so) in /usr/include
  

  "--with-pcre-regex=/usr" \
  configure: error: Please reinstall the libcurl distribution -
  easy.h should be in /include/curl/
  

  yum install curl-devel.x86_64
  configure: error: libjpeg.(a|so) not found.
  

  yum install libjpeg-devel.x86_64
  configure: error: libpng.(a|so) not found.
  

  yum install libpng-devel.x86_64
  configure: error: freetype.h not found.
  

  yum install freetype-devel.x86_64
  configure: error: Please reinstall the iconv library.
  

  "--with-iconv" \
  configure: error: mcrypt.h not found. Please reinstall libmcrypt.
  

  yum install libmcrypt.x86_64 libmcrypt-devel.x86_64
  configure: error: Please reinstall libmhash – I cannot find mhash.h
  

  yum install mhash.x86_64 mhash-devel.x86_64
  Note that the MySQL client library is not bundled anymore!
  

  yum install php-mysql.x86_64 mysql-devel.x86_64
  configure: error: Please reinstall the BZip2 distribution
  

  yum install bzip2-devel.x86_64
  configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.
  DISABLE IMAP
  configure: error: Cannot find pspell
  

  yum install aspell-devel.x86_64
  configure: error: Cannot find libtidy
  

  yum install libtidy.x86_64 libtidy-devel.x86_64
  error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
  

  yum install libxslt.x86_64 libxslt-devel.x86_64
  collect2: ld returned 1 exit status
  

  yum install glibc-utils.x86_64 libtool-ltdl-devel.x86_64
  Step by step to guide PHP Compile
  Step 1: Update & Install Development Tools & Libraries
  

  yum update
  yum group install "Development Tools"
  yum group install "Development Libraries"
  Step 2: Run the bellow bash script
  

  #!/bin/sh
  "./configure" \
  "--prefix=/usr/local/php5" \
  "--enable-force-cgi-redirect" \
  "--enable-fastcgi" \
  "--with-bz2" \
  "--with-config-file-path=/usr/local/etc" \
  "--with-config-file-scan-dir=/usr/local/etc/php.d" \
  "--with-curl=/usr/local/lib" \
  "--with-gd" \
  "--with-gettext" \
  "--with-jpeg-dir=/usr/local/lib" \
  "--with-freetype-dir=/usr/local/lib" \
  "--with-kerberos" \
  "--with-mcrypt" \
  "--with-mhash" \
  "--with-mime-magic" \
  "--with-mysql" \
  "--with-mysqli" \
  "--with-pcre-regex=/usr" \
  "--with-pdo-mysql=shared" \
  "--with-pdo-sqlite=shared" \
  "--with-pear=/usr/local/lib/php" \
  "--with-png-dir=/usr/local/lib" \
  "--with-pspell" \
  "--with-sqlite=shared" \
  "--with-tidy" \
  "--with-ttf" \
  "--with-xmlrpc" \
  "--with-xsl" \
  "--with-zlib" \
  "--with-zlib-dir=/usr/local/lib" \
  "--with-openssl" \
  "--with-iconv" \
  "--with-libdir=lib64" \
  "--enable-bcmath" \
  "--enable-calendar" \
  "--enable-exif" \
  "--enable-ftp" \
  "--enable-gd-native-ttf" \
  "--enable-libxml" \
  "--enable-magic-quotes" \
  "--enable-soap" \
  "--enable-sockets" \
  "--enable-mbstring" \
  "--enable-zip" \
  "--enable-wddx"
  fromhttp://www.lifelinux.com/error-compiling-php-on-centos-x64/
  
开始安装:make install

  # ls php
  php5.spec            php.ini-development
  php5.spec.in         php.ini-production
  php.gif            
  # diff php.ini-production php.ini-development对比对内开发配置文件和对外应用配置文件
  521c521
  < error_reporting = E_ALL & ~E_DEPRECATED
  ---
  > error_reporting = E_ALL | E_STRICT
  538c538
  < display_errors = Off
  ---
  > display_errors = On
  549c549
  < display_startup_errors = Off
  ---
  > display_startup_errors = On
  593c593
  < track_errors = Off
  ---
  > track_errors = On
  611c611
  < html_errors = Off
  ---
  > html_errors = On
  751c751
  < ; scheduled removed in PHP 5.4.
  ---
  > ; removed in PHP 5.4.
  845c845
  < ;cgi.redirect_status_env =
  ---
  > ;cgi.redirect_status_env =
  1318c1318
  < mysqlnd.collect_memory_statistics = Off
  ---
  > mysqlnd.collect_memory_statistics = On
  1587c1587
  < session.bug_compat_42 = Off
  ---
  > session.bug_compat_42 = On
  1596c1596
  < session.bug_compat_warn = Off
  ---
  > session.bug_compat_warn = On
  # cp php
  php5.spec            php.ini-development
  php5.spec.in         php.ini-production
  php.gif            
  # cp php.ini-production /application/php/lib/php.ini
  #
  小结:正式配置文件一般关闭显示LOG,不输出LOG。
  

  六、开启虚拟机功能并修改用户及用户组:useradd -M -s /sbin/nologin wapp
  cd /application/apache/conf
  vi httpd.conf
  找到
  User daemon 修改为wapp
  Group daemon 修改为wapp
  
  找到 # Include conf/extra/httpd-vhosts.conf开启虚拟机
  取消前面的#号注释,保存退出。
  七、整合php和apache:vi httpd.conf
  
  定位至AddType application/x-gzip .gz .tgz添加如下二行:
  AddType application/x-httpd-php.php.phtml
  AddType application/x-httpd-php-source.phps
  定位至DirectoryIndex index.html
  修改为:
  DirectoryIndexindex.phpindex.html
  然后重新启动apache,或让其重新载入配置文件即可测试php是否已经可以正常使用。
  八、定义虚拟机:cd /application/apache/conf/extra
  vi httpd-vhosts.conf
  在文件最后面加入几个基于域名访问的虚拟机实例如下:
  
  
  ServerAdmin kk@etiantian.com
  DocumentRoot "/data/cms"
  ServerName www.etiantian.org
  ServerAlias etiantian.org
  ErrorLog "logs/www.etiantian.org-error_log"
  CustomLog "logs/www.etiantian.org-access_log" common
  
  
  ServerAdmin kk@etiantian.com
  DocumentRoot "/data/bbs"
  ServerName bbs.etiantian.org
  ErrorLog "logs/bbs.etiantian.org-error_log"
  CustomLog "logs/bbs.etiantian.org-access_log" common
  
  
  ServerAdmin kk@etiantian.com
  DocumentRoot "/data/blog"
  ServerName blog.etiantian.org
  ErrorLog "logs/blog.etiantian.org-error_log"
  CustomLog "logs/blog.etiantian.org-access_log" common
  
  保存退出,重启apache服务!
  九、启用虚拟机后,上传完php网站程序,更改完虚拟机根目录及文件所属用户和用户组为:wapp:root(chown -R wapp:root /data)后访问出现403错误,解决方法如下:
  

  这是apache2.2中文参考手册中的示例。一般的咱们这样配置在以前版本是没有问题的。但是现在就不一样了。当访问某个虚拟主机下的页面的时候会出现 类似:“403(禁止访问),你无法查看该网页…”的错误。很明显这是拒绝访问的提示。按照经验很容易找到(httpd.conf)下面的内容:
  
  Options FollowSymLinks
  AllowOverride None
  Order deny,allow
  
  //先拒绝后允许Deny from all
  //拒绝所有的访问
  

  给虚拟主机网站根目录授权访问权限
  cd /application/apache/conf/extra
  vi httpd-vhosts.conf
  在定义的所有虚拟主机最前面加入以下代码:
  
  
  Options FollowSymLinks
  AllowOverride None
  Order deny,allow
  
  保存退出,重新启动apache服务正常访问!
页: [1]
查看完整版本: 源码编译安装LAMP环境及配置基于域名访问的多虚拟主机