IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Centos7编译安装(PHP、MariaDB、Nginx)环境

    李阳发表于 2015-07-17 15:03:59
    love 0

    以前建站一直用的各种一键安装包,既方便又快捷,但是慢慢的自己的Linux技术上来以后感觉再用一键安装包会给后期的运维挖一个大坑,因为执行一个安装脚本后,都不知道干了些什么,出问题也不知道去哪里解决,那么就萌生了一个自己编译安装的想法,记过网上的资料,与多次实战,将成功的编译方法再次记录与分享一下,OK,直接开始吧。

    本次编译的环境是Centos7、PHP5.5.27、MariaDB5.5.44、Nginx1.6.1,建议最小内存为1G。

    一、系统前期准备:

    更新系统至最新:

    yum makecache && yum -y update

    安装必要实用基础软件:

    yum -y install bash-completion vim net-tools bind-utils wget

    然后重启一下VPS。

    二、下载所需软件以及介绍:

    安装需要用到的软件有nginx、mysql、php、pcre、openssl、zlib、cmake、mcrypt、yasm、t1lib、libgd、libvpx、tiff、libpng、libjpeg、freetype。这些软件的简介如下:

    (1)Nginx
    Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网易、腾讯等。
    官方下载地址:http://nginx.org/en/download.html

    (2)PHP
    官方下载网址:http://cn2.php.net/downloads.php
    最新版下载地址:http://cn2.php.net/distributions/php-5.5.16.tar.bz2

    (3)MariaDB
    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。现在MariaDB官方主推最新版MariaDB 10,其对应MySQL 5.6,但它在文件结构、一些功能上已经和MySQL 5.6大为不同,查看官方博文《MariaDB vs. MySQL》、《MariaDB 10.0 and MySQL 5.6》。如果用于生产环境,建议使用稳定版5.5。
    官方下载地址:https://downloads.mariadb.org/;MariaDB 5.5;下载页面:https://mariadb.com/kb/en/mariadb/what-is-mariadb-55/

    (4)PCRE
    PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。PCRE被广泛使用在许多开源软件之中,最著名的莫过于Apache HTTP服务器和PHP脚本语言。
    官方网址:http://www.pcre.org/

    (5)OpenSSL
    OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。该程序出现安全漏洞时比较危险,建议从官方网站下载最新版。
    官方下载网址:http://www.openssl.org/source/

    (6)zlib
    zlib是提供数据压缩用的函式库,使用DEFLATE算法.zlib是一种事实上的业界标准,以至于在标准文档中,zlib和DEFLATE常常互换使用。数以千计的应用程序直接或间接依靠zlib压缩函式库,包括: Linux核心:使用zlib以实作网络协定的压缩、档案系统的压缩以及开机时解压缩自身的核心;libpng,用于PNG图形格式的一个实现,对bitmap数据规定了DEFLATE作为流压缩方法。Apache:使用zlib实作http 1.1;OpenSSH、OpenSSL:以zlib达到最佳化加密网络传输。
    官方下载网址:http://zlib.net/

    (7)CMake
    CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。CMake 可以编译源代码、制作程式库、产生适配器(wrapper)、还可以用任意的顺序建构执行档。CMake 支持 in-place 建构(二进档和源代码在同一个目录树中)和 out-of-place 建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。CMake 也支持静态与动态程式库的建构。这里用来编译MySQL或MariaDB
    官方网址:http://www.cmake.org/

    (8)mcrypt
    mcrypt 是 php 里面重要的加密支持扩展库,Mcrypt库支持20多种加密算法和8种加密模式,具体可以通过函数mcrypt_list_algorithms()和mcrypt_list_modes()来显示。
    下载地址:http://mcrypt.sourceforge.net/

    (9)yasm
    In computing, Yasm is an assembler and disassembler for the Intel x86 architecture. It can be used to write 16-bit, 32-bit (IA-32) and 64-bit (x86-64) programs. Yasm is a full rewrite of Netwide Assembler (NASM). Yasm can generally be used interchangeably with NASM and supports the x86 and x86-64 architectures. It is licensed under a revision of the BSD licenses. As of 2011 it was developed by Peter Johnson and Michael Urman.
    下载地址:http://yasm.tortall.net/Download.html
    (10)libgd
    GD 是一个开源的图像处理库,支持 PNG/JPEG/GIF以及其他格式的图像。GD一般被用来创建图表、图形、缩略图以及其他图像相关的处理操作。
    下载地址:http://libgd.bitbucket.org/

    (11)libpng
    libpng 软件包包含 libpng 库.这些库被其他程式用于读写png文件. PNG 库是用来创立和操作PNG 格式的图像文件.PNG 格式是设计来替代GIF,他对于更小范围的TIFF(标记图象文件格式)来说, 有了非常多的进步和拓展并且减少了关于专利权的麻烦.
    下载地址:http://www.libpng.org/pub/png/libpng.html

    (12)libvpx
    libvpx 是一个开源的VP8编码解码器。VP8:高质量的视频编码。

    (13)FreeType
    FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。FreeType 2被设计为一种占用空间小的、高效的、高度可定制的、并且可以产生可移植的高品质输出(符号图像)。可以被用在诸如图像库、展出服务器、字体转换工具、图像文字产生工具等多种其它产品上。
    官方网址:http://www.freetype.org/
    下载页面网址:http://www.freetype.org/download.html

    (14)LibJPEG
    LibJPEG 是一个广泛使用的 JPEG 图像压缩库,采用 C 语言开发。
    官方网址:http://www.ijg.org/

    软件一键下载:

    cd /usr/local/src/ &&
    wget -ct 5 http://nginx.org/download/nginx-1.6.1.tar.gz &&
    wget -ct 5 http://sfo1.mirrors.digitalocean.com/mariadb/mariadb-5.5.44/source/mariadb-5.5.44.tar.gz &&
    wget -ct 5 http://us3.php.net/distributions/php-5.5.27.tar.gz &&
    wget -ct 5 http://exim.mirror.fr/pcre/pcre-8.35.tar.gz &&
    wget -ct 5 http://www.openssl.org/source/openssl-1.0.1i.tar.gz &&
    wget -ct 5 http://zlib.net/zlib-1.2.8.tar.gz &&
    wget -ct 5 http://www.cmake.org/files/v2.8/cmake-2.8.11.2.tar.gz &&
    wget -ct 5 http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz &&
    wget -ct 5 http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz &&
    wget -ct 5 http://fossies.org/linux/misc/t1lib-5.1.2.tar.gz &&
    wget -ct 5 https://bitbucket.org/libgd/gd-libgd/downloads/libgd-2.1.0.tar.gz &&
    wget -ct 5 https://webm.googlecode.com/files/libvpx-v1.3.0.tar.bz2 &&
    wget -ct 5 http://download.osgeo.org/libtiff/tiff-4.0.3.tar.gz &&
    wget -ct 5 ftp://ftp.simplesystems.org/pub/png/src/libpng16/libpng-1.6.17.tar.gz &&
    wget -ct 5 http://download.savannah.gnu.org/releases/freetype/freetype-2.5.3.tar.bz2 &&
    wget -ct 5 http://www.ijg.org/files/jpegsrc.v9a.tar.gz &&
    echo "下载完毕!"

    执行以上命令即可下载完毕,上面的源都是linode美国VPS下载速度较快的源,不适合国内云主机,如有在阿里云之类的云主机上下载,需要更换其中的几个源。

    三、安装MariaDB:

    安装依赖库、编译工具:

    yum install -y apr* autoconf automake bison bzip2 bzip2* cloog-ppl compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gtk+-devel gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libtiff libtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* zlib-devel gd-devel

    安装CMake:

    tar -zxvf cmake-2.8.11.2.tar.gz &&
    cd cmake-2.8.11.2 &&
    ./configure && 
    make && make install

    添加mysql运行组及用户、创建数据库数据文件文件夹并授予合适权限:

    Trip:/bin/false是最严格的禁止login选项,一切服务都不能用,而/sbin/nologin只是不允许系统login,可以使用其他ftp等服务。如果想要用false在禁止login的同时允许ftp,则必须在/etc/shells里增加一行/bin/false。为了系统安全,这里建议使用/bin/false。

    groupadd mysql && useradd -g mysql mysql -s /bin/false &&
    mkdir -p /data/mysql &&
    chown -R mysql:mysql /data/mysql

    编译、安装MariaDB(时间较长):

    mkdir -p /usr/local/mysql &&
    cd /usr/local/src &&
    tar -zxvf mariadb-5.5.44.tar.gz &&
    cd mariadb-5.5.44 &&
    cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc &&
    make && make install

    由于系统自带了MariaDB配置文件,备份或删除它都可以:

    mv /etc/my.cnf /etc/my.cnf.bak

    初始化数据库,配置启动脚本:

    cd /usr/local/mysql &&
    ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql &&
    ln -s /usr/local/mysql/my.cnf /etc/my.cnf &&
    cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld &&
    chmod 755 /etc/init.d/mysqld &&
    chkconfig mysqld on

    配置MariaDB启动脚本:

    #vim /etc/rc.d/init.d/mysqld
    改动如下:
    basedir=/usr/local/mysql #MySQL程序安装路径
    datadir=/data/mysql #MySQl数据库存放目录
    ##重启MySQL
    #service mysqld start

    把MariaDB加入系统环境变量:

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

    把MariaDB的库文件链接到系统默认的位置,在编译PHP等软件时可以不用指定其库文件地址:

    ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql &&
    ln -s /usr/local/mysql/include/mysql /usr/include/mysql &&
    mkdir /var/lib/mysql &&
    ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

    交互式设置数据库:

    (未完待续,今天先装到这里,明天继续)

    未经允许不得转载:李阳博客 » Centos7编译安装(PHP、MariaDB、Nginx)环境



沪ICP备19023445号-2号
友情链接