文档章节

源码编译安装Linux+apache+mysql+php+xcache

雁南飞丶
 雁南飞丶
发布于 2014/08/13 13:30
字数 1689
阅读 147
收藏 0
点赞 0
评论 0

安装环境组包不然后面编译会出现少这个那个包

注意自己的Yum源 用163 或者aliyun或者本地都可以

yum groupinstall "Compatibility libraries" "Desktop Platform" "Desktop Platform Development" "Development tools"

解压apr和apr-utils这是httpd依赖的程序包 注意高版本的httpd必须依赖1.5版本以上的apr和apr-utils

[root@kcw1 ~]# tar xf apr-1.5.1
[root@kcw1 ~]# cd apr-1.5.1
[root@kcw1 apr-1.5.1]# ./configure --prefix=/usr/local/apr
[root@kcw1 apr-1.5.1]# make && make install
[root@kcw1 ~]# tar xf apr-util-1.5.3.tar.gz 
[root@kcw1 ~]# cd apr-util-1.5.3
[root@kcw1 apr-util-1.5.3]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@kcw1 apr-util-1.5.3]# make && make install
[root@kcw1 ~]# tar xf httpd-2.4.9.tar.bz2 
[root@kcw1 ~]# cd httpd-2.4.9
[root@kcw1 httpd-2.4.9]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl \
> --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr \
> --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event 
报错:configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
[root@kcw1 httpd-2.4.9]# yum install pcre-devel
在执行又报错:checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures
[root@kcw1 httpd-2.4.9]# yum install openssl-devel
OK
[root@kcw1 httpd-2.4.9]# make && make install

编辑/etc/httpd/httpd.conf添加

PidFile "/var/run/httpd.pid"

提供服务启动脚本

vim /etc/init.d/httpd

#!/bin/bash
#
# httpd        Startup script for the Apache HTTP Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server.  It is used to serve \
#	       HTML files and CGI.
# processname: httpd
# config: /etc/httpd/conf/httpd.conf
# config: /etc/sysconfig/httpd
# pidfile: /var/run/httpd.pid

# Source function library.
. /etc/rc.d/init.d/functions

if [ -f /etc/sysconfig/httpd ]; then
        . /etc/sysconfig/httpd
fi

# Start httpd in the C locale by default.
HTTPD_LANG=${HTTPD_LANG-"C"}

# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""

# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
# with the thread-based "worker" MPM; BE WARNED that some modules may not
# work correctly with a thread-based MPM; notably PHP will refuse to start.

# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0

start() {
        echo -n $"Starting $prog: "
        LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch ${lockfile}
        return $RETVAL
}

stop() {
	echo -n $"Stopping $prog: "
	killproc -p ${pidfile} -d 10 $httpd
	RETVAL=$?
	echo
	[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}
reload() {
    echo -n $"Reloading $prog: "
    if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
        RETVAL=$?
        echo $"not reloading due to configuration syntax error"
        failure $"not reloading $httpd due to configuration syntax error"
    else
        killproc -p ${pidfile} $httpd -HUP
        RETVAL=$?
    fi
    echo
}

# See how we were called.
case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  status)
        status -p ${pidfile} $httpd
	RETVAL=$?
	;;
  restart)
	stop
	start
	;;
  condrestart)
	if [ -f ${pidfile} ] ; then
		stop
		start
	fi
	;;
  reload)
        reload
	;;
  graceful|help|configtest|fullstatus)
	$apachectl $@
	RETVAL=$?
	;;
  *)
	echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
	exit 1
esac

exit $RETVAL

chmod +x /etc/init.d/httpd

chkconfig --add httpd

chkcofig httpd on

启动测试/etc/init.d/httpd start

注意关掉防火墙!

http://IP  

看到

It works!

表示OK了

2、安装mysql

[root@kcw1 ~]# tar xf mysql-5.5.37-linux2.6-x86_64.tar.gz  -C /usr/local/
[root@kcw1 ~]# cd /usr/local/
[root@kcw1 local]# ln -sv mysql-5.5.37-linux2.6-x86_64 mysql
`mysql' -> `mysql-5.5.37-linux2.6-x86_64'

