设为首页 收藏本站
查看: 1084|回复: 0

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

[复制链接]

尚未签到

发表于 2015-12-23 15:54:30 | 显示全部楼层 |阅读模式
  实验环境及软件版本:
  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
  cd  apache2.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 加入开机启动
  查看是否启动功能:
  [iyunv@LAMP tools]# lsof -i:80
  COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
  httpd    1344 root    4u  IPv6  10747      0t0  TCP *:http (LISTEN)
  httpd   62462 wapp    4u  IPv6  10747      0t0  TCP *:http (LISTEN)
  httpd   62463 wapp    4u  IPv6  10747      0t0  TCP *:http (LISTEN)
  httpd   62464 wapp    4u  IPv6  10747      0t0  TCP *:http (LISTEN)
  httpd   62546 wapp    4u  IPv6  10747      0t0  TCP *:http (LISTEN)
  四、源码安装Mysql-5.6.23
  请移步:http://linuxzkq.blog.iyunv.com/9379412/1584642,这里不在描述
  五、php安装
  1.安装依赖:yum install zlib libxml libjpeg freetype libpng gd  curl libiconv  zlib-                   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
  [iyunv@LAMP 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.
  [iyunv@localhost php-5.5.6]# find / -name mysql.h
  /usr/include/mysql/mysql.h
  查找到mysql.h文件,我们更改参数为--with-mysql=/usr,如果没有的话,请安装mysql-devel包,
  [iyunv@localhost php-5.5.6]# 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!
  [iyunv@LAMP php-5.3.27]# yum -y install libxslt*
  修改编辑参数如下,上面的参数不行,是因为这个和前面的apache,mysql编译时的参数有关系:
  [iyunv@LAMP php-5.3.27]# ./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

  [iyunv@LAMP php-5.3.27]# ls php
  php5.spec            php.ini-development
  php5.spec.in         php.ini-production
  php.gif              
  [iyunv@LAMP php-5.3.27]# 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
  [iyunv@LAMP php-5.3.27]# cp php
  php5.spec            php.ini-development
  php5.spec.in         php.ini-production
  php.gif              
  [iyunv@LAMP php-5.3.27]# cp php.ini-production /application/php/lib/php.ini
  [iyunv@LAMP php-5.3.27]#
  小结:正式配置文件一般关闭显示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
  修改为:
  DirectoryIndex  index.php  index.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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-155381-1-1.html 上篇帖子: LAMP的思考:性能优化总结 下篇帖子: LAMP环境迁移至LNMP环境
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表