以前建站一直用的各种一键安装包,既方便又快捷,但是慢慢的自己的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)环境