实验环境及软件版本:

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. 小白日记5:kali渗透测试之被动信息收集(四)--theHarvester,metagoofil,meltag,个人专属密码字典--CUPP

    1.theHarvester theHarvester是一个社会工程学工具,它通过搜索引擎.PGP服务器以及SHODAN数据库收集用户的email,子域名,主机,雇员名,开放端口和banner信息. ...

  2. 数据库SQLite应用

    1.导入SQLite库和头文件 #import <sqlite3.h> 2.打开数据库,如果在打开的时候遇到了问题,则关闭它并抛出一个断言错误. sqlite3 * database; i ...

  3. B. Mr. Kitayuta's Colorful Graph

     B. Mr. Kitayuta's Colorful Graph  time limit per test 1 second Mr. Kitayuta has just bought an undi ...

  4. cocos2d-x中使用Http

    一.如何使用 //发送接口 void CmdHelper::postRequest(const char* cmdTag, const char* url, const char* postData, ...

  5. 杂乱无章之javascript(一)

    1.in 要求第一个(左边的)操作数必须是字符串类型或是可以转化成字符串类型的其他类型,而第二(右边的)操作数必须是数组或对象.只有第一个操作数的值是第二个操作数的属性名,才会返回true,否则返回f ...

  6. Android(java)学习笔记93:Android布局详解之一:FrameLayout

    FrameLayout是最简单的布局了.所有放在布局里的控件,都按照层次堆叠在屏幕的左上角.后加进来的控件覆盖前面的控件. 在FrameLayout布局里,定义任何空间的位置相关的属性都毫无意义.控件 ...

  7. vs2010 调试C++程序 快捷键

    命令名 快捷键 说明 调试.应用代码更改 Alt + F10 启动生成操作,利用它可以通过“编辑并继续”功能应用对正在调试的代码所作的更改. 调试.自动窗口 Ctrl + D,Ctrl + A 显示“ ...

  8. [Oracle EBS APIs]import Flow routing and DJ routing using BOM_RTG_PUB.PROCESS_RTG APIs

    DJ routing --BOM模块的工艺路线 Flow routing -- Flow Manufacturing 模块使用的工艺路线,导入 Flow routing时先导入Line Operati ...

  9. LoadRunner 如何进行接口的压力测试

    主要压测的时候需要开发提供相关接口文档,或者自己录制.左侧的Name都是开发提供的接口参数名称,Value是相应的参数值.Action为开发给的测试地址.PS:注意在测试的时候设置Controller ...

  10. Nginx - HTTP Configuration, Module Variables

    The HTTP Core module introduces a large set of variables that you can use within the value of direct ...