热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LAMP搭建和配置

LAMP搭建和配置LAMP搭建和配置LAMP是由Linux,Apache,MySQL,PHP组成的,即把Apache、MySQL以及PHP安装在Linux系统上,组成一个环境来运行

LAMP搭建和配置

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

手动逐个编译安装各个组件,需要输入各种命令,且有可能会中途出错。
对于想要成功搭建 LAMP 建站环境来说,可以节约大量时间和精力。

LAMP 有什么优点?

LAMP 是最经典的建站环境之一,风靡世界十几年。
而本脚本只需几个简单交互,选择需要安装的包,即可一路安装,无人值守。

安装MySQL:

(1)MySQL介绍

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

LAMP环境搭建与配置_配置_02

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

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

LAMP环境搭建与配置_linux_03

LAMP环境搭建与配置_lamp_04

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

LAMP环境搭建与配置_linux_05

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

LAMP环境搭建与配置_linux_06

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

LAMP环境搭建与配置_linux_07

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

LAMP环境搭建与配置_lamp_08

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

LAMP环境搭建与配置_linux_09

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

​ 使用之前的命令检查MySQL是否启动了: LAMP环境搭建与配置_配置_10

安装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 $?看看是否执行成功!)

LAMP环境搭建与配置_linux_11

​ 错误提示很明显了,缺少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

​ 可能报错:

LAMP环境搭建与配置_配置_12

​ 缺少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

​ 可能报错:

LAMP环境搭建与配置_配置_13

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

LAMP环境搭建与配置_linux_14

​ 说明:缺少了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 install1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.

​ ⑤安装完成后,查看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 -M1.2.3.4.5.

安装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

可能报错:

LAMP环境搭建与配置_linux_15

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

LAMP环境搭建与配置_配置_16

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

LAMP环境搭建与配置_lamp_17

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

LAMP环境搭建与配置_lamp_18

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

LAMP环境搭建与配置_linux_19

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

LAMP环境搭建与配置_配置_20

解决办法: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 />
AllowOverride none
Require all granted
</Directory>1.2.3.4.

​ 在AddType增加一行:

LAMP环境搭建与配置_lamp_21

LAMP环境搭建与配置_lamp_22

测试LAMP是否成功:

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

LAMP环境搭建与配置_lamp_23

