LAMP环境搭建与配置

LAMP是Linux  Apache  MySQL  PHP的缩写,即把Apache、MySQL以及PHP安装在Linux系统上,组成一个环境来运行PHP的脚本语言。Apache是最常用的Web服务软件,而MySQL是比较小型的数据库软件。三个角色可以安装在一台机器上,也可以分开(但httpd和php要在一起的)

下面来介绍如何构建LAMP环境:

安装MySQL:(Mariadb安装几乎一样)

(1)MySQL/Mariadb介绍

MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购(10亿刀),2009年sun公司被oracle公司收购(74亿刀)

MySQL官网https://www.mysql.com  最新版本5.7GA/8.0DMR

MySQL5.6变化比较大,5.7性能上有很大提升

Mariadb为MySQL的一个分支,官网https://mariadb.com/最新版本10.2

MariaDB主要由SkySQL公司(现更名为MariaDB公司)维护,SkySQL公司由MySQL原作者带领大部分原班人马创立.

Mariadb5.5版本对应MySQL的5.5,10.0对应MySQL5.6

Community 社区版本,Enterprise 企业版,GA(Generally Available)指通用版本,在生产环境中用的,DMR(Development Milestone Release)开发里程碑发布版,RC(Release Candidate)发行候选版本,Beta开放测试版本,Alpha内部测试版本

(2)MySQL安装过程:

①下载源码包到/usr/local/src/目录下:

进入该目录:cd /usr/local/src/

下载源码包:wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz

②解压,然后挪动位置/usr/local/mysql

解压:tar -zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz

[ -d /usr/local/mysql ] && mv /usr/local/mysql /usr/local/mysql_old    这一步意思:是否存在mysql目录了,有的话,修改就mysql目录名称!

挪动位置:mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql

③创建MySQL用户,启动MySQL需要该用户:useradd -s /sbin/nologin mysql

④创建MySQL数据库文件存放目录/data/mysql并更改权限:mkdir -p /data/mysql;    chown -R mysql:mysql /data/mysql;

⑤进入/usr/local/mysql目录,初始化:./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

这里会出现FATAL ERROR报错,这是因为缺少perl包导致的,我们yum安装就好了:yum install -y perl-Module-Install

安装完成后,重新执行上一条命令;接下来你会看见两个OK,并且会在/data/mysql目录下生成了几个文件和目录,说明执行成功了。或者echo $?查看是否成功!

⑥复制配置文件:cp support-files/my-default.cnf /etc/my.cnf;    (因为系统默认有my.cnf文件,所以会提示覆盖)

⑦修改配置文件:vim /etc/my.cnf

⑧复制启动脚本,并修改其属性

⑨修改启动脚本:vim /etc/init.d/mysqld

⑩到这里安装就完成了,接下来就是启动和检查了

从上图看见已经是启动成功了,还提示了mysql错误日志文件。

使用之前的命令检查MySQL是否启动了:          

安装Apache:

(1)Apache介绍

Apache是一个基金会的名字,httpd才是我们要安装的软件包,早期它的名字就叫apache;Apache官网www.apache.org

(2)Apache安装过程

①下载源码包存放在/usr/local/src/:

进入src目录:cd /usr/local/src

下载源码包以及两个依赖包:

httpd:wget http://mirrors.sohu.com/apache/httpd-2.4.29.tar.gz

apr:wget http://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.6.3.tar.gz

apr-util:wget http://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz

②解压

tar -zxvf apr-1.6.3.tar.gz

tar -zxvf apr-util-1.6.1.tar.gz

tar -zxvf httpd-2.4.29.tar.gz

③安装依赖库,如果不安装这两个依赖,httpd2.4就无法工作(如果是httpd2.2是不用手动安装的)

安装apr:

cd /usr/local/src/apr-1.6.3

./configure --prefix=/usr/local/apr

make && make install

可能出错:(友情提示:安装软件时,最好没执行一步,就echo $?看看是否执行成功!)

错误提示很明显了,缺少gcc包;那我们就yum安装:yum install -y gcc;安装完成后,重新执行上面的命令!

安装apr-util:

cd /usr/local/src/apr-util-1.6.1

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

make && make install

可能报错:

缺少expat.h文件,yum安装:yum install -y expat-devel;安装完成后,重新执行上面的命令!

④安装httpd:

cd /usr/local/src/httpd-2.4.29

./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/lcal/apr-util --enable-so --enable-mods-shared=most

make && make install

可能报错:

解决办法:yum install -y pcre pcre-devel

说明:缺少了xml相关的库,需要安装libxml2-devel包。直接安装并不能解决问题,因为httpd调用的apr-util已经安装好了,但是apr-util并没有libxml2-devel包支持

