设为首页 收藏本站
查看: 968|回复: 0

[经验分享] LAMP组合的编译安装(httpd 2.4+mysql 5.5+php 5.4)

[复制链接]

尚未签到

发表于 2018-12-18 10:25:31 | 显示全部楼层 |阅读模式
  一、何为LAMP
  Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案
  

  二、软件组合
      Linux
  Linux 是免费开源软件,这意味着源代码可用的操作系统。
      Apache
  Apache 是使用中最受欢迎的一个开放源码的WEB服务器软件。
      MySQL
  MySQL 是多线程、多用户的SQL数据库管理系统。
  MySQL 已由Oracle公司自 2010 年 1 月 27 日通过SUN购买。SUN 最初于 2008 年 2 月 26 日收购 MySQL。
  MariaDB
  MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发。MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。由于不满MySQL被Oracle收购后的日渐封闭与缓慢的更新,众多Linux发行版逐渐抛弃了这个人气开源数据库,而转向了MariaDB。其中Centos 7默认已经采用MariaDB。互联网中维基百科,互联网巨头谷歌纷纷放弃MySQL转向MariaDB。
      PHP
  PHP 是一种编程语言最初设计生产动态网站。PHP 是主要用于服务器端的应用程序软件。
  

  三、编译安装Apache
[root@localhost ~]# yum groupinstall -y "Development Tools" "Server Platform Development"
#通过“包组”提供开发工具(make, gcc等)及开发环境(开发库,头文件,标准库等)  
    由于httpd-2.4需要依赖于apr-1.4和apr-util-1.4以上的版本,所以我们先编译安装此两个源码。apr全称apache portable runtime(Apache可移植运行库)。主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。
[root@localhost ~]# tar xf apr-1.5.2.tar.bz2
[root@localhost ~]# cd apr-1.5.2
[root@localhost apr-1.5.2]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.5.2]# make -j 4 && make install    apr-1.5.2下载地址:http://mirrors.aliyun.com/apache/apr/apr-1.5.2.tar.bz2


[root@localhost ~]# tar xf apr-util-1.5.4.tar.bz2
[root@localhost ~]# cd apr-util-1.5.4
[root@localhost apr-util]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util]# make -j 4 && make install  apr-util-1.5.4下载地址:http://mirrors.aliyun.com/apache/apr/apr-util-1.5.4.tar.bz2
  

  由于httpd-2.4.16编译过程依赖于pcre-devel软件包,需要事先安装。此软件包系统光盘自带,因此,可以直接挂载光盘使用yum安装。
[root@localhost ~]# yum install -y pcre-devel
[root@localhost ~]# tar xf httpd-2.4.16.tar.bz2
[root@localhost ~]# cd httpd-2.4.16
[root@localhost httpd-2.4.16]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24
--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
#--prefix:安装目录,--sysconfdir:配置文件目录,--enable-so:支持模块化机制,--enable-ssl:启动ssl
#--enable-cgi:启动cgi,--enable-rewrite:支持url重新,--with-zlib:支持传送压缩,--with-pcre:支持正则表达式
#--with-apr:指明apr安装路径,--with-apr-util:指明apr-util安装路径,--enable-modules:指明启用的模块
#--enable-mpms-shared:把所有支持的MPM都编译进来,--with-mpm:默认使用的MPM
[root@localhost httpd-2.4.16]# make -j 4 && make install  httpd-2.4.16下载地址:http://mirrors.aliyun.com/apache/httpd/httpd-2.4.16.tar.bz2
  

  为了后期管理方便,我们这里为编译安装的httpd-2.4提供一个管理脚本,可以复制通过yum源安装的httpd-2.2的配置文件进行修改。