(2)启动apache服务

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vxtQe7mE-1635938949459)(https://s4.51cto.com//images/20180310/1520660651503515.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)]

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

LAMP环境搭建与配置_lamp_25

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

​ 添加测试php脚本!

LAMP环境搭建与配置_lamp_26

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

httpd配置:

(1)默认虚拟主机

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

LAMP环境搭建与配置_lamp_27

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

LAMP环境搭建与配置_lamp_28

​ 这样一个***就是一个虚拟主机了。

​ 还要创建网站目录呢

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

LAMP环境搭建与配置_lamp_29

(2)用户认证

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

LAMP环境搭建与配置_linux_30

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

LAMP环境搭建与配置_linux_31

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lT2yisfT-1635938949463)(https://s4.51cto.com//images/20180310/1520671720749159.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)]LAMP环境搭建与配置_linux_33

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

LAMP环境搭建与配置_配置_34

LAMP环境搭建与配置_配置_35

​ 效果:

LAMP环境搭建与配置_配置_36

(3)配置域名跳转

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

​ 在站点加入下面的代码

LAMP环境搭建与配置_linux_37

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

LAMP环境搭建与配置_lamp_38

​ 验证是否开启:

LAMP环境搭建与配置_配置_39

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

LAMP环境搭建与配置_lamp_40

(4)配置访问日志

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

LAMP环境搭建与配置_配置_41

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

LAMP环境搭建与配置_lamp_42

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

LAMP环境搭建与配置_配置_43

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

​ 在站点的配置文件vhost中加入过滤代码:LAMP环境搭建与配置_lamp_44

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

​ 修改vhost:

LAMP环境搭建与配置_linux_45

LAMP环境搭建与配置_配置_46

(6)配置防盗链

LAMP环境搭建与配置_lamp_48

(7)访问控制

​ ①通过限制IP访问

​ 修改vhost配置文件:

LAMP环境搭建与配置_配置_49

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

LAMP环境搭建与配置_linux_50

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

​ 同样是修改vhost

LAMP环境搭建与配置_配置_51

​ 效果:

LAMP环境搭建与配置_配置_52

​ ③针对user_agent来做访问控制

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

LAMP环境搭建与配置_配置_53

​ 效果:(curl -A指定user_agent)

LAMP环境搭建与配置_lamp_54

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

LAMP环境搭建与配置_配置_55

LAMP环境搭建与配置_lamp_56

PHP配置:

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

LAMP环境搭建与配置_lamp_57

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

LAMP环境搭建与配置_linux_58

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

LAMP环境搭建与配置_配置_59

​ (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 = Off1.2.3.4.5.

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

LAMP环境搭建与配置_配置_60

​ (4)配置open_basedir

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

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

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

LAMP环境搭建与配置_配置_61

​ (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

​ 报错:LAMP环境搭建与配置_lamp_62

​ 安装:yum install -y autoconf

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

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

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

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

phpredis-develop/ ; /usr/local/php/bin/phpize

​ 报错:[外链图片转存中…(img-MkyLdw27-1635938949474)]

​ 安装:yum install -y autoconf

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

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

​ ⑤查看安装的模块文件: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


推荐阅读
  • 本文详细介绍了在 Windows 7 上安装和配置 PHP 5.4 的 Memcached 分布式缓存系统的方法,旨在减少数据库的频繁访问,提高应用程序的响应速度。 ... [详细]
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • PHP网站部署指南:从零开始搭建PHP网站
    本文提供了详细的步骤指导,帮助开发者在不同环境下成功部署PHP网站,包括在IIS和Apache服务器上的具体操作。 ... [详细]
  • 深入探讨Web服务器与动态语言的交互机制:CGI、FastCGI与PHP-FPM
    本文详细解析了Web服务器(如Apache、Nginx等)与动态语言(如PHP)之间通过CGI、FastCGI及PHP-FPM进行交互的具体过程,旨在帮助开发者更好地理解这些技术背后的原理。 ... [详细]
  • 对于初次购买阿里云服务器的新手用户来说,如何高效地利用服务器资源并成功部署网站是一个重要的课题。本文将详细指导您完成从购买服务器到网站上线的六个关键步骤。 ... [详细]
  • 本文档提供了首次周测的答案解析,涵盖特殊符号、命令作用、路径说明以及实战练习等内容。 ... [详细]
  • PHP 5.4.8 编译安装指南
    本文详细介绍了如何在Linux环境下编译安装PHP 5.4.8,并配置为FastCGI模式运行。包括所需依赖包的安装、源代码下载、编译配置及启动服务等步骤。 ... [详细]
  • Minetest 0.4.9 开源游戏在 Ubuntu 下通过 PPA 安装指南
    本文介绍了如何在 Ubuntu 系统上安装最新版本的 Minetest 0.4.9,包括添加 PPA、更新软件包列表以及安装过程,适合所有 Ubuntu 及其衍生系统的用户。 ... [详细]
  • UMPlatForm.NET 5.1 版本数据字典管理功能解析
    本文介绍了 UMPlatForm.NET 5.1 版本中的数据字典管理模块,探讨了该模块如何支持平台的数据共享与管理,以及如何通过用户和角色权限来增强系统的安全性。 ... [详细]
  • 本文介绍了多种Eclipse插件,包括XML Schema Infoset Model (XSD)、Graphical Editing Framework (GEF)、Eclipse Modeling Framework (EMF)等,涵盖了从Web开发到图形界面编辑的多个方面。 ... [详细]
  • 本文介绍了如何将Linux系统中的YUM源更换为阿里云镜像源,包括网络连通性测试、原YUM源的移除、阿里云YUM源的配置以及缓存的更新等步骤。 ... [详细]
  • GCC(GNU Compiler Collection)是GNU项目下的一款功能全面且高效的多平台编译工具,广泛应用于Linux操作系统中。本文将详细介绍GCC的特点及其基本使用方法。 ... [详细]
  • 本文详细介绍了Oracle RMAN中的增量备份机制,重点解析了差异增量和累积增量备份的概念及其在不同Oracle版本中的实现。通过对比两种备份方式的特点,帮助读者选择合适的备份策略。 ... [详细]
  • 构建Python自助式数据查询系统
    在现代数据密集型环境中,业务团队频繁需要从数据库中提取特定信息。为了提高效率并减少IT部门的工作负担,本文探讨了一种利用Python语言实现的自助数据查询工具的设计与实现。 ... [详细]
  • 一键LNMP配置SSL证书实现全站HTTPS访问
    许多网站搭建者选择了便捷的一键LNMP安装包,但在网站部署完成后,配置SSL证书以支持HTTPS访问是一个不可或缺的步骤。本文将详细介绍如何通过简单的步骤完成这一过程。 ... [详细]
author-avatar
卸妆乳123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有