解决办法:

    # 安装libxml2-devel包
    yum install -y libxml2-devel
    # 删除apr-util安装目录,并重新编译安装
    rm -rf /usr/local/apr-util   
    cd /usr/local/src/apr-util-1.6.1 
    # 这一步很重要,必须清除之前配置时的缓存
    make clean 
    ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
    make && make install
    
    # 重新编译安装httpd
    cd /usr/local/src/httpd-2.4.29
    # 同样要清理之前的缓存十分重要
    make clean
    ./configure --prefix=/usr/local/apache2.4  --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
    make && make install

⑤安装完成后,查看httpd的木目录结构和modules目录下的模块文件:

    ls /usr/local/apache2.4/
    bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  man  manual  modules
    ls /usr/local/apache2.4/modules/
    # 查看已经加载了哪些模块
    /usr/local/apache2.4/bin/apachectl -M

安装PHP:

(1)下载源码包/usr/local/src/:wget http://mirrors.sohu.com/php/php-5.6.9.tar.gz

(2)解压:tar -zxvf php-5.6.9.tar.gz

(3)配置编译参数:

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc  --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif

(4)编译和安装:make && make install

可能报错:

解决办法:yum install -y openssl openssl-devel

解决办法:yum install -y bzip2 bzip2-devel

解决办法:yum install -y libjpeg libjpeg-devel

解决办法:yum install -y libpng libpng-devel

解决办法:yum install -y lfreetype freetype-devel

解决办法:yum install -y epel-release libmcrypt-devel

(5)最后是复制配置文件:cp php.ini-production /usr/local/php/etc/php.ini

配置httpd支持PHP:

(1)修改httpd主配置文件/usr/local/apache2.4/conf/httpd.conf

搜索ServerName,删除前面的 '#'

找到<Directory />,修改成

    <Directory />
       AllowOverride none
       Require all granted
    </Directory>

在AddType增加一行:

测试LAMP是否成功:

(1)测试配置文件是否正确

(2)启动apache服务

(3)使用curl命令简单测试:

(4)测试是否正确解析php

添加测试php脚本!

到这里,LAMP环境就搭建好了,下面熟悉一下httpd的配置!

httpd配置:

(1)默认虚拟主机

编辑httpd配置文件httpd.conf:vim /usr/local/apache2.4/conf/httpd.conf

然后编辑虚拟主机的配置文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

这样一个<VirtualHost>***</VirtualHost>就是一个虚拟主机了。

还要创建网站目录呢

        mkdir -p /data/www/default.com
        echo "This is the default site." > /data/www/default.com/index.html

(2)用户认证

编辑httpd配置文件httpd.conf:vim /usr/local/apache2.4/conf/httpd.conf

接下来就是创建密码文件:(-c为create, -m为MD5加密;第二次就不用-c了,否则会清空密码文件)

用户认证效果:(当然你需要在本机的hosts文件加入虚拟机的IP和default.com才能在浏览器访问了)

当然你也可以对网站的文件进行用户认证了,新建了一个站点进行文件的用户认证。

效果:

(3)配置域名跳转

编辑httpd配置文件httpd.conf:vim /usr/local/apache2.4/conf/httpd.conf

在<VirtualHost>站点加入下面的代码

当然还需要去httpd主配置文件,打开rewrite模块

验证是否开启:

配置完成后,使用curl进行测试

  (4)配置访问日志

定义访问日志的格式在主配置文件httpd.conf

继续修改vhost配置文件:(默认是common,我们现在修改成combined)

当有访问时,会产生日志文件:(记录的信息明显变多了)

日志过滤掉图片、js、css等静态文件,节约磁盘容量,并且做日志切割,一天一个文件!

在站点的配置文件vhost中加入过滤代码:

(5)配置静态元素过期时间

修改vhost:

(6)配置防盗链

(7)访问控制

①通过限制IP访问

修改vhost配置文件:

效果:(192.168.159.131和127.0.0.1都是本机IP)

②也可以针对某个文件做限制

同样是修改vhost

效果:

③针对user_agent来做访问控制

修改vhost:(OR:或者;NC:不区分大小写;F:Forbidden)

效果:(curl -A指定user_agent)

④上传目录禁止解析php代码

PHP配置:

(1)查看php配置文件所在路径:/usr/local/php/bin/php -i |grep -i "loaded configaration file"

设置时区:vim /usr/local/php/etc/php.ini

(2)禁用一些php内置的危险函数

(3)配置日志error_log

打开php配置文件php.ini:vim /usr/local/php/etc/php.ini

        # 修改一下的设置项
        log_errors = On
        error_log = /var/log/php/php_errors.log
        error_reporting = E_ALL & ~E_NOTICE
        display_errors = Off

然后创建错误日志存放目录,并修改权限

(4)配置open_basedir

open_basedir的作用是将网站限定在指定的目录里,万一一个站点被黑了,也不会影响其他的站点。

