源码编译安装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
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环境及配置基于域名访问的多虚拟主机的更多相关文章
- 源码编译安装LNMP环境及配置基于域名访问的多虚拟主机
实验环境及软件版本: CentOS版本: 6.6(2.6.32.-504.el6.x86_64) nginx版本: nginx-1.6.2 mysql版本: Mysql-5.6.23 php版本: ...
- Centos7源码编译安装LAMP环境
参考地址:https://www.linuxidc.com/Linux/2018-03/151133.htm
- centos7源码编译安装lamp/lnmp
centos7源码编译安装lamp/lnmp 进程:是包工头(相当于是个门,只管开门关门,不管门内的事儿) 线程:是各种工种(cpu调度的是线程) 进程 是一件事情, 线程 是 同一个时间范围内 同时 ...
- 源码编译安装lnmp环境
一.源码编译安装步骤 首先说明源码安装的好处 速度快,可自定义路径 主要有三步:1.配置 进入源码安装包 ./configure --prefix=/uer/local/nginx 可指定参数 ...
- 源码编译安装 PHP5.5.0,解决curl_exec访问HTTPS返回502错误的问题(修改PATH路径)
最近碰到一个奇怪的问题, PHP使用 curl_exec 访问 HTTPS 网页时, 返回502错误, 访问HTTP网页时没有问题, 用 echo phpinfo() ; 查看, 支持op ...
- 年终福利,PHP7+Apache2.4+MySQL5.6 源码编译安装,环境配置,搭建你自己的LAMP环境
PHP7 都出来了,你还在玩PHP5吗? MySQL5.6 早都出来了,你还在玩MySql5.2吗? Apache2.4 早都出来了,你还在玩Apache2.2吗? 笔者不才,愿意亲自搭建环境,供搭建 ...
- CentOS 6.3下源码编译安装LAMP
一.简介 什么是LAMP LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代 ...
- 源码编译安装lnmp环境(nginx-1.14.2 + mysql-5.6.43 + php-5.6.30 )------踩了无数坑,重装了十几次服务器才会的,不容易啊!
和LAMP不同的是,LNMP中的N指的是Nginx(类似于Apache的一种web服务软件),并且php是作为一个独立服务存在的,这个服务叫做php-fpm,Nginx直接处理静态请求,动态请求会转发 ...
- centos6源码编译安装lnmp环境
操作系统 版本 64位 CentOS-6.6 10.0.0.20 安装环境所需依赖包 yum -y install gcc automake autoconf libtool make gcc- ...
随机推荐
- vs中两张图片的融合
这个其实就是从csdn上面下载的一个例程.感谢这位同学的总结,与源码的有偿分享. 本随笔就是把它通过4个随笔的拆分,实现的. 可以通过: http://blog.csdn.net/masibuaa/a ...
- jsp无法支持el标签及jstl标签
在jsp页面头部添加如下 <%@ page isELIgnored="false"%> <%@ taglib uri="http://java.sun. ...
- 给jdk写注释系列之jdk1.6容器(9)-Strategy设计模式之Comparable&Comparator接口
前面我们说TreeMap和TreeSet都是有顺序的集合,而顺序的维持是要靠一个比较器Comparator或者map的key实现Comparable接口. 既然说到排序,首先我们不用去关心什 ...
- 双向BFS
转自“Yuan” 如果目标也已知的话,用双向BFS能很大提高速度 单向时,是 b^len的扩展. 双向的话,2*b^(len/2) 快了很多,特别是分支因子b较大时 至于实现上,网上有些做法是用两个 ...
- Groovy选型
Groovy是一门基于JVM的动态语言,同时也是一门面向对象的语言,语法上和Java非常相似.它结合了Python.Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代 ...
- 转: OpenResty最佳实践
https://moonbingbing.gitbooks.io/openresty-best-practices/content/ centOS安装另加内容 ln -sf luajit-2.1.0- ...
- 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 ...
- jQuery性能优化(转)
摘要:jQuery是我们经常使用的强大的JS类库,因此它的性能优化十分重要,下面就重几点来说明 原文作者:szyuxueliang 原文地址:http://www.cnblogs.com/yxl ...
- Android OOM 解决方案
Out of Memory(内存溢出) 几乎是每个Android程序员都会遇到的事.在网上也能找到一大堆的解决方案,之前写过一篇<Android 内存溢出管理与测试>的博文.但感觉写得不是 ...
- JavaScript代码检查工具 — JSHint
静态代码检查是开发工作中不可缺少的一环,毕竟对于程序化的工作人的眼睛是不可靠的,更何况是自己的眼睛看自己的代码.即使最后的运行结果通过,但可能存在一些未定义的变量.定义了但最后没用过的变量.分号有没有 ...