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.aliyun.com/apache/httpd/httpd-2.4.10.tar.gz

编译前解决依赖关系

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

安装依赖

#####install apr

$ wget

http://mirrors.aliyun.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.aliyun.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.10.tar.gz

$ cd httpd-2.4.10

~/httpd-2.4.10$ ./configure --prefix=/app/apache --with-apr=/app/apr --with-apr-util=/app/apr-util

--with-pcre=/app/pcre/

~/httpd-2.4.10$ 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.)

tcp60 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.10 (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

编译安装

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

800086502015-04-29 23:46:36更新过
新窗口打开 关闭