实验环境及软件版本:

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安装

  1. 安装依赖: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 加入开机启动

查看是否启动功能:

[root@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.51cto.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

[root@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.

[root@localhost php-5.5.6]# find / -name mysql.h

/usr/include/mysql/mysql.h

查找到mysql.h文件,我们更改参数为--with-mysql=/usr,如果没有的话,请安装mysql-devel包,

[root@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!

[root@LAMP php-5.3.27]# yum -y install libxslt*

修改编辑参数如下,上面的参数不行,是因为这个和前面的apache,mysql编译时的参数有关系:

[root@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检查系统配置环境成功

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 && make install

[root@LAMP php-5.3.27]# ls php

php5.spec            php.ini-development

php5.spec.in         php.ini-production

php.gif

[root@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

[root@LAMP php-5.3.27]# cp php

php5.spec            php.ini-development

php5.spec.in         php.ini-production

php.gif

[root@LAMP php-5.3.27]# cp php.ini-production /application/php/lib/php.ini

[root@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

在文件最后面加入几个基于域名访问的虚拟机实例如下:

<VirtualHost *:80>

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

</VirtualHost>

<VirtualHost *:80>

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

</VirtualHost>

<VirtualHost *:80>

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

</VirtualHost>

保存退出,重启apache服务!

九、启用虚拟机后,上传完php网站程序,更改完虚拟机根目录及文件所属用户和用户组为:wapp:root(chown -R wapp:root /data)后访问出现403错误,解决方法如下:

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

<Directory "/虚拟主机网站根目录">

Options FollowSymLinks

AllowOverride None

Order deny,allow

</Directory>

//先拒绝后允许Deny from all

//拒绝所有的访问</Directory>

给虚拟主机网站根目录授权访问权限

cd /application/apache/conf/extra

vi httpd-vhosts.conf

在定义的所有虚拟主机最前面加入以下代码:

<Directory "/data">

Options FollowSymLinks

AllowOverride None

Order deny,allow

</Directory>

保存退出,重新启动apache服务正常访问!

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

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

    实验环境及软件版本: CentOS版本: 6.6(2.6.32.-504.el6.x86_64) nginx版本: nginx-1.6.2 mysql版本:  Mysql-5.6.23 php版本: ...

  2. Centos7源码编译安装LAMP环境

    参考地址:https://www.linuxidc.com/Linux/2018-03/151133.htm

  3. centos7源码编译安装lamp/lnmp

    centos7源码编译安装lamp/lnmp 进程:是包工头(相当于是个门,只管开门关门,不管门内的事儿) 线程:是各种工种(cpu调度的是线程) 进程 是一件事情, 线程 是 同一个时间范围内 同时 ...

  4. 源码编译安装lnmp环境

    一.源码编译安装步骤 首先说明源码安装的好处   速度快,可自定义路径 主要有三步:1.配置 进入源码安装包  ./configure --prefix=/uer/local/nginx  可指定参数 ...

  5. 源码编译安装 PHP5.5.0,解决curl_exec访问HTTPS返回502错误的问题(修改PATH路径)

    最近碰到一个奇怪的问题, PHP使用 curl_exec 访问 HTTPS 网页时, 返回502错误, 访问HTTP网页时没有问题,  用   echo   phpinfo() ;  查看, 支持op ...

  6. 年终福利,PHP7+Apache2.4+MySQL5.6 源码编译安装,环境配置,搭建你自己的LAMP环境

    PHP7 都出来了,你还在玩PHP5吗? MySQL5.6 早都出来了,你还在玩MySql5.2吗? Apache2.4 早都出来了,你还在玩Apache2.2吗? 笔者不才,愿意亲自搭建环境,供搭建 ...

  7. CentOS 6.3下源码编译安装LAMP

    一.简介 什么是LAMP    LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代 ...

  8. 源码编译安装lnmp环境(nginx-1.14.2 + mysql-5.6.43 + php-5.6.30 )------踩了无数坑,重装了十几次服务器才会的,不容易啊!

    和LAMP不同的是,LNMP中的N指的是Nginx(类似于Apache的一种web服务软件),并且php是作为一个独立服务存在的,这个服务叫做php-fpm,Nginx直接处理静态请求,动态请求会转发 ...

  9. centos6源码编译安装lnmp环境

    操作系统 版本 64位 CentOS-6.6    10.0.0.20 安装环境所需依赖包 yum -y install gcc automake autoconf libtool make gcc- ...

随机推荐

  1. vs中两张图片的融合

    这个其实就是从csdn上面下载的一个例程.感谢这位同学的总结,与源码的有偿分享. 本随笔就是把它通过4个随笔的拆分,实现的. 可以通过: http://blog.csdn.net/masibuaa/a ...

  2. jsp无法支持el标签及jstl标签

    在jsp页面头部添加如下 <%@ page isELIgnored="false"%> <%@ taglib uri="http://java.sun. ...

  3. 给jdk写注释系列之jdk1.6容器(9)-Strategy设计模式之Comparable&Comparator接口

    前面我们说TreeMap和TreeSet都是有顺序的集合,而顺序的维持是要靠一个比较器Comparator或者map的key实现Comparable接口.      既然说到排序,首先我们不用去关心什 ...

  4. 双向BFS

    转自“Yuan” 如果目标也已知的话,用双向BFS能很大提高速度 单向时,是 b^len的扩展. 双向的话,2*b^(len/2)  快了很多,特别是分支因子b较大时 至于实现上,网上有些做法是用两个 ...

  5. Groovy选型

    Groovy是一门基于JVM的动态语言,同时也是一门面向对象的语言,语法上和Java非常相似.它结合了Python.Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代 ...

  6. 转: OpenResty最佳实践

    https://moonbingbing.gitbooks.io/openresty-best-practices/content/ centOS安装另加内容 ln -sf luajit-2.1.0- ...

  7. Git CMD - init: Create an empty Git repository or reinitialize an existing one

    命令格式 git init [-q | --quiet] [--bare] [--template=<template_directory>] [--separate-git-dir &l ...

  8. jQuery性能优化(转)

    摘要:jQuery是我们经常使用的强大的JS类库,因此它的性能优化十分重要,下面就重几点来说明 原文作者:szyuxueliang    原文地址:http://www.cnblogs.com/yxl ...

  9. Android OOM 解决方案

    Out of Memory(内存溢出) 几乎是每个Android程序员都会遇到的事.在网上也能找到一大堆的解决方案,之前写过一篇<Android 内存溢出管理与测试>的博文.但感觉写得不是 ...

  10. JavaScript代码检查工具 — JSHint

    静态代码检查是开发工作中不可缺少的一环,毕竟对于程序化的工作人的眼睛是不可靠的,更何况是自己的眼睛看自己的代码.即使最后的运行结果通过,但可能存在一些未定义的变量.定义了但最后没用过的变量.分号有没有 ...