2-21-源码编译安装LAMP
编译安装LAMP所需要及其所使用的源码版本:
httpd version:httpd-2.4.16
apr version:apr-1.5.2
pcre version:pcre-8.37
apr-util version:apr-util-1.5.4
mysql version:mysql-5.6.26
php version:php-5.6.13
1 安装之前注意事项
1.1 LAMP源码编译的基础环境
[root@xuegod1 ~]# cat /proc/version
Linux version 2.6.32-642.el6.x86_64 (mockbuild@worker1.bsys.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) ) #1 SMP Tue May 10 17:27:01 UTC 2016
[root@xuegod1 ~]# uname -a
Linux xuegod1.cn 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
6系列64位系统
1.2 确保系统的干净的系统,不要和现在源码编译安装的软件冲突
不要在一个系统上同时存在 RPM-Apache+源码-Apache
建议在编译之前,把开发包组安装:
"Development Tools"和 "Development Libraries"
[root@xuegod1 ~]# yum groupinstall "Development Tools" "Development Libraries" [root@xuegod1 ~]# yum install gcc gcc-c++ openssl-devel -y
所有软件
[root@xuegod1 ~]# ls
apr-1.5.2.tar.gz httpd-2.4.16.tar.bz2 pcre-8.37.tar.bz2
apr-util-1.5.4.tar.bz2 mysql-5.6.26.tar.gz php-5.6.13.tar.bz2
1.3 apr和apr-util依赖
apr和apr-util独立编译
[root@xuegod1 ~]# tar xf apr-1.5.2.tar.gz -C /usr/local/src/ && tar xf apr-util-1.5.4.tar.bz2 -C /usr/local/src/
[root@xuegod1 ~]# cd /usr/local/src/apr-1.5.2/ && ./configure --prefix=/usr/local/apr && make -j 4 && make install
[root@xuegod1 apr-util-1.5.4]# cd ../apr-util-1.5.4/ && ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make -j 4 && make install
[root@xuegod1 ~]# cd && tar xf pcre-8.37.tar.bz2 -C /usr/local/src/
[root@xuegod1 ~]# cd /usr/local/src/pcre-8.37/ && ./configure --prefix=/usr/local/pcre && make -j 4 && make install && cd
2 Apache源码编译
2.1 依赖环境安装完成,开始编译安装apache
[root@xuegod1 ~]# tar xvf httpd-2.4.16.tar.bz2 -C /usr/local/src/ && cd /usr/local/src/http-2.4.16
[root@xuegod1 httpd-2.4.16]# ./configure --prefix=/usr/local/apache2.4 --enable-so --enable-rewrite --enable-ssl --with-pcre=/usr/local/pcre/ --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event && make -j 4 && make install
--prefix=/usr/local/apache2.4 #安装路径
--enable-so #支持动态加载模块
--enable-rewrite #支持网站地址重写
--enable-ssl #支持SSL加密
--with-pcre=/usr/local/pcre #pcre路径
--with-apr=/usr/local/apr #apr路径
--with-apr-util=/usr/local/apr-util #apr-util路径
一共有三种稳定的MPM(Multi-Processing Module,多进程处理模块)模式。它们分别是prefork,worker和event,它们同时也代表这Apache的演变和发展。
2.2 配置Apache的启动脚本
[root@xuegod1 ~]# cp /usr/local/apache2.4/bin/apachectl /etc/init.d/apache2.4
若是你按照我们实验环境安装了桌面,那么需要停掉httpd服务,若不是,则不需要
[root@xuegod1 ~]# /etc/init.d/httpd stop
[root@xuegod1 ~]# chkconfig httpd off
编辑启动脚本文件
[root@xuegod1 ~]# vim /etc/init.d/apache2.4
#!/bin/sh
# chkconfig: 2345 64 36
#这个是启动级别的服务,2345是指那些级别启动,64是开启顺序,应该在network服务的后面,36是关闭顺序,应该在network的前
面,这里并不是注释
#默认network的是:2345 10 90
# description: Apache2.4.16 start script #描述字段,有了这两个字段,就可以用chkconfig命令控制
[root@xuegod1 ~]# service apache2.4 start
[root@xuegod1 ~]# chkconfig apache2.4 on
2.3 Apache安装完成需要注意的地方
[root@xuegod1 ~]# ps -aux|grep apache //源码编译apache,运行用户为deamon
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 56746 0.0 0.0 72236 2220 ? Ss 20:10 0:00 /usr/local/apache2.4/bin/httpd -k start
daemon 56747 0.0 0.0 416496 4108 ? Sl 20:10 0:00 /usr/local/apache2.4/bin/httpd -k start
daemon 56748 0.0 0.0 416496 4112 ? Sl 20:10 0:00 /usr/local/apache2.4/bin/httpd -k start
daemon 56749 0.0 0.0 416496 4116 ? Sl 20:10 0:00 /usr/local/apache2.4/bin/httpd -k start
root 56836 2.0 0.0 103316 840 pts/0 S+ 20:11 0:00 grep apache
[root@xuegod1 ~]# id daemon //编译安装运行用户身份是daemon
uid=2(daemon) gid=2(daemon) groups=2(daemon),1(bin),4(adm),7(lp)
[root@xuegod1 ~]# useradd -M -s /sbin/nologin apache //创建一个用户用来运行apache
[root@xuegod1 ~]# vim /usr/local/apache2.4/conf/httpd.conf //修改配置文件改变apache运行身份
User apache #运行用户
Group apache #运行组,创建apache的时候已经即时创建了apache这个组
[root@xuegod1 ~]# id apache
uid=500(apache) gid=500(apache) groups=500(apache)
更改目录权限
[root@xuegod1 ~]# chown -R apache:apache /usr/local/apache2.4/ //默认是root,改为apache
3 MYSQL源码编译
Mysql 5.5.15 以后,使用了新的 cmake 编译方式,所以先安装 cmake。 以前的版本直接 configure然后make ,make install ,对于5.5.16的后续版
本,将需要先使用cmake之后再make,然后make install
CMake 是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的 makefile 或者 project 文件,能
测试编译器所支持的 C++特性,类似 UNIX 下的automake。 只是 CMake 的建构档取名为 CmakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标
准的建构档(如 Unix 的 Makefile 或Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境
(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。
3.1 解决依赖
[root@xuegod1 ~]# yum install -y cmake ncurses-devel //gcc等相关在编译apache已安装
3.2 编译安装mysql
安装之前使用 yum remove mysql 确保没有安装MySQL
[root@xuegod1 ~]# yum remove mysql* -y
[root@xuegod1 ~]# yum remove -y mysql
[root@xuegod1 ~]# rpm -qa|grep mysql
mysql-libs-5.1.73-7.el6.x86_64
[root@xuegod1 ~]# rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64
[root@xuegod1 ~]#
[root@xuegod1 ~]# tar xf mysql-5.6.26.tar.gz -C /usr/local/src/ ; cd /usr/local/src/mysql-5.6.26
[root@xuegod1 mysql-5.6.26]# useradd -M -s /sbin/nologin mysql //创建mysql运行用户
[root@XueGod63 mysql-5.6.26]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1\
-DWITH_INNOBASE_STORAGE_ENGINE=1\
-DWITH_MEMORY_STORAGE_ENGINE=1\
-DWITH_READLINE=1\
-DENABLED_LOCAL_INFILE=1\
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL-USER=mysql
***********************************参数解释******************************************************************************
DCMAKE_INSTALL_PREFIX #制定mysql的安装根目录,目录在安装的时候会自动创建,这个值也可以在服务器
启动时,用--basedir来设置
DMYSQL_UNIX_ADDR #服务器与本地客户端进行通信的Unix套接字文件,必须是绝对路径,默认位
置/tmp/mysql.sock,可以在服务器启动时,用--socket改变
DDEFAULT_CHARSET #mysql默认使用的字符集,不指定将默认使用Latin1西欧字符集
DDEFAULT_COLLATION #默认字符校对
DWITH_EXTRA_CHARSETS #制定mysql拓展字符集,默认值也是all支持所有的字符集
DWITH_MYISAM_STORAGE_ENGINE
DWITH_INNOBASE_STORAGE_ENGINE
DWITH_MEMORY_STORAGE_ENGINE
#静态编译MYISAM,INNOBASE,MEMORY存储引擎到MYSQL服务 器,这样MYSQL就支持这三种存储引擎
DWITH_READLINE #支持readline库
DENABLED_LOCAL_INFILE #允许本地倒入数据,启用加载本地数据
DMYSQL_DATADIR #mysql数据库存放路径
DMYSQL-USER #运行mysql的用户
[root@xuegod1 mysql-5.6.26]# make -j 4 && make install
这些编译参数的帮助寻找方法:
http://www.mysql.com→→Documentation→→选择对应的版本(5.6)→→HTML Online→→View→→Installation &
Upgrades→→Installing MySQL from Source →→MySQL Source-Configuration Options→→http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html
3.3 配置mysql
[root@xuegod1 mysql-5.6.26]# cd &&
chown -R mysql:mysql /usr/local/mysql/ //属主属组更改
[root@xuegod1 ~]# cp
/usr/local/mysql/support-files/my-default.cnf
/etc/my.cnf //覆盖原配置文件
[root@xuegod1 ~]# cp
/usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld //启动脚本
[root@xuegod1 ~]# vim /etc/init.d/mysqld //更改启动脚本中指定mysql位置
basedir=
datadir=
#修改为
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
[root@xuegod1 ~]# chkconfig mysqld on //开机启动
3.4 初始化数据库
[root@XueGod63
~]# /usr/local/mysql/scripts/mysql_install_db \
--defaults-file=/etc/my.cnf
\
--basedir=/usr/local/mysql/\
--datadir=/usr/local/mysql/data/\
--user=mysql
#类似于在rpm安装的时候启动数据库弹出的初始化消息
等同于这样:
[root@xuegod1 ~]#
/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/
--datadir=/usr/local/mysql/data/ --user=mysql
出现两个OK表示安装成功
[root@xuegod1 ~]# ls /usr/local/mysql/data/ //初始化看这个下面有无mysql和test等数据库
ibdata1
ib_logfile0 ib_logfile1 mysql
performance_schema test
[root@xuegod1 ~]# ln -s
/usr/local/mysql/bin/* /bin/ //这个里面是部分命令,让系统直接调用
[root@xuegod1 ~]# service mysqld start //启动数据库
Starting MySQL..... SUCCESS!
[root@xuegod1 ~]# mysql_secure_installation //初始安全设置(设置root密码,123456)
[root@xuegod1 ~]# mysql -uroot -p123456 //测试登录(OK)
4 编译安装配置PHP
PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP:
Hypertext Preprocessor"。
Apache对于php的解析,就是通过众多Module中的php Module来完成的,把php最终集成到Apache系统中,还需要对Apache进行一些必要的设置!
4.1 解决依赖
[root@xuegod1 ~]# yum install -y
libxml2-devel
[root@xuegod1 ~]# tar xf php-5.6.13.tar.bz2
-C /usr/local/src/ ; cd /usr/local/src/php-5.6.13
4.2 正式安装
[root@xuegod1 php-5.6.13]# ./configure
--prefix=/usr/local/php --with-mysql=/usr/local/mysql/
--with-apxs2=/usr/local/apache2.4/bin/apxs
--with-config-file-path=/usr/local/php
--prefix #指定安装路径
--with-apxs2 #用apache的apxs工具将php编译成apache的一个模块
--with-mysql #与mysql结合,如果不跟路径,编译出来的版本将是低版本
--with-config-file-path
#php的主配置文件php.ini路径
看到下面一段内容,表示configure成功
Thank you for using PHP.
config.status: creating php5.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status:
executing default commands
[root@xuegod1 php-5.6.13]# make -j 4 ; make
install ; cd /usr/local/src/php-5.6.13
[root@xuegod1 php-5.6.13]# cp
php.ini-production /usr/local/php/php.ini ; cd
//php配置文件
4.3 检测编译安装结果
只有有下面这两个文件(模块),代表我们的apache就可以支持php了
[root@xuegod1 ~]# ll
/usr/local/apache2.4/modules/httpd.exp
-rw-r--r-- 1 apache apache 14212 Jun 7 20:04
/usr/local/apache2.4/modules/httpd.exp
[root@xuegod1 ~]# ll
/usr/local/apache2.4/modules/libphp5.so
-rwxr-xr-x 1 root root 26411241 Jun 7 22:36
/usr/local/apache2.4/modules/libphp5.so
4.4 配置Apache支持PHP
[root@xuegod1 ~]# vim
/usr/local/apache2.4/conf/httpd.conf
……
248 <IfModule
dir_module>
249 DirectoryIndex
index.html index.php #添加index.php
250 </IfModule>
……
376 AddType
application/x-compress .Z
377 AddType
application/x-gzip .gz .tgz #上面两行是以前有的
378 AddType application/x-httpd-php .php #下面两行是添加的,需要添加以支持PHP
379 AddType
application/x-httpd-php-source .phps
修改完后重启一下apache服务
[root@xuegod1 ~]# service apache2.4 restart
测试:
[root@xuegod1 ~]# vim
/usr/local/apache2.4/htdocs/index.php
<?php
phpinfo();
?>
然后用客户端浏览器打开此页面
2-21-源码编译安装LAMP的更多相关文章
- centos7源码编译安装lamp/lnmp
centos7源码编译安装lamp/lnmp 进程:是包工头(相当于是个门,只管开门关门,不管门内的事儿) 线程:是各种工种(cpu调度的是线程) 进程 是一件事情, 线程 是 同一个时间范围内 同时 ...
- 源码编译安装LAMP环境及配置基于域名访问的多虚拟主机
实验环境及软件版本: CentOS版本: 6.6(2.6.32.-504.el6.x86_64) apache版本: apache2.2.27 mysql版本: Mysql-5.6.23 php版本 ...
- CentOS 6.3下源码编译安装LAMP
一.简介 什么是LAMP LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代 ...
- 源码编译安装LAMP
LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境.LAMP是一个缩写词,具体包括Linux操作系统.Apache网站服务器 ...
- Centos7源码编译安装LAMP环境
参考地址:https://www.linuxidc.com/Linux/2018-03/151133.htm
- 总结源码编译安装mysql
最近在学习源码编译安装LAMP.LNMP时,一直遇到一个难题,就是就是mysql无论怎么源码编译安装,到最后启动服务都提示"Starting MySQL.The server quit wi ...
- LAMP架构—源码编译安装 (爱情受过伤,为爱跳过鸭绿江)
LAMP架构--源码编译安装 1.LAMP架构概述 2.编译安装Apache httpd 服务 3.编译安装mysql 服务 4.编译安装PHP 解析服务 5.利用LAMP搭建论坛 1.LAMP架构概 ...
- Httpd服务进阶知识-LAMP源码编译安装
Httpd服务进阶知识-LAMP源码编译安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必大家都知道,动态资源交给fastcgi程序处理,静态资源依旧由httpd服务器处理 ...
- LAMP环境源码编译安装过程
LAMP环境源码编译安装过程 一.Apache的安装 1.1.apache软件包及依赖包准备 httpd-2.4.29.tar.bz2 apr-1.6.3.tar.gz apr- ...
- SSH/SSL 源码编译安装简易操作说明
环境:CentOS 6.7 安全加固需求,由于某盟扫描系统主机有SSL系列漏洞,客户要求必须修复: 解决方案:将SSH/SSL升级到最新版本,删除SSL旧版本(实测不删除旧版本某盟扫描无法通过). 当 ...
随机推荐
- Android selector背景以及透明色
selector可以设置图片或layout的点击效果: <?xml version="1.0" encoding="utf-8"?> <sel ...
- PHP接口类interface使用方法
PHP同大多数的面向对象语言一样,并不支持多重继承.少数支持多重继承的语言中最著名的就是C++和Smalltalk.如果需要实现多重继承功能,在PHP中,可以通过接口,它是PHP解决多重继承问题的方法 ...
- SpringMVC ModelAndView跳转失效
今天隔壁的兄弟遇到一个奇怪的问题,他写好了一个表单用post提交到了addNew.do 里面,然后利用 return new ModelAndView("forward:success.js ...
- Windows7系统下安装OpenSSL攻略
Windows7系统下安装OpenSSL攻略 http://blog.chinaunix.net/uid-20479991-id-216269.html http://my.oschina.net/s ...
- 灵活使用Excel可能会提高Java代码编写效率
使用Java操作数据时,当表字段太多时,书写实体类和进行实体类对象操作时都是一个繁重且易错的工作,光靠复制粘贴快捷键已不能满足负责的操作. 首先,说一下,就是在Eclipse中的快捷键,小写:ctrl ...
- 学习鸟哥的Linux私房菜笔记(8)——文件查找与文件管理2
四.压缩 gzip, gunzip Linux标准压缩工具 对文本文件可以达到75%的压缩率 compress, uncompress 旧的Unix压缩工具 bzip2, bunzip2 更新的Lin ...
- Tomcat系列之服务器的安装与配置以及各组件详解
Tomcat系列之服务器的安装与配置以及各组件详解 大纲 一.前言 二.安装与配置Tomcat 三.Tomcat 目录的结构 四.Tomcat 配置文件 注,本文的测试的操作系统为CentOS 6.4 ...
- 【9210】找礼物(char* num[2000]的使用 get char num[i] = new char[1000])
Time Limit: 10 second Memory Limit: 2 MB 问题描述 新年到了,突然间,就在那美丽的一霎那,你好友和你(K个人)的周围满是礼物,你发扬你帅气的风格,让你的好友先拿 ...
- Android Gallery组件实现循环显示图像
Gallery组件主要用于横向显示图像列表,只是按常规做法.Gallery组件仅仅能有限地显示指定的图像.也就是说,假设为Gallery组件指定了10张图像,那么当Gallery组件显示到第10张时, ...
- spring-boot-starter-parent 1.3.6.RELEASE
2016-11-17 23:43:17.979 DEBUG 3944 --- [ main] o.s.b.f.s.DefaultListableBeanFactory : Creating share ...