[root@kcw1 local]# mkdir /mydata/data -pv

[root@kcw1 local]#groupadd  mysql

[root@kcw1 local]# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql

[root@kcw1 local]# chown mysql.mysql /mydata/data/
初始化mysql
[root@kcw1 local]#cd mysql
root@kcw1 mysql]# chown -R mysql.mysql ./
[root@kcw1 mysql]# scripts/mysql_install_db --user=mysql --datadir=/mydata/data/
报错./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
[root@kcw1 mysql]# yum install libaio
Installing MySQL system tables...
OK
Filling help tables...
OK
初始化成功!
复制mysql配置文件
[root@kcw1 mysql]# cp support-files/my-large.cnf /etc/my.cnf 
cp: overwrite `/etc/my.cnf'? y
并修改此文件中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行:
thread_concurrency = 2
另外还需要添加如下行指定mysql数据文件的存放位置:
datadir = /mydata/data
5、为mysql提供sysv服务脚本:

# cd /usr/local/mysql
# cp support-files/mysql.server  /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld
[root@kcw1 mysql]# chkconfig --add mysqld
[root@kcw1 mysql]# chkconfig mysql on
[root@kcw1 mysql]# chkconfig mysqld on
[root@kcw1 mysql]# /etc/init.d/mysqld start
Starting MySQL...                                          [  OK  ]
输出mysql的头文件和库文件

输出mysql的man手册至man命令的查找路径:
编辑/etc/man.config,添加如下行即可
MANPATH  /usr/local/mysql/man
输出mysql的头文件至系统头文件路径/usr/include:
这可以通过简单的创建链接实现:
ln -sv /usr/local/mysql/include  /usr/include/mysql
输出mysql的库文件给系统库查找路径:
echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
而后让系统重新载入系统库:
ldconfig
修改PATH环境变量,让系统可以直接使用mysql的相关命令
vim /etc/profile.d/mysql.sh
export PATH=$PATH:/usr/local/mysql/bin
chmod o+x /etc/profile.d/mysql.sh
设置数据库密码
mysqladmin -u root password redhat

php安装

如果想让编译的php支持mcrypt扩展
yum install libmcrypt libmcrypt-devel php-mcrypt mhash
本地yum源可能没有这些包 我这里把yum指向aliyun的yun
[root@kcw1 ~]# tar xf php-5.4.31.tar.bz2 
[root@kcw1 ~]# cd php-5.4.31
[root@kcw1 php-5.4.31]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config \
> --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets  \
> --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2  \
> --enable-maintainer-zts 
报错:configure: error: Please reinstall the BZip2 distribution
[root@kcw1 php-5.4.31]# yum install bzip2-devel
在执行OK
make && make install
提供配置文件
[root@kcw1 php-5.4.31]# cp php.ini-production /etc/php.ini 
编辑apache配置文件httpd.conf,以apache支持vim /etc/httpd/httpd.conf
添加如下二行
   AddType application/x-httpd-php  .php
   AddType application/x-httpd-php-source  .phps
定位至DirectoryIndex index.html 
   修改为:
    DirectoryIndex  index.php  index.html
重启httpd看是否支持

vim /usr/local/apache/htdocs/index.php

<html><body><h1>It works!</h1></body></html>
<?php
phpinfo();
?>


 

表示支持php了

看看时候能够连接数据库

<html><body><h1>It works!</h1></body></html>
<?php
$conn=mysql_connect('localhost','root','redhat'); 注意你的数据库账号密码
if($conn)
 echo "Scueess...";
else
 echo "Failure...";
phpinfo();
?>
~

如果连接成功显示Scueess。。

失败显示Failure....

安装Xcache为Php加速

[root@kcw1 ~]# tar xf xcache-3.0.4.tar.bz2 
[root@kcw1 ~]# cd xcache-3.0.4
[root@kcw1 xcache-3.0.4]# /usr/local/php/bin/phpize 
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
[root@kcw1 xcache-3.0.4]# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
[root@kcw1 xcache-3.0.4]# make && make install
安装结束时,会出现类似如下行
extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20100525/
编辑php.ini,整合php和xcache:
首先将xcache提供的样例配置导入php.ini
# mkdir /etc/php.d
# cp xcache.ini /etc/php.d
接下来编辑/etc/php.d/xcache.ini,找到zend_extension开头的行,修改为如下行
vim /etc/php.d/xcache.ini
extension =/usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so
xcache.mmap_path =    "/tmp/xcache"
[root@kcw1 xcache-3.0.4]# touch  /tmp/xcache
[root@kcw1 xcache-3.0.4]# chmod 777 /tmp/xcache
重启httpd看是否加载xcache模块

至此配置完成!注意编译所带的参数 可以在源码包下面用./configure --help |less 查看又相应的解释!

启用xcache后台管理

[root@kcw1 xcache-3.0.4]# cp -r htdocs /usr/local/apache/htdocs/admin
找到xcach.ini配置文件这一段
[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = "admin"
xcache.admin.pass = "6a0194f9707fa832ece6f5b66a25567e" 
#echo -n "youp-assword" |md5sum |awk '{print $1}' 密码必须以MD5来存放不让重启httpd报错

然后在浏览器里输入http//192.168.0.1/admin

输入admin 和you_password

 

如有错误的地方还请大家多多指出来!

 

© 著作权归作者所有

共有 人打赏支持
雁南飞丶
粉丝 37
博文 124
码字总数 216404
作品 0
西安
运维
详解LAMP源码编译安装

实战:LAMP源码编译安装 家住海边喜欢浪:zhang789.blog.51cto.com 目录 详解LAMP源码编译安装 测试LAMP搭建开源数据web管理程序phpMyadmin 详解LAMP源码编译安装 LAMP简介 是当下非常流行的...

好笔记运维 ⋅ 2016/10/16 ⋅ 0

7.6 yum更换国内源 7.7 yum下载rpm包 7.8/7.9 源码包安装

7.6 yum更换国内源 7.7 yum下载rpm包 7.8/7.9 源码包安装 7.6 yum更换国内源 有时自带的yum 仓库源,因为是国外的源,下载的时候,就会比较慢,影响工作,这时就可以考虑更改源的地址为国内的...

JasonYan86 ⋅ 2017/07/04 ⋅ 0

编译安装LAMP环境

安装顺序为Apache、MySQL、PHP 一、源码安装Apache-2.4.12 二、编译安装MySQL-5.6.24 三、源码安装PHP-5.4.41 一、源码安装Apache-2.4.12 1、安装依赖软件 yum install -y gcc autoconf auto...

youshine ⋅ 2015/07/11 ⋅ 0

【2018.06.04学习笔记】【linux基础知识 11.32】

11.32 php扩展模块安装 可能会遇到这种情况,我们编译php的时候忘记指定配置某些模块,或者需求升级需要增加新的扩展模块,php支持独立扩展模块的安装。 1、我们独立安装redis缓存模块,首先...

lgsxp ⋅ 06/05 ⋅ 0

LINUX安装源码软件经典三部曲

这几天一直在搞suse下的mplyaer、ffmpeg等源码编译安装,总结出源码软件安装三部曲,网上称为经典三部曲。 这三步分别为: 1. ./configure [options] 2. make 3. make install 具体地说: 1....

乱脚印 ⋅ 2017/06/28 ⋅ 0

TensorFlow源码编译-基于Ubuntu 15.04

Ubuntu/Linux直接安装: # 仅使用 CPU 的版本$ pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linuxx8664.whl 开启 GPU 支持的版本 (安装该......

openthings ⋅ 2015/12/30 ⋅ 0

Nginx安装以及简单配置

Linux环境:ubuntu 12.04 nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息。 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已...

晓阳 ⋅ 2014/12/03 ⋅ 1

yum更换源,rpm包下载,源码包安装

一、yum更换源 yum自带源地址一般斗是国外的,可能下载速度略慢,我们可以自己换成国内的源,比如163等。 比如配置163的yum源: 1、先删除默认源文件dvd.repo 2、使用wget或者curl命令,下载...

BatmanLinux ⋅ 01/09 ⋅ 0

centos7.x编译安装mysql5.7.16

对于5.7以后的mysql编译安装,我遇到了不少坑,各种问题。mysql5.7.18编译openssl会出错,环境也神奇地报其他问题,即使我安装成功了,却无法以安装模式登陆mysql修改密码。 最后使用前几个版...

yanconggod ⋅ 2017/07/09 ⋅ 0

Android源码阅读-编译8.0源码

前面的话 搞Android的人不编译一下Android的源码感觉人生好像不大完整似的。早就想编译Android源码,但是前前后后经历好长时间都没有把它搞出来,就这样拖着,直到昨天晚上才真正的把Android...

ostracod ⋅ 2017/11/26 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

说说javascript中的那些专业名词

DOM(Document Object Model) 文档对象模型 BOM(Browser Object Model) 浏览器对象模型 ECMA(European Computer Manufacturer's Association) 欧洲计算机制造商协会 W3C(World Wide Web Conso......

hang1989 ⋅ 26分钟前 ⋅ 0

Bootstrap Wizard 多步表单控件

废话 有一块需求是 有多步表单 点击下一步时触发验证一个范围内的表单,点击上一步或取消,清空表单并返回第一步,点击最后一步提交整个表单的 就找到了这个插件,本来自己写了一个原生的 fo...

无极之岚 ⋅ 41分钟前 ⋅ 0

如何利用Spring Cloud构建起自我修复型分布式系统

利用Netflix所打造的组件及各类大家熟知的工具,我们完全可以顺利应对由微服务以及分布式计算所带来的技术挑战。 在过去一年当中,微服务已经成为软件架构领域一个炙手可热的新名词,而且我们...

harries ⋅ 今天 ⋅ 0

临近实习前的感想

再过两星期就要开始新的一段实习了,想想去年的这个时候也在实习,心中不免思绪万千,也一直想写对2017做个总结,但一直迟迟没有下笔。 2017年的春节,我就开始准备开学后找份实习。那时候就...

无精疯 ⋅ 今天 ⋅ 0

Spring AOP(面向切面编程)

Spring AOP概念: Spring AOP 可以劫持一个执行的方法,在方法执行之前或之后添加额外的功能。通常情况下,AOP把项目中需要在多处用到的功能,比如日志、安全和事物等集中到一个类中处理,而...

霍淇滨 ⋅ 今天 ⋅ 0

人工智能、机器学习、数据挖掘以及数据分析有什么联系?

人工智能是目前炙手可热的一个领域,所有的互联网公司以及各路大迦们纷纷表态人工智能将是下一个时代的革命性技术,可与互联网、移动互联网时代的变更相媲美;AlphaGo在围棋领域战胜人类最顶...

董黎明 ⋅ 今天 ⋅ 0

使用 vue-cli 搭建项目

vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli 一、 安装 node.js 首先需要安装node环境,可以直接到中...

初学者的优化 ⋅ 今天 ⋅ 0

设计模式 之 享元模式

设计模式 之 享元模式 定义 使用共享技术来有效地支持大量细粒度对象的复用 关键点:防止类多次创建,造成内存溢出; 使用享元模式来将内部状态与外部状态进行分离,在循环创建对象的环境下,...

GMarshal ⋅ 今天 ⋅ 0

SpringBoot集成Druid的最简单的小示例

参考网页 https://blog.csdn.net/king_is_everyone/article/details/53098350 建立maven工程 Pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM......

karma123 ⋅ 今天 ⋅ 0

Java虚拟机基本结构的简单记忆

Java堆:一般是放置实例化的对象的地方,堆分新生代和老年代空间,不断未被回收的对象越老,被放入老年代空间。分配最大堆空间:-Xmx 分配初始堆空间:-Xms,分配新生代空间:-Xmn,新生代的大小一...

算法之名 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部