数字营销 · Web开发 · 基础设施

Linux下Nginx+Mysql+PHP的编译安装过程

记录早期在 Linux 服务器上源码编译安装 Nginx、MySQL、PHP 及相关组件的过程,整理依赖安装、编译配置与版本兼容问题。

本文最初发布于 2013 年,记录的是当时在 Linux 服务器上通过源码编译安装 Nginx、MySQL、PHP 及相关组件的过程。文中涉及的软件版本、下载地址和编译参数大多已经过时,不建议直接用于当前生产环境。本文保留主要作为早期服务器部署实践和问题排查记录参考。

Linux软件安装方式有很多,为了保证服务器运行的稳定性,很多人会采用编译软件安装源代码的方式来安装软件;下面我来把Godaddy VPS上的编译过程贴一下,包括安装过过程和遇到的一些问题,以及解决的办法等。需要说明的是,mysql的高级版本需要用cmake来编译。

下载软件

yum install gcc gcc-c++ make
wget http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.32.tar.gz
wget http://www.cmake.org/files/v2.8/cmake-2.8.11.2.tar.gz
wget http://nginx.org/download/nginx-1.4.1.tar.gz
wget http://us1.php.net/distributions/php-5.5.0.tar.gz
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.tar.gz -4
wget http://zlib.net/zlib-1.2.8.tar.gz -4
wget http://jaist.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz -4
wget http://jaist.dl.sourceforge.net/project/libpng/libpng16/1.6.2/libpng-1.6.2.tar.gz -4
wget http://download.savannah.gnu.org/releases/freetype/freetype-2.5.0.tar.gz -4
wget http://www.ijg.org/files/jpegsrc.v9.tar.gz -4
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz -4

前期配置

yum install ncurses-devel
configure make make install


编译并配置mysql

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make make install
cp ./support-files/my-huge.cnf /etc/my.cnf
./scripts/mysql_install_db –user=mysql
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld


编译nginx

./configure –prefix=/usr/local/nginx –user=nginx –group=nginx –with-pcre=/usr/local/src/pcre-8.33

编译并配置PHP

首选编译依赖项,包括 libmcrypt, libpng, libjpeg, libxml2, libcurl, freetype, libiconv等

./configure –prefix=/usr/local/php –enable-fpm –enable-mbstring=all –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –enable-ftp –enable-gd-native-ttf –enable-session –with-gd –with-iconv –with-zlib –enable-xml –with-freetype-dir=/usr/local/freetype –with-jpeg-dir=/usr/local/jpeg –with-png-dir=/usr/local/libpng –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –enable-sockets –with-libxml-dir=/usr/local/libxml –without-pear
make && make install
cp php.ini-production /usr/local/php/lib/php.ini
cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
chmod +x /etc/rc.d/init.d/php-fpm

安装APC加速器

wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz -4
wget http://ftp.gnu.org/gnu/m4/m4-1.4.tar.gz -4
export PHP_AUTOCONF=/usr/local/autoconf/bin/autoconf
export PHP_AUTOHEADER=/usr/local/autoconf/bin/autoheader

安装memcache扩展

wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz -4
./configure –prefix=/usr/local/memcached –with-libevent=/usr/local/libevent make && make install
./configure –with-php-config=/usr/local/php/bin/php-config

评论0

欢迎分享你的看法,也欢迎补充不同的实践经验。