码迷,mamicode.com
首页 > 其他好文 > 详细

LAMP介绍及安装

时间:2015-04-16 19:31:52      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:

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已经配置好了:

技术分享

LAMP介绍及安装

标签:

原文地址:http://www.cnblogs.com/TaoYuanJieYi/p/4432758.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!