LAMP介绍及安装

LAMP介绍及安装

1. LAMP是什么?

LAMP,包含Linux + Apache + PHP + Mysql。

LAMP适用环境

适用于追求极致稳定的WEB环境,缺点是需要消耗更多资源。

除了LAMP之外,大家应该也经常听到LNMP,不同之处就是Apache换成了Nginx。Apache的工作模式默认采用prefork工作模式,多个进程,每个进程只采用一个线程。还有另一个worker工作模式,每个子进程有多个线程,适合高并发场景,但是线程安全需要自己保证,故此不推荐。

Apache与Nginx比较

  • Apache较为稳定,Nginx适合高并发场景
  • Apache配置文件相对复杂,Nginx配置简单
  • Apache处理动态进程,Nginx适合处理静态
  • Apache模块化的体系,不过Nginx也逐渐有丰富的三方库。

常用环境

  • Apache因其稳定性与动态处理能力,常用于最后端Server。
  • Nginx因其高并发处理能力,以及强大的正则表达式,用于前端转发。

2. LAMP的编译安装

通常情况下在ubuntu及centos等发行版中只需要执行简单的yum或apt-get命令即可快速安装LAMP全套组件,但有时因为性能等因素的考虑会选择复杂的源码安装,这里介绍源码安装LAMP的方法,部分内容在实验楼环境中需要先停止已通过apt-get安装的apache及mysql服务才可以操作。

2.1 Apache编译

apache相关链接:

下载最新版本

$ wget http://mirrors.aliyuncs.com/apache/httpd/httpd-2.4.12.tar.gz

编译前解决依赖关系

$ sudo apt-get install gcc g++ make libtool -y

安装依赖

#####install apr
$ wget http://mirrors.aliyuncs.com/apache/apr/apr-1.5.1.tar.gz
$ tar xvf apr-1.5.1.tar.gz
$ cd apr-1.5.1
~/apr-1.5.1$ ./configure --prefix=/app/apr
~/apr-1.5.1$ make && make install

#####install apr-util
$ wget http://mirrors.aliyuncs.com/apache/apr/apr-util-1.5.4.tar.gz
$ tar xvf apr-util-1.5.4.tar.gz
$ cd apr-util-1.5.4
~/apr-util-1.5.4$ ./configure --prefix=/app/apr-util --with-apr=/app/apr

#####install pcre
$ wget  http://sourceforge.net/projects/pcre/files/pcre/8.36/pcre-8.36.tar.gz
$ tar xvf pcre-8.36.tar.gz
$ cd pcre-8.36
~/pcre-8.36$ ./configure --prefix=/app/pcre
~/pcre-8.36$ make && make install

编译安装apache

$ tar xvf httpd-2.4.12.tar.gz
$ cd httpd-2.4.12
~/httpd-2.4.12$ ./configure --prefix=/app/apache --with-apr=/app/apr --with-apr-util=/app/apr-util --with-pcre=/app/pcre/
~/httpd-2.4.12$ make && make install

启动

$ sudo /app/apache/bin/httpd
$ netstat -anp | grep 80
(No info could be read for "-p": geteuid()=1000 but you should be root.)
tcp6       0      0 :::80                   :::*                    LISTEN      -

测试

$ curl -I 127.0.0.1
HTTP/1.1 200 OK
Date: Tue, 03 Feb 2015 16:17:15 GMT
Server: Apache/2.4.12 (Unix)
Last-Modified: Mon, 11 Jun 2007 18:53:14 GMT
ETag: "2d-432a5e4a73a80"
Accept-Ranges: bytes
Content-Length: 45
Content-Type: text/html

2.2 MySQL编译

这里我们采用MySQL,虽然这不是最佳选择。我们推荐mariadb或者percona,他们都是MySQL的分支,拥有比MySQL更加优秀的性能,与MySQL完全兼容,而且不受厂商控制。

PS:MySQL5.5之后将采用cmake进行编译

解决依赖关系

$ sudo apt-get install cmake g++ libbison-dev libncurses-dev

编译安装

$ wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.14.tar.gz
$ tar xf mysql-5.6.14.tar.
~/mysql-5.6.14$
~/mysql-5.6.14$ cmake -DCMAKE_INSTALL_PREFIX=/app/mysql -DMYSQL_DATADIR=/app/mysql/data -DWITH_INNOBASE_STORAGE_ENGINE=1
~/mysql-5.6.14$ make && make install

赋予权限与初始化

$ sudo useradd mysql
$ sudo chown -R mysql.mysql /app/mysql/
$ sudo /app/mysql/scripts/mysql_install_db --basedir=/app/mysql --datadir=/app/mysql/data --user=mysql

启动

$ sudo /app/mysql/bin/mysqld_safe &
[1] 2255
$ 150204 09:30:14 mysqld_safe Logging to ‘/app/mysql/data/ubuntu.err‘.
150204 09:30:14 mysqld_safe Starting mysqld daemon with databases from /app/mysql/data

测试

$ netstat -anp | grep 3306
(No info could be read for "-p": geteuid()=1000 but you should be root.)
tcp6       0      0 :::3306                 :::*                    LISTEN      -

端口已经监听,已经成功安装并启动。

2.3 PHP编译

PHP的扩展包有点多,我们直接apt安装了,如有特殊需求可下载指定包编译安装,常规编译方法。

安装依赖

$ sudo apt-get install zlib1g-dev libbz2-dev libcurl4-gnutls-dev  libjpeg-dev libpng12-dev  libfreetype6-dev  libmcrypt-dev libxml2-dev

编译安装

$ wget\ http://220.112.193.196/files/903600000251A217/hk1.php.net/distributions/php-5.5.21.tar.gz
$ tar xf php-5.5.21.tar.gz
$ cd php-5.5.21
~/php-5.5.21$ ./configure --prefix=/app/php --with-bz2 --with-curl --with-jpeg-dir --with-gd --enable-shared --enable-mbstring --with-mcrypt --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --enable-fpm --enable-phar --enable-bcmath --with-zlib --enable-zip --enable-ftp --with-gettext --enable-sockets --with-freetype-dir  --with-config-file-path=/app/php/etc/php.ini --with-config-file-scan-dir=/app/php/etc/conf.d
~/php-5.5.21$ make && make install
~/php-5.5.21$ cp php.ini-production /app/php/etc/php.ini

查看php是否支持mysql,以下为支持的模块。

~/php-5.5.21$ /app/php/bin/php -m | grep mysql
mysql
mysqli
mysqlnd
pdo_mysql

修改apache配置文件/etc/apache2/apache2.conf,添加以下内容,使支持php

AddType application/x-httpd-php .php

重新启动apache

$ sudo /app/apache/bin/httpd

访问测试

$ cat /app/apache/htdocs/index.php

 <?php
 echo phpinfo();
 ?>

使用浏览器访问,正常访问情况如下,说明apache已经配置好了:

时间: 2024-07-29 20:47:46

LAMP介绍及安装的相关文章

LAMP架构介绍Mysql安装

LAMP架构介绍 MySQL和MariDB介绍 MySql安装 mysql解压缩 mv目录并且更改名字 创建mysql 针对以上4个dumper全部安装,安装依赖包 启动文件 使用默认的mysql的配置文件 启动脚本 对脚本文件进行编辑 将mysql服务加入到开机启动和分配权限 启动服务 启动进程与端口 另外mysql启动方式: 关闭mysql 原文地址:http://blog.51cto.com/wbyyy/2073300

Zabbix介绍、安装配置

Zabbix介绍.安装配置 本篇文章转自我的个人博客, http://anyisalin.com,欢迎大家访问 我们为什么需要监控? 没有监控就将系统上线, 就是在耍流氓; 在生产环境中, 监控是必不可少的, 因为我们需要实时了解业务的运行状态, 并且将数据以图表的方式直观的展示出来, 甚至当服务出现故障还可以根据事先定义好的规则自动执行相应脚本, 从而实现自动恢复.转移等功能 常用的开源监控系统有哪些? 运维工作就是大部分时候都是通过各种工具来让我们完成特定的任务, 监控也是如此, 目前也有很

