zoukankan      html  css  js  c++  java
  • LAMP环境搭建与配置

    • 基本概念

    LAMP是 Linux  Apache  MySQL  PHP 的简写,LAMP一般用来组件Web应用平台

    Apache是最常用的Web服务软件。

    MySQL是小型的数据库软件。

    PHP是主要用于服务器端的应用程序软件,是一种脚本语言。

    注意:Apache和PHP必须装在一台机器上,因为PHP是作为Apache的一个模块存在的。

    • 安装MySQL
    # 源码包不区分平台,二进制包是区分平台的
    # CentOS 7之前是区分32位和64位的,CentOS 7开始都是64位
    
    uname -i         # 查看Linux是多少位的

    1)下载源码包或免编译二进制包

    cd /usr/local/src           # 所有软件包都放到这一目录下
    wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz  # 下载二进制包

    2)初始化

    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 # 若该目录已存在则重命名
    mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql      # 挪动位置
    
    useradd -s /sbin/nologin mysql      # 不能用mysql用户登录系统,只能用来启动mysql数据库
    cd /usr/local/mysql
    mkdir -p /data/mysql    # 创建datadir,数据库文件会放到这里
    chown -R mysql:mysql /data/mysql    # 更改权限,不更改后续操作就会出问题
    
    ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
    # 如提示错误信息“please install the following Perl modules before ...”
    # 使用命令 yum install -y perl-Module-Install 来安装它

    3)配置MySQL

    # 1)复制并编辑配置文件
    cp support-files/my-default.cnf /etc/my.cnf
    vim /etc/my.cnf
    # 2)配置文件改成如下内容
    [mysqld]
    
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    innodb_buffer_pool_size = 128M
    
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    
    # These are commonly set, remove the # and set as required.
    basedir = /usr/local/mysql
    datadir = /data/mysql
    port = 3306
    server_id = 128             # 这个参数用在做主从配置,后续会介绍
    socket = /tmp/mysql.sock    # 定义MySQL服务监听的socket套接字地址
    
    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    join_buffer_size = 128M         # 这3个buffer是关于内存的配置参数,保持默认即可
    sort_buffer_size = 2M
    read_rnd_buffer_size = 2M
    
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    # 3)复制启动脚本并修改其属性
    cp support-files/mysql.server /etc/init.d/mysqld
    chmod 755 /etc/init.d/mysqld
    vim !$
    # 启动脚本续修改的内容如下
    basedir=/usr/local/mysql
    datadir=/data/mysql
    # 4)将启动脚本加入系统服务项,并将其设为开机启动
    chkconfig --add mysqld      # 把mysqld加到系统服务列表中
    chkconfig mysqld on         # 使其开机启动
    service mysqld start        # 启动mysqld服务
    
    ps aux |grep mysqld         # 查看进程
    netstat -lnp |grep 3306     # 查看3306端口监听情况
    • 安装Apache
    # 1)下载并解压源码包
    cd /usr/local/src       # httpd是依赖apr和apr-util的
    wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
    wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz
    wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.33.tar.gz
    
    tar zxvf apr-1.6.3.tar.gz
    tar zxvf apr-util-1.6.1.tar.gz
    tar zxvf httpd-2.4.33.tar.gz
    # 2)安装apr和apr-util
    cd /usr/local/src/apr-1.6.3
    ./configure --prefix=/usr/local/apr     # --prefix制定安装目录
    make && make install 
    
    cd /usr/local/src/apr-util-1.6.1
    ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
    make && make install 
    # 安装apr-util时如出现错误“libtool: link: cannot find the library ...”
    # 解决办法是: yum install -y expat-devel
    # 3)继续安装httpd
    
    cd /usr/local/src/httpd-2.4.33
    
    ./configure 
        --prefix=/usr/local/apache2.4 
        --with-apr=/usr/local/apr 
        --with-apr-util=/usr/local/apr-util 
        --enable-so            # 表示启用DSO,DSO是把某些功能以模块的形式展现出来
        --enable-mods-shared=most       # 以共享方式安装大多数功能模块,安装后会在modules目录下看到这些文件
    
    yum install -y pcre pcre-devel      # 为避免make出错,提前安装好一些库文件
    
    make
    make install 
    echo $?

    # ls /usr/local/apache2.4/modules/    # .so文件就是模块,之前定义了most参数,所以会有这么多模块
    # /usr/local/apache2.4/bin/apachectl -M # 查看已加载的模块
    • 安装PHP
    # 1)下载并解压源码包
    
    cd /usr/local/src
    wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2
    tar jxvf php-5.6.32.tar.bz2
    # 2)配置编译参数
    
    cd php-5.6.32
    ./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 
        # apxs为httpd的一个工具,因为有它才会自动把PHP模块安装到httpd的modules目录下
        # 以上4个参数为必选
        # 下面的参数比较常用,没特殊要求直接使用这些参数即可,也可根据具体需要的功能来来选择所需参数
        --with-libxml-dir 
        --with-gd 
        --with-jpeg-dir 
        --with-png-dir 
        --with-freetype-dir 
        --with-iconv-dir 
        --with-zlib-dir 
        --with-bz2 
        --with-openssl 
        --enable-soap 
        --enable-gd-native-ttf 
        --enable-mbstring 
        --enable-sockets 
        --enable-exif
    # 配置编译参数时可能会遇到如下错误,请执行对应的操作
    '''
    configure: error: xml2-config not found. Please check your libxml2 installation.
    '''
    yum install -y libxml2-devel
    
    '''
    configure: error: Cannot find OpenSSL's <evp.h>
    '''
    yum install -y openssl openssl-devel
    
    '''
    configure: error: Please reinstall the BZip2 distribution
    '''
    yum install -y bzip2 bzip2-devel
    
    '''
    configure: error: png.h not found
    '''
    yum install -y libpng libpng-devel
    
    '''
    configure: error: freetype.h not found
    '''
    yum install -y freetype freetype-devel
    
    '''
    configure: error: mcrypt.h not found. Please reinstall libmcrypt
    '''
    yum install -y epel-release
    yum install -y libmcrypt-devel
    # CentOS默认的yum源没有libmcrypt-devel这个包,所以只能借助epel yum扩展源
    # 3)编译和安装并复制配置文件
    
    make
    make install
    # make时间会在5分钟以上,执行echo $?查看make是否成功,如有报错,安装缺少的库即可
    
    copy php.ini-production /usr/local/php/etc/php.ini      # 复制配置文件
    • 配置httpd支持PHP
    # httpd的主配置文件为/usr/local/apache2.4/conf/httpd.conf,编辑该文件
    vim /usr/local/apache2.4/conf/httpd.conf
    
    # 1)搜索ServerName,把#ServerName www.exaple.com:80前面的井号删除
    ServerName www.example.com:80
    
    # 2)搜索Require,将Require all denied 改为Require all granted
    <Directory />
        AllowOverride none
        Require all granted
    </Directory>
    # 改它的目的是允许所有请求,否则访问时会报403错误
    
    # 3)搜索AddType application/x-gzip .gz .tgz,在该行下面添加一行
    AddType application / x - compress.Z
    AddType application / x - gzip.gz.tgz
    AddType application / x - httpd - php.php
    
    # 4)搜索DirectoryIndex index.html,将其改为DirectoryIndex index.html index.php
    <IfModule dir_module>
        DirectoryIndex index.html index.php
    </IfModule>
    • 测试LAMP是否成功

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

    # 启动httpd之前要先检验配置文件是否正确,如正确会显示"Syntax OK"
    /usr/local/apache2.4/bin/apachectl -t
    
    # 启动httpd
    /ust/local/apache2.4/bin/apachectl start
    
    # 查看httpd是否启动
    netstat -lnp |grep httpd        # 显示如下表示OK
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      31881/httpd
    
    # 也可使用curl命令来测试
    curl localhost      # 显示如下表示OK
    <html><body><h1>It works!</h1></body></html>

    2)测试是否正确解析PHP

    # 编写如下测试脚本
    vim /usr/local/apache2.4/htdocs/1.php   # 写入如下内容
    <?php
        echo "php is OK";
    ?>
    
    # 保存脚本后继续测试
    curl localhost/1.php        # 显示如下说明PHP解析正确
    php is OK
    • LAMP环境配置
    '''
    LAMP环境搭建好后,其实仅仅是安装上了软件,还有很多集体的配置要做。包括httpd配置和PHP配置,如下:
    
    1. httpd配置
        1.1 默认虚拟主机
        1.2 用户认证
        1.3 域名跳转
        1.4 访问日志
        1.5 静态元素过期时间
        1.6 防盗链
        1.7 访问控制
    2. PHP配置
        2.1 disable_functions
        2.2 error_log
        2.3 open_basedir
    
    # 详细配置命令,请听下回分解! 
    
    '''
  • 相关阅读:
    GDB调试汇编堆栈过程分析
    20145335郝昊 《信息安全系统设计基础》第11周学习总结
    20145335郝昊 《信息安全系统设计基础》第10周学习总结
    信息安全系统设计基础》实验五实验报告
    《信息安全系统设计基础》实验四实验报告
    《信息安全系统设计基础》实验二实验报告
    20145335郝昊 《信息安全系统设计基础》第9周学习总结
    20145335《信息安全系统设计基础》实验一实验报告
    20145335郝昊 《信息安全系统设计基础》期中总结
    20145334 《信息安全系统设计基础》第十二周学习总结
  • 原文地址:https://www.cnblogs.com/karl-python/p/9094126.html
Copyright © 2011-2022 走看看