• centos7搭建LAMP


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

    步骤一、安装Mysql

    1)下载源码包到/usr/local/src/目录

    [root@localhost lamp]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

    2)解压源码包

    [root@localhost lamp]# tar -zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

    3)检测/usr/local/目录下有没有mysql这个文件夹,有的话修改名字为mysql_old

    [root@localhost lamp]# [ -d /usr/local/mysql ] && mv /usr/local/mysql /usr/local/mysql_old

    4)移动解压后的mysql到/usr/local目录下

    [root@localhost lamp]# mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql

    5)创建MySQL用户,启动MySQL需要该用户

    [root@localhost lamp]# useradd -s /sbin/nologin mysql

    6)创建MySQL数据库文件存放目录/data/mysql并更改权限

    [root@localhost ~]# mkdir -p /data/mysql
    [root@localhost ~]# chown -R mysql:mysql /data/mysql/

    7)进入/usr/local/mysql目录,初始化

    [root@localhost ~]# cd /usr/local/mysql/
    [root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

    报错

    解决方法:yum install perl gcc kernel-devl

    报错

    解决方法:yum install -y perl-Module-Install

    报错

    解决方法:yum install libaio* -y

    8)安装完成后执行echo $?  输出结果为0,则表示初始化成功

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

    [root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf

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

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

    [root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld

    [root@localhost mysql]# chmod 755 /etc/init.d/mysqld

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

    13)启动服务

    [root@localhost mysql]# chkconfig --add mysqld    加入系统服务列表
    [root@localhost mysql]# chkconfig  mysqld on        设置开机自启
    [root@localhost mysql]# service mysqld start        启动服务
    ln -s /usr/local/mysql/bin/mysql /usr/bin

    14)检查是否启动成功

    [root@localhost mysql]# ps aux | grep mysqld

    步骤二、安装Apache

     1)下载源码包与两个必须的依赖包

    [root@localhost lamp]# wget http://mirrors.sohu.com/apache/httpd-2.4.37.tar.gz              
    [root@localhost lamp]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.6.5.tar.gz
    [root@localhost lamp]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz

    2)解压三个包

    [root@localhost lamp]# tar -zxvf apr-1.6.5.tar.gz
    [root@localhost lamp]# tar -zxvf apr-util-1.6.1.tar.gz
    [root@localhost lamp]# tar -zxvf httpd-2.4.37.tar.gz

    3)安装apr(友情提示:安装软件时,最好每执行一步,就echo $?看看是否执行成功!)

    [root@localhost apr-1.6.5]# cd apr-1.6.5
    [root@localhost apr-1.6.5]# ./configure --prefix=/usr/local/apr
    [root@localhost apr-1.6.5]# make &&make install
    [root@localhost apr-1.6.5]# echo $?
    0

    4)安装apr-util

    报错

    解决方法:yum install -y expat-devel

    [root@localhost apr-util-1.6.1]# cd apr-util-1.6.1
    [root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
    [root@localhost apr-util-1.6.1]# make && make install   

    5)安装httpd

    报错

    解决方法: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

    重新安装httpd

    [root@localhost httpd-2.4.37]# cd httpd-2.4.37
    [root@localhost httpd-2.4.37]# ./configure --prefix=/usr/local/apache2.4  --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
    [root@localhost httpd-2.4.37]# make && make install
    [root@localhost httpd-2.4.37]# echo $?
    0

     步骤三、安装PHP

    1)下载源码包

    [root@localhost lamp]# wget http://mirrors.sohu.com/php/php-5.6.9.tar.gz

    2)解压源码包

    [root@localhost lamp]# tar -zxvf php-5.6.9.tar.gz

    3)编译安装

    [root@localhost php-5.6.9]#  ./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
    [root@localhost php-5.6.9]# 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       yum install -y libmcrypt-devel 两个必须分开装,因为centosyum源里没有libmcrypt-devel这个包

    4)复制配置文件

    [root@localhost php-5.6.9]# cp php.ini-production /usr/local/php/etc/php.ini

    步骤四、让http支持php

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

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

    找到<Directory />,修改成

    在AddType增加一行:

    定义默认首页

    步骤五、测试LAMP是否成功

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

    [root@localhost conf]# /usr/local/apache2.4/bin/apachectl -t
    Syntax OK

    2)启动服务

    [root@localhost conf]# /usr/local/apache2.4/bin/apachectl start

    3)客户端测试是否成功解析php代码

    HTTP配置:

    (1)配置虚拟主机

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

    在末尾加入

    #Virtual hosts
    Include conf/extra/httpd-vhosts.conf      导入这个配置文件

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

    <VirtualHost *:80>
        DocumentRoot "/usr/local/apache2.4/htdocs/aa"   //定义网站的位置
        ServerName defaule.com      //网站的域名
        ServerAlias www.defaule.com
        ErrorLog "logs/dummy-host.example.com-error_log"   //错误日志
        CustomLog "logs/dummy-host.example.com-access_log" common  //访问日志
    </VirtualHost>

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

    重启httpd服务

    [root@localhost aa]# /usr/local/apache2.4/bin/apachectl restart

    创建虚拟网站,客户端测试访问

    2)配置用户认证

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

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

    [root@localhost aa]# /usr/local/apache2.4/bin/htpasswd -cm /usr/local/apache2.4/htdocs/aa/.htpasswd admin
    New password:
    Re-type new password:
    Adding password for user admin
    [root@localhost aa]# /usr/local/apache2.4/bin/apachectl -t 检测配置文件是否正确
    Syntax OK  
    [root@localhost aa]# /usr/local/apache2.4/bin/apachectl graceful 动态加载配置文件

    3)配置域名跳转

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

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

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

    打开rewrite模块

    4)配置访问日志

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

    这里为日志的输出格式

    再修改虚拟主机配置文件

    修改之后日志会详细很多

     日志过滤掉图片、js、css等静态文件,节约磁盘容量,并且做日志切割,一天一个文件! 在站点的配置文件vhost中加入过滤代码:

    5)配置静态文件过期时间

    在虚拟主机配置文件中添加

    PHP配置:

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

    image.png

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

            image.png

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

         image.png

            (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
     

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

                image.png

            (4)配置open_basedir

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

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

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

                image.png

            (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

                    报错:image.png

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

  • 相关阅读:
    Vue3 模板语法
    Vue 起步
    [原创]CPA、CPC、CPM、CVR、CTR和ROI分别代表什么?
    Redis 线程模型
    BIO和NIO区别以及原理
    kafka简介&kafka安装
    python测试开发django-109.ModelForm模型表单的使用
    HttpRunner2.X 版本和 3.X 版本的区别到底有哪些?(吐血总结!)
    python测试开发django-108.form组件Select下拉框读取数据库内容
    DDD领域驱动设计架构模式:防腐层(Anti-corruption layer)
  • 原文地址:https://www.cnblogs.com/hackerlin/p/10215911.html
Copyright © 2020-2023  润新知