Linux监控平台(zabbix监控介绍,安装zabbix,解决忘记admin密码)

linux监控平台介绍 常见开源监控软件:cacti,nagios,zabbix,smokeping,open-falcon等等 cacti,smokeping偏向于基础监控,成图非常漂亮 cacti,nagios,zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti需要MySQL作为数据储存, agios不用存储历史数据,他注重服务或监控项的状态 zabbix会获取服务或者监控项目的数据,会把数据记录到数据库中,从而可以成图 open-falcon是小米公司开发的,开源

Ubuntu16.04下LAMP环境的安装与配置

Ubuntu16.04下LAMP环境的安装与配置 最近做个实验需要用到Ubuntu环境的靶场,所以这里介绍下Ubuntu环境下LAMP的安装与配置,话不多说,我们gkd! 1.Apache2的安装 首先确保机器已经进行了sudo apt-get update && sudo apt-get upgrade,如果速度慢请换源,这里我使用的是清华源. sudo apt-get install apache2,安装信息省略,一般安装结束之后apache会自动开启. systemctl statu

Tokyo Tyrant(TTServer)系列(一)-介绍和安装

Tokyo Cabinet 是日本人Mikio Hirabayashi 开发的一款DBM 数据库,该数据库读写非常快,哈希模式写入100 万条数据只需0.643 秒,读取100 万条数据只需0.773 秒,是Berkeley DB 等DBM 的几倍.Tokyo Tyrant 是由同一作者开发的Tokyo Cabinet 数据库网络接口.它拥有Memcached兼容协议,也可以通过HTTP 协议进行数据交换. Tokyo Tyrant 加上Tokyo Cabinet,构成了一款支持高并发的分布式持

Laravel介绍及安装

Laravel是目前最流行的php框架,此前已有耳闻,还没有好好的研究下,目前由于项目的需求要用到这个框架,所以只能硬着头皮学习了.今天算是Laravel学习的第一天,先讲讲laravel框架的安装流程. 下载最新版本Laravel框架,可以到Laravel官网下载,也可以到国内社区下载,下载后解压到服务器网根目录. LaraveL框架使用Composer(PHP包管理工具)来管理代码依赖性. 首先,你需要下载Composer的PHAR打包文件( composer.phar ),下载完成后把它放

System center 2012 R2 实战五、SCVMM2012R2介绍及安装

大家好,今天我来分享的是微软System center组件中第一个组件,SCVMM2012R2的安装,说起SCVMM2012R2,我还想与大家聊一聊,SCVMM2012R2在微软私有云中的作用. 我们知道,微软的私有云一共分为三个层,最底层,是基础架构层,基础架构层上面是服务标准与自动化流程,最上面的是应用管理层,那么什么是基础架构层,基础架构层在微软私有云中是干什么的呢,我先来跟大家说一说我的理解. 微软私有云基础架构层,在我看来,主要作用是,通过微软的云计算,改善企业的IT环境,将企业传统的

Storm介绍及安装部署

本节内容: Apache Storm是什么 Apache Storm核心概念 Storm原理架构 Storm集群安装部署 启动storm ui.Nimbus和Supervisor 一.Apache Storm是什么 Apache Storm是自由开源的分布式实时计算系统,擅长处理海量数据,适用于数据实时处理而非批处理. 批处理使用的大多是鼎鼎大名的hadoop或者hive,作为一个批处理系统,hadoop以其吞吐量大.自动容错等优点,在海量数据处理上得到了广泛的使用.但是,hadoop不擅长实时

python 常库介绍及安装方法

文大赛,秀绝招,赢无人机! python 常库介绍及安装方法 标签: PYTHON库 2016-10-13 15:32 798人阅读 评论(0) 收藏 举报  分类: 其他(33)  bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctypes:用来调用动态链接库DBUtils:数据库连接池django:一个WEB frameworkdocutils:用来写文档的dpkt:数据包的解包和组包My