阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

LAMP环境搭建与配置

540次阅读
没有评论

共计 7847 个字符,预计需要花费 20 分钟才能阅读完成。

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

    LAMP 环境搭建与配置

下面来介绍如何构建 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

                LAMP 环境搭建与配置

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

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

            LAMP 环境搭建与配置 

            LAMP 环境搭建与配置

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

            LAMP 环境搭建与配置

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

            LAMP 环境搭建与配置

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

            LAMP 环境搭建与配置

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

            LAMP 环境搭建与配置

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

            LAMP 环境搭建与配置

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

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

安装 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 环境搭建与配置

                错误提示很明显了,缺少 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 环境搭建与配置

                缺少 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 环境搭建与配置

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

        LAMP 环境搭建与配置

        说明:缺少了 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

    可能报错:

    LAMP 环境搭建与配置

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

    LAMP 环境搭建与配置

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

    LAMP 环境搭建与配置

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

    LAMP 环境搭建与配置

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

    LAMP 环境搭建与配置

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

    LAMP 环境搭建与配置

    解决办法: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 环境搭建与配置

        LAMP 环境搭建与配置

测试 LAMP 是否成功:

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

        LAMP 环境搭建与配置

(2)启动 apache 服务

        LAMP 环境搭建与配置

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

        LAMP 环境搭建与配置

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

        添加测试 php 脚本!

        LAMP 环境搭建与配置

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

httpd 配置:

    (1)默认虚拟主机

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

            LAMP 环境搭建与配置

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

            LAMP 环境搭建与配置

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

            还要创建网站目录呢

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

             LAMP 环境搭建与配置

    (2)用户认证

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

            LAMP 环境搭建与配置

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

            LAMP 环境搭建与配置

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

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

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

            LAMP 环境搭建与配置

            LAMP 环境搭建与配置

            效果:

            LAMP 环境搭建与配置

    (3)配置域名跳转

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

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

            LAMP 环境搭建与配置

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

            LAMP 环境搭建与配置

            验证是否开启:

            LAMP 环境搭建与配置

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

            LAMP 环境搭建与配置

  (4)配置访问日志

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

            LAMP 环境搭建与配置

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

            LAMP 环境搭建与配置

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

LAMP 环境搭建与配置

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

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

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

            修改 vhost:

            LAMP 环境搭建与配置

            LAMP 环境搭建与配置

(6)配置防盗链

            LAMP 环境搭建与配置

            LAMP 环境搭建与配置

(7)访问控制

            ①通过 限制 IP 访问

            修改 vhost 配置文件:

            LAMP 环境搭建与配置

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

            LAMP 环境搭建与配置

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

            同样是修改 vhost

            LAMP 环境搭建与配置

            效果:

            LAMP 环境搭建与配置

            ③针对user_agent 来做访问控制

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

            LAMP 环境搭建与配置

            效果:(curl - A 指定 user_agent)

            LAMP 环境搭建与配置

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

            LAMP 环境搭建与配置

            LAMP 环境搭建与配置

PHP 配置:

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

LAMP 环境搭建与配置

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

        LAMP 环境搭建与配置

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

     LAMP 环境搭建与配置

(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
 

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

            LAMP 环境搭建与配置

(4)配置 open_basedir

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

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

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

            LAMP 环境搭建与配置

(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 环境搭建与配置

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

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计7847字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7995511
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装 2026 年最强个人助理 ClawdBot、完整安装教程 一、前言 学不完,根本学不完!近期,一款名...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...