zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    file is universal (3 slices) but does not contain a(n) armv7s slice error for static libraries on iOS
    WebImageButton does not change images after being enabled in Javascript
    ajax OPTION
    编程遍历页面上所有TextBox控件并给它赋值为string.Empty?
    获取海洋天气预报
    C#线程系列教程(1):BeginInvoke和EndInvoke方法
    js控制只能输入数字和小数点
    Response.AddHeader(,)
    ManualResetEvent的理解
    Convert.ToInt32、int.Parse(Int32.Parse)、int.TryParse、(int) 区别
  • 原文地址:https://www.cnblogs.com/hackerlin/p/10215911.html
Copyright © 2011-2022 走看看