[root@localhost ~]# cd /etc/rc.d/init.d/
[root@localhost init.d]# cp httpd httpd24
[root@localhost init.d]# vim httpd24
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
pidfile=${PIDFILE-/var/run/httpd/httpdi24.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
[root@localhost init.d]# chkconfig --add httpd24
#把httpd2.4设置为系统服务
[root@localhost init.d]# vim /etc/profile.d/httpd24.sh
export PATH=/usr/local/apache/bin:$PATH
[root@localhost init.d]# . /etc/profile.d/httpd24.sh
#把刚编译好的httpd2.4的脚本运行命令添加到环境变量中
[root@localhost init.d]# httpd -t
Syntax OK
[root@localhost init.d]# /etc/init.d/httpd24 start
Starting httpd:                                            [  OK  ]
[root@localhost init.d]# ss -anl
State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port   
LISTEN     0      128                      :::80                      :::*
#查看80端口已经处于监听状态  

  四、编译安装Mariadb
[root@wlw ~]# mkdir -pv /mariadb/data
[root@wlw ~]# chown -R mysql:mysql /mariadb/data/
#创建mariadb存放数据的位置
[root@wlw /]# groupadd -r mysql
[root@wlw /]# useradd -g mysql -r -s /sbin/nologin -M -d /mariadb/data mysql
#为mariadb新建用户以安全方式运行进程
[root@wlw ~]# tar xf mariadb-5.5.42.tar.gz -C /usr/local/
root@wlw ~]# cd /usr/local/
[root@wlw local]# ln -sv mariadb-5.5.42 mysql
`mysql' -> `mariadb-5.5.42'
[root@wlw local]# cd mysql/
[root@wlw mysql]# chown -R root:mysql ./*
[root@wlw mysql]# scripts/mysql_install_db --user=mysql --datadir=/mariadb/data
#--user:运行mariadb的用户名,--datadir:制定数据存放位置,由于数据库数据较大,一般单独分区存放(LVM)
[root@wlw mysql]# mkdir /etc/mysql
[root@wlw mysql]# cp support-files/my-large.cnf /etc/mysql/my.cnf
#为mariadb提供主配置文件,存放在/etc/mysql中
[root@wlw mysql]# vim /etc/mysql/my.cnf
thread_concurrency = 2
datadir = /mariadb/data
#thread_concurrency:的值建议为你的CPU个数乘以2,datadir:数据库存放位置  Mariadb下载地址:http://archive.mariadb.org//mariadb-5.5.43/bintar-linux-x86_64/mariadb-5.5.43-linux-x86_64.tar.gz
  

  为了后期管理方便,我们这里同样为mariadb提供服务脚本,这里mariadb中已经为我们提供好了,存放在 support-files/mysql.server 中
[root@wlw mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@wlw mysql]# chkconfig --add mysqld
[root@wlw mysql]# /etc/init.d/mysqld start
Starting MySQL..                                           [确定]
[root@wlw mysql]# ss -tnl
LISTEN     0      50                        *:3306                     *:*
[root@wlw mysql]# ./bin/mysql_secure_installation
#按照配置完成后建议对mariadb进行安全初始化,为root提供密码和删除匿名用户,使用mariadb默认提供的脚本  为了使mariadb的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤
[root@wlw mysql]# vim /etc/man.config
MANPATH /usr/local/mysql/man
#输出mysql的man手册至man命令的查找路径
[root@wlw mysql]# ln -sv /usr/local/mysql/include  /usr/include/mysql
#输出mysql的头文件至系统头文件路径/usr/include
[root@wlw mysql]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
#输出mysql的库文件给系统库查找路径
[root@wlw mysql]# ldconfig
#让系统重新载入系统库
[root@localhost init.d]# vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH
[root@localhost init.d]# . /etc/profile.d/mysql.sh
#把刚编译好的mysql的脚本运行命令添加到环境变量中  

  五、编译安装PHP
[root@wlw ~]# yum -y groupinstall "Desktop Platform Development"
[root@wlw ~]# yum -y install bzip2-devel libmcrypt-devel libxml2-devel
#解决php编译依赖关系,bzip2-devel在光盘中有提供,libmcrypt-devel在epel源中
[root@wlw ~]# tar xf php-5.4.40.tar.bz2
[root@wlw ~]# cd php-5.4.40
[root@wlw php-5.4.40]# ./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
#--prefix:默认安装路径,--with-mysql:指定mysql安装路径,--with-openssl:支持openssl,--with-mysqli:指定mysqli安装目录
#--enable-mbstring:开启多字节字符串的支持,支持中文必须开启,--with-zlib:支持压缩库,--enable-xml:支持处理xml文档
#--with-apxs2:把php编译成apache的模块,--with-mcrypt:开启加解密,--enable-maintainer-zts:这里为了支持apache的worker或event这两个MPM,编译成zts模块
[root@wlw php-5.4.40]# make -j 4 && make install
[root@wlw php-5.4.40]# cp php.ini-production /etc/php.ini
#为php提供配置文件
[root@wulewei ~]# vim /etc/httpd24/httpd.conf
LoadModule php5_module        modules/libphp5.so
#编译php过程中自动添加的php模块(支持zts功能)
AddType application/x-httpd-php  .php
AddType application/x-httpd-php-source  .phps
#让.php结尾的文件都识别为application/x-httpd-php-source的MINE类型,这种类型需要调用php模块处理
DirectoryIndex  index.php  index.html
#添加index.php到首页次序中
[root@wulewei ~]# /etc/init.d/httpd24 reload
#修改完配置文件后让httpd重读配置文件,让配置生效
[root@wulewei ~]# vim /usr/local/apache/htdocs/index.php

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-652746-1-1.html 上篇帖子: php5.2.17及手动打补丁php 下篇帖子: 第 十 七 天 : 安 装 php 遇 到 的 错 误 汇 总
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表