如果直接在php配置文件设置open_basedir参数的,就是所有的站点都定义在一起了,起不到open_basedir的作用。

下面介绍在每个站点的独立虚拟主机上配置open_absedir:

(5)PHP动态扩展模块安装

查看php加载了哪些功能模块:

/usr/local/php/bin/php -m

安装php的redis扩展模块:

①下载模块:wget https://codeload.github.com/phpredis/phpredis/zip/develop

②重命名:mv develop phpredis-develop.zip; 解压:unzip phpredis-develop.zip

③生成可执行文件:cd phpredis-develop/ ;   /usr/local/php/bin/phpize

报错:

安装:yum install -y autoconf

④编译安装 三部曲:./configure    make   make install

        ./configure --with-php-config=/usr/local/php/bin/php-config
        make && make install

⑤查看安装的模块文件:ls /usr/local/php/lib/php/extensions/no-debug-zts-20131226/

⑥编辑php配置文件:echo "extension = redis.so" >> /usr/local/php/etc/php.ini

⑦检验:/usr/local/php/bin/php -m|grep redis

原文地址:http://blog.51cto.com/11924224/2084994

时间: 2024-08-02 11:40:34

LAMP环境搭建与配置的相关文章

新版LAMP环境搭建

新版LAMP环境搭建 注意:先安装MySQL和Apache,后安装PHP,因为PHP配置编译的时候需要指定mysql路径和apache路径. 编译安装: httpd-2.4.12.tar.gz +  mysql-5.6.22-linux-glibc2.5-x86_64.tar.gz  +  php-5.4.39.tar.gz + xcache-2.0.0.tar.gz 实验环境:               CentOS 6.5 x86_64 编译安装Apache (1)构建MPM为静态模块 在

[LAMP环境搭建二]MySQL安装

安装前准备工作:[[email protected] src]# yum -y install bison bison-devel ncurses ncurses-devel openssl openssl-devel cmake下载安装http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz wgettar -zxvfcd./bootstrapgmakegmake install/********************************

LAMP环境搭建教程

学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP.WAMP.MAMP等.这里我介绍一下LAMP环境的搭建,即Linux.Apache.MySQL.PHP环境. 一.首先安装操作系统 操作系统:centos6.3 IP地址:192.168.146.129 网关: DNS: 操作系统安装步骤,此处不在给出截图. 备注:服务器系统采用最小化安装,安装一下GCC编译工具和一个桌面即可.如下图所示: 二.LAMP安装前的准备 1.获取软件包 httpd-2.4.2.ta

LAMP 环境搭建 C7

#LAMP环境搭建Centos 7        (1)安装开发包组 "Development Tools" "Server Platform Development"    yum groupinstall            注:关闭selinux iptables(2)安装amp    (a)yum install httpd php  php-mysql mariadb mod_ssl        (b)https://xcache.lighttpd.n

LAMP环境搭建(源码包安装,仅测试)

linux系统+Apache服务+MySQL数据库+PHP 安装顺序:PHP要在最后安装 首先将安装包上传到/root目录下 链接:http://pan.baidu.com/s/1nvbWEk5 密码:9r9w ************************************************************************************************************************************************

lamp环境搭建(ubuntu)

系统:Ubuntu14.04 方法一.最简单的在线安装 (参考网址:http://os.51cto.com/art/201307/405333.htm) 具体过程: [1]打开终端,执行命令 # sudo apt-get install lamp-server^ 注意:不要丢掉末尾的^号,否则命令不执行. 然后根据提示选择同意(y),设置MySQL的密码.. .直至安装过程自动结束,就可以把所有依赖的包都下载安装上. [2]测试与进一步配置 (2-1)测试Apache服务器,打开浏览器,输入地址

Centos7下的LAMP环境搭建

参考网站:http://www.cnblogs.com/mchina/archive/2012/05/17/2507102.html http://www.osyunwei.com/archives/5910.html http://www.luoxiao123.cn/centos-yum-lnmp.html http://blog.sina.com.cn/s/blog_66ac09390101ivep.html Centos7.0   lamp环境搭建 CentOS 7.0默认使用的是fire

基于LAMP环境搭建Discuz

========================写在前面的话========================= 1.LAMP环境搭建请查看这篇日志:http://blog.163.com/wangke_email/blog/static/150335003201610315142268/ 2.这只是一篇简单的Discuz安装教程,深入内容以后会讲到. 3.Discu-3.2下载路径:http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_UT

[LAMP环境搭建三]PHP安装

****说明:先全部看一遍,再开始安装**** 获取PHP源码包 http://cn2.php.net/get/php-5.5.10.tar.gz/from/this/mirrorwget 安装libxml2:wget ftp://xmlsoft.org/libxml2/libxml2-2.9.1.tar.gz./configure --prefix=/usr/local/libxml2# yum -y install python-devel 安装zlib:wget http://zlib.n