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

LAMP环境搭建与配置

245次阅读
没有评论

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