zoukankan      html  css  js  c++  java
  • Centos7.2源码编译安装LA(N)MP

    LAMP环境中php是作为apache的模块安装的,所以安装顺序是php放在apache的后面安装,这样便于安装php时可以在apache的模块目录生成对应的php模块。

    apache版本:2.4.37

    mysql版本:5.7.24

    php版本:7.3.0

    nginx版本:nginx-1.14.2

    注意:这里是使用的root用户安装,如果是其他用户,相应的操作前需要加上sudo。

    1、安装apache

    需要安装的依赖 apr、apt-util、pcre,pcre是一个正则表达式库,apache在路由匹配和路由重写时需要用到。

    注意:这里不要使用pcre2,否则编译apache时会报错。

    下载软件源码压缩包并解压

    cd /usr/local/src
    wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.37.tar.gz
    wget http://mirrors.hust.edu.cn/apache/apr/apr-1.6.5.tar.gz
    wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
    wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz
    tar -zxvf httpd-2.4.37.tar.gz
    tar -zxvf apr-1.6.5.tar.gz
    tar -zxvf apr-util-1.6.1.tar.gz
    tar -zxvf pcre-8.42.tar.gz

    将apr-1.6.5重命名为apr并移动到apache的源码包的srclib目录中

    将apr-1.6.5重命名为apr并移动到apache的源码包的srclib目录中

    mv apr-1.6.5 httpd-2.4.37/srclib/apr
    mv apr-util-1.6.1 httpd-2.4.37/srclib/apr-util

    编译安装pcre

    cd pcre-8.42
    ./configure --prefix=/usr/local/pcre-8.42
    make && make install

    编译安装apache

    cd /usr/local/src/httpd-2.4.37
    ./configure --prefix=/usr/local/apache --with-pcre=/usr/local/pcre-8.42 --with-included-apr
    make && make install

    注:如果make过程报 fatal error: expat.h: No such file or directory,运行 yum install -y expat-devel 安装expat,然后重新执行以上操作,如果还报错,先执行make distclean后重新执行以上操作。

    启动apache

    /usr/local/apache/bin/apachectl start

    这里会出现错误提示信息,是因为没有配置虚拟主机的缘故,这里忽略它。

    在浏览器中访问本机ip,如果是虚拟机则需要使用虚拟机的ip地址

    显示It works! 代表启动成功,apache安装完成。

    2、安装mysql

    准备工作(安装依赖、新建用户和目录)

    yum install -y cmake gcc-c++ ncurses-devel perl-Data-Dumper
    groupadd mysql
    useradd -s /sbin/nologin -g mysql mysql
    mkdir -p /home/mysql/{data,log}
    mkdir  /home/mysql/log/error.log
    chown -R mysql:mysql /home/mysql

    下载并解压mysql源码压缩包

    cd /usr/local/src
    wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24.tar.gz
    tar -zxvf mysql-5.7.24.tar.gz

    进入mysql源码包目录

    cd /usr/local/src/mysql-5.7.24

    执行cmake

    cmake 
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
    -DMYSQL_DATADIR=/home/mysql/data 
    -DSYSCONFDIR=/etc 
    -DENABLED_LOCAL_INFILE=1 
    -DENABLE_DOWNLOADS=1 
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 
    -DWITH_PARTITION_STORAGE_ENGINE=1 
    -DDEFAULT_CHARSET=utf8 
    -DDEFAULT_COLLATION=utf8_general_ci 
    -DDOWNLOAD_BOOST=1 
    -DWITH_BOOST=/usr/local/boost

    执行make

    make

    这里需要等待很长的时间,可能由于电脑性能和在虚拟机里面的原因,我这里等了将近三个小时,然后安装

    make install

    安装完成后将mysql的bin目录加入环境变量

    echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
    source /etc/profile

    接下来初始化数据库数据目录

    mysqld --initialize --user=mysql

    注意:这里终端会输出root的初始密码,把它记录下来。

    接下来配置一下/etc/my.cnf

    [client]
    port=3306
    socket=/tmp/mysql.sock
    
    [mysqld]
    port=3306
    basedir=/usr/local/mysql
    datadir=/home/mysql/data
    log_error=/home/mysql/log/error.log
    socket=/tmp/mysql.sock
    key_buffer_size=16M
    max_allowed_packet=8M
    
    [mysqldump]
    quick

    上面只列出了基本的配置项,更多配置项请查看官方文档。配置项根据自己的机器做好调整。

    然后将启动脚本添加到服务中,实现开机自启动

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    chmod +x /etc/init.d/mysqld
    chkconfig --add mysqld

    接下来启动mysqld

    service mysqld start

    mysqld服务启动起来以后,连接mysqld服务,修改root初始密码

    mysql -uroot -p
    输入密码进入mysql命令行
    alter user 'root'@'localhost' identified by '新密码';

    mysql安装配置完成。

    3、安装php

    安装libxml2

    yum install -y libxml2 libxml2-dev

    下载源码压缩包并解压

    cd /usr/local/src
    wget http://www.zlib.net/zlib-1.2.11.tar.gz
    wget http://www.ijg.org/files/jpegsrc.v9c.tar.gz
    wget https://download.sourceforge.net/libpng/libpng-1.6.36.tar.gz wget https://download.savannah.gnu.org/releases/freetype/freetype-2.4.0.tar.gz
    wget http://cn2.php.net/get/php-7.3.0.tar.gz/from/this/mirror

    安装zlib

    tar -zxf zlib-1.2.11.tar.gz
    cd zlib-1.2.11
    ./configure #这里不要加安装路径,否则后面安装libpng时会找不到zlib
    make && make install

    安装libpng

    tar -zxf libpng-1.6.36.tar.gz
    cd libpng-1.6.36
    ./configure --prefix=/usr/local/libpng
    make && make install

    安装jpeg

    tar -zxf jpegsrc.v9c.tar.gz
    cd jpeg-9c
    ./configure --prefix=/usr/local/jpeg --enable-shared
    make && make install

     安装freetype

    tar -zxf freetype-2.4.0.tar.gz
    cd freetype-2.4.0
    ./configure --prefix=/usr/local/freetype2
    make && make install

    接下来进入php源码目录编译安装

    tar -zxvf mirror
    cd php-7.3.0
    ./configure --prefix=/usr/local/php --enable-fpm --with-apxs2=/usr/local/apache/bin/apxs --with-mysqli --with-pdo-mysql --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype2 --with-gd --with-config-file-path=/usr/local/etc/php --with-config-file-scan-dir=/usr/local/etc/php/conf.d
    make && make install

    注:配置文件位置编译选项说明

    --with-config-file-path=/usr/local/etc/php               将php.ini文件的读取目录设为/usr/local/etc/php
    --with-config-file-scan-dir=/usr/local/etc/php/conf.d    设置额外的ini配置文件读取目录,此目录一般存放扩展的开启配置文件,如文件swoole.ini内容为extension=swoole

    安装成功后会在/usr/local/apache/modules目录下生成一个libphp7.so的模块文件

    编辑 httpd.conf 文件以调用 PHP 模块

    vi /usr/local/apache/conf/httpd.conf

    LoadModule php7_module modules/libphp7.so

    先检查是否已经自动生成,没有则手动加入

    让apache将扩展名.php解析成php

    <FilesMatch .php$>

      SetHandler application/x-httpd-php

    </FilesMatch>

    这里我们指定的php的配置文件目录为/usr/local/etc/php,也可以在httpd.conf文件中用PHPIniDir指令指定,如:PHPIniDir /etc/php.ini

    从php源码包复制配置文件到我们指定的配置文件目录

    cp /usr/local/src/php-7.3.0/php.ini-development /usr/local/etc/php/php.ini

    新建php文件测试

    rm -rf /usr/local/apache/htdocs/index.html
    echo "<?php phpinfo(); ?>" > /usr/local/apache/htdocs/index.php

     重启apache

    /usr/local/apache/bin/apachectl restart

    在浏览器中访问http://主机ip/index.php,显示phpinfo()的内容代表配置正确。

    LAMP环境到此搭建完成。

    4、安装nginx

    下载源码压缩包并解压

    cd /usr/local/src
    wget http://nginx.org/download/nginx-1.14.2.tar.gz
    tar -zxvf nginx-1.14.2.tar.gz

    进入源码包目录进行编译前的准备工作

    cd nginx-1.14.2
    ./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/src/pcre-8.42

    注意:pcre的路径为源码包的路径

    编译和安装

    make && make install

    完成以后,先检查apache是否在启动状态

    ps aux | grep httpd

    如果apache在启动状态则先将其退出

    /usr/local/apache/bin/apachectl stop

    启动php-fpm

    新建用户用于启动php-fpm

    groupadd www-data
    useradd -s /sbin/nologin -g www-data www-data

    修改php-fpm配置文件

    cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
    cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
    cp /usr/local/php/sbin/php-fpm /usr/local/bin
    vi /usr/local/php/etc/php-fpm.d/www.conf

    找到以下内容并修改

    ; Unix user/group of processes
    ; Note: The user is mandatory. If the group is not set, the default user's group
    ;       will be used.
    user = www-data
    group = www-data

    然后启动php-fpm

    php-fpm

    配置nginx使其支持php应用

    vi /usr/local/nginx/conf/nginx.conf

    修改默认的 location 块,使其支持 .php 文件

    location / {
        root   html;
        index  index.php index.html index.htm;
    }

    下一步配置来保证对于 .php 文件的请求将被传送到后端的 PHP-FPM 模块,取消默认的 PHP 配置块的注释,并修改为下面的内容:

    location ~ .php$ {
        fastcgi_index   index.php;
        fastcgi_pass    127.0.0.1:9000;
        include         fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
    }

    启动nginx

    /usr/local/nginx/sbin/nginx 

    创建测试文件

    rm -rf /usr/local/nginx/html/index.html
    echo "<?php phpinfo(); ?>" > /usr/local/nginx/html/index.php

    在浏览器中访问http://主机ip,显示phpinfo()的内容代表配置成功。

    到这里LA(N)MP环境搭建完成。 

  • 相关阅读:
    servlet中调用注入spring管理的dao(转)
    java枚举类(转)
    压缩包太大导致的部署问题
    oracle数据泵导出导入
    全错位排列
    母函数及相关的算法题
    Effective Modern C++翻译(5)-条款4:了解如何观察推导出的类型
    Effective Modern C++翻译(4)-条款3:了解decltype
    Effective Modern C++翻译(3)-条款2:明白auto类型推导
    Effective Modern C++翻译(2)-条款1:明白模板类型推导
  • 原文地址:https://www.cnblogs.com/liyuchuan/p/10226630.html
Copyright © 2011-2022 走看看