LAMP 简介:
LAMP是指(Linux+Apache+Mysql/MariaDB+Perl/PHP/Python)一组通常一起使用来运行动态网站或者服务器的*软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。
Apache是LAMP架构最核心的Web Server,开源、稳定、模块丰富是Apache的优势。但Apache的缺点是有些臃肿,内存和CPU开销大,性能上有损耗,不如一些轻量级的Web 服务器(例如nginx)高效,轻量级的Web服务器对于静态文件的响应能力来说远高于Apache服务器。
Apache做为Web Server是负载PHP的最佳选择,如果流量很大的话,可以采用nginx来负载非PHP的Web请求。nginx是一个高性能的HTTP和反向代理服 务器,Nginx以它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。Nginx不支持PHP和CGI等动态语言,但支持负载均衡和容 错,可和Apache配合使用,是轻量级的HTTP服务器的首选。
Apache提供了自己的缓存模 块,也可以使用外加的Squid模块进行缓存,这两种方式均可以有效的提高Apache的访问响应能力。Squid Cache是一个Web缓存服务器,支持高效的缓存,可以作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度。
PHP的加速使用eAccelerator加速器,eAccelerator是一个*开放源码PHP加速器,优化和动 态内容缓存,提高了性能PHP脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。
web缓存加速的解决方案有以下几种:
1、squid + Apache + PHP + eAccelerator
使用Apache负载PHP,使用squid进行缓存,html或图片的请求可以直接由squid返回给用户。很多大型网站都采用这种架构。
2、nginx/Apache + PHP(fastcgi) + eAccelerator
使用nginx或Apache负载PHP,PHP使用fastcgi方式运行,效率较高。
3、nginx + Apache + PHP + eAccelerator
此方案综合了nginx和Apache的优点,使用Apache负载PHP,nginx负责解析其他Web请求,使用nginx的rewrite模块,Apache端口不对外开放。
MySQL是一个关系型数据库管理系统,关系数据库将数据保存在不同的表中,这样就增加了速度并提高了灵活性。目前MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。。
安装环境:
系统: centos 7.0 最小化安装
软件:httpd-2.4.26 、mysql 、php
基本环境准备部署工作:
1、关闭firewall:
[root@rsyslog~]# systemctl stop firewalld.service
[root@rsyslog~]# systemctl disable firewalld.service
2、安装iptables防火墙
[root@rsyslog~]# yum install iptables-services [root@rsyslog~]# vi /etc/sysconfig/iptables #编辑防火墙配置文件-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT #允许http协议80 端口通过-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT #允许mysql 3306端口通过:wq! #保存退出[root@rsyslog~]# systemctl restart iptables.service #最后重启防火墙使配置生效[root@rsyslog~]# systemctl enable iptables.service #设置防火墙开机启动
3、关闭selinux
[root@rsyslog~]# vi /etc/selinux/config#SELINUX=enforcing #注释掉#SELINUXTYPE=targeted #注释掉SELINUX=disabled #增加改行内容:wq! #保存退出[root@rsyslog~]# setenforce 0 #使配置立即生效
LAMP环境部署:
一、安装apache
1、yum 安装依赖包gcc、gcc-c++、openssl-devel 、pcre 、pcre-devel
[root@rsyslog src]# yum install -y gcc gcc-c++ openssl-devel pcre pcre-devel
2、编译安装apr
[root@rsyslog src]# tar -zxf apr-1.5.2.tar.gz [root@rsyslog src]# cd apr-1.5.2[root@rsyslog apr-1.5.2]# ./configure --prefix=/usr/local/apr #配置安装路径[root@rsyslog apr-1.5.2]# make && make install #编译安装
3、编译安装apr-util
[root@rsyslog src]# tar -zxf apr-util-1.5.4.tar.gz [root@rsyslog src]# cd apr-1.5.4[root@rsyslog apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr #必须执行--with-apr 安装路径[root@rsyslog apr-util-1.5.4]# make && make install
4、编译安装Apache
[root@rsyslog src]# tar -zxf httpd-2.4.26.tar.gz[root@rsyslog src]]# cd httpd-2.4.20[root@rsyslog httpd-2.4.20]#./configure \--prefix=/usr/local/apache \ # 指定安装目录--sysconfdir=/etc/httpd \ # 指定配置文件安装路径--enable-so \ #允许运行时加载DSO模块--enable-ssl \ #启动ssl加密功能--enable-cgi \ # 启用cgi协议--enable-rewrite \ #启用URL重写功能--with-zlib \--with-pcre=/usr/ \ #指定pcre的安装路径 --with-apr=/usr/local/apr \--with-apr-util=/usr/local/apr-util \--enable-mods-shared=most \ #启用大多数共享模块--enable-mpms-shared=all \ #启用MPM所有参数--with-mpm=event #指定使用的MPM的类型 [root@rsyslog httpd-2.4.20]# make && make install #编译安装
5、复制服务脚本,让其可以使用service起停
[root@rsyslog httpd-2.4.20]# cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd #复制启动本到启动目录下[root@rsyslog httpd-2.4.20]# chmod 755 -R /etc/rc.d/init.d/httpd[root@rsyslog httpd-2.4.20]# vi /etc/httpd/httpd.conf #编辑httpd.conf文本在该行#ServerName www.example.com:80 下添加以下内容ServerName localhost:80:wq[root@rsyslog httpd-2.4.20]# service httpd start #启动httpd 服务
6、把httpd 服务添加到开机服务列表
[root@rsyslog httpd-2.4.20]# vi /etc/rc.d/init.d/httpd #编辑httpd 文本 ,支持chkconfig 添加服务#!/bin/bash #chkconfig:345 61 61 //添加此行,345参数表示,在哪些运行级别启动,启动序号(S61);关闭序号(K61)#description:Apache httpd //添加此行,必写,描述服务 :wq #保存退出[root@rsyslog httpd-2.4.20]# chkconfig --add httpd[root@rsyslog httpd-2.4.20]# chkconfig httpd on
7、验证apache安装 :
[root@rsyslog src]# curl http://localhost #验证安装<html><body><h1>It works!</h1></body></html>[root@rsyslog src]# chkconfig --listhttpd 0:关 1:关 2:开 3:开 4:开 5:开 6:关
至此 ,该Apache 服务安装完成 。
二、安装mysql
1、yum 安装依赖包 cmake ncurses bison
[root@rsyslog src]yum install -y cmake autocmake bison-devel ncurses-dvel ncurses bison make perl perl-devel curl-devel
2、添加用户、组,并建立mysql存储数据目录/data/mysql并分配权限
[root@rsyslog src]# groupadd mysql #添加mysql组[root@rsyslog src]# useradd mysql �Cg mysql -s /bin/nologin #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统[root@rsyslog src]# mkdir -p /data/mysql #创建MySQL数据库存放目录[root@rsyslog src]# chown -R mysql:mysql /data/mysql #设置MySQL数据库存放目录权限[root@rsyslog src]# chmod -R 755 /data/mysql [root@rsyslog src]# cd /usr/local/mysql #进入MySQL安装目录
3、编译安装msyql
[root@rsyslog src]# tar -zxf mysql-5.6.19.tar.gz[root@rsyslog src]# cd mysql-5.6.19[root@rsyslog mysql-5.6.19]# cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/data/mysql \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DEXTRA_CHARSETS=all \-DENABLED_LOCAL_INFILE=1 \-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DENABLE_DOWNLOADS=1[root@rsyslog mysql-5.6.19]# make && make install
4、初始化数据库
[root@rsyslog mysql-5.6.19]# cd /usr/local/mysql[root@rsyslog mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql--datadir=/data/mysql #生成mysql系统数据库 scripts/mysql_install_db 错误:提示/usr/bin/perl: 坏的解释器: 没有那个文件或目录解决:yum install -y perl-Module-Install.noarch
5、复制启动脚本,让其可以使用service起停
[root@rsyslog mysql-5.6.19]# cp ./support-files/mysql.server /rc.d/init.d/httpd #复制启动本到启动目录下[root@rsyslog mysql-5.6.19]# chmod 755 -R /etc/rc.d/init.d/mysqld[root@rsyslog mysql-5.6.19]# vi /etc/rc.d/init.d/mysqld #编辑启动mysqld文basedir=/usr/local/mysql #MySQL程序安装路径datadir=/data/mysql #MySQl数据库存放目录:wq! #保存退出[root@rsyslog mysql-5.6.19]# service mysqld start #启动[root@rsyslog mysql-5.6.19]# chkconfig mysqld on #加入开机启动列表[root@rsyslog mysql-5.6.19]# echo 'export PATH=$PATH:/usr/local/mysql/bin' >>/etc/profile #把mysql服务加入系统环境变量:在最后添加下面这一行export PATH=$PATH:/usr/local/mysql/bin[root@rsyslog mysql-5.6.19]# source /etc/profile #使配置立刻生效
6、调整文件权限
[root@rsyslog mysql-5.6.19]# chmod -R 755 /usr/local/mysql/[root@rsyslog mysql-5.6.19]# chown -R mysql:mysql /usr/local/mysql/ #分配读写权限及所属组权限
7、添加相关链接
[root@rsyslog mysql-5.6.19]# ln -s /usr/local/mysql/my.cnf /etc/my.cnf #添加到/etc目录的软连[root@rsyslog mysql-5.6.19]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock #添加软链接[root@rsyslog mysql-5.6.19]# mysql_secure_installation #设置Mysql密码,根据提示输入2次密码
8、验证mysql安装:
[root@rsyslog mysql]# mysql -u root -p #登陆确认Enter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 14Server version: 5.6.19 Source distributionCopyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.mysql> [root@rsyslog mysql]# chkconfig --list mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off[root@rsyslog mysql]# service mysqld status # 服务启动状态SUCCESS! MySQL running (3583)
至此 ,该Mysql 服务安装完成
三、安装PHP
1、yum 安装依赖包
[root@rsyslog src]# yum install -y libXpm-devel fontconfig-devel libvpx-devel libxml2-devel t1lib-devel bzip2-devel mysql-devel
2、安装php
[root@rsyslog src]# tar -zxf php-5.5.14.tar.gz #解压文件[root@rsyslog src]# cd cd php-5.5.14[root@rsyslog php-5.5.14]# ./configure --prefix=/usr/local/php --with-mysql=mysqlnd--with-openssl --with-mysqli=mysqlnd --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=/usr/local/libmcrypt/ --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts #编译 [root@rsyslog libgd-2.1.0]# make && make install #安装错误1:Sorry, I cannot run apxs. Possible reasons follow:1. Perl is not installed2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs3. Apache was not built using --enable-so (the apxs usage page is displayed)解决方法 :编译vi /usr/local/apache/bin/apxs 首行 #!/replace/with/path/to/perl/interpreter -w 修改为"#!/usr/bin/perl -w".
3、编辑apache脚本,让其可以支持php
[root@rsyslog php-5.5.14]# vi /etc/httpd/httpd.conf #编辑apache 脚本<1> 定位到/AddType 添加如下二行AddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps<2> 定位至DirectoryIndex index.html 修改为:DirectoryIndex index.php index.html[root@rsyslog php-5.5.14]# service httpd restart #重启apache 服务
4、验证编辑Apache的网页测试是否支持php:
[root@rsyslog php-5.5.14]# vi /usr/local/apache/htdocs/index.php #编辑apache 脚本 #登陆确认 编译写入代码:<?php phpinfo();?>
打开浏览器进行web测试访问http://localhost 弹出phpinfo() 页面 ,证明整体环境LAMP安装完成 。
本文出自 “Wish_亮” 博客,请务必保留此出处http://itwish.blog.51cto.com/11439802/1942068