共计 11004 个字符,预计需要花费 28 分钟才能阅读完成。
LNMP(Linux-Nginx-MySQL-PHP),本文在 CentOS 7.0 上编译 LNMP 尝尝鲜,全文基本上都是采用手动编译部署,依赖 yum 帮我安装了 GCC 和 automake。写这个东西耗时有点久了。太花时间啦。
————————————– 分割线 ————————————–
Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL http://www.linuxidc.com/Linux/2014-05/102351.htm
Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm
CentOS 6.4 下的 LNMP 生产环境搭建及安装脚本 http://www.linuxidc.com/Linux/2013-11/92428.htm
生产环境实用之 LNMP 架构的编译安装 +SSL 加密实现 http://www.linuxidc.com/Linux/2013-05/85099.htm
LNMP 全功能编译安装 for CentOS 6.3 笔记 http://www.linuxidc.com/Linux/2013-05/83788.htm
CentOS 6.3 安装 LNMP (PHP 5.4,MyySQL5.6) http://www.linuxidc.com/Linux/2013-04/82069.htm
在部署 LNMP 的时候遇到 Nginx 启动失败的 2 个问题 http://www.linuxidc.com/Linux/2013-03/81120.htm
Ubuntu 安装 Nginx php5-fpm MySQL(LNMP 环境搭建) http://www.linuxidc.com/Linux/2012-10/72458.htm
————————————– 分割线 ————————————–
主要软件版本 :
nginx-1.6.0
php-5.3.5
mysql-5.5.6
yum 源配置 (其实没什么改动)
[root@iPython ~]# cat /etc/yum.repos.d/1.repo
[1]
name=1
baseurl=file:///media
enabled=1
gpgcheck=0
[root@ipython ~]# mount /dev/cdrom /media && yum clean all
mount: /dev/sr0 is write-protected, mounting read-only
Loaded plugins: fastestmirror
Cleaning repos: 1
Cleaning up everything
编译工具安装
[root@ipython ~]# yum install gcc-c++ automake autoconf bzip2
zlib 库(提供数据压缩用的函式库):
[root@ipython lnmp]# tar zxf zlib-1.2.8.tar.gz
[root@ipython lnmp]# cd zlib-1.2.8
[root@ipython zlib-1.2.8]# ./configure –prefix=/software/sharelib
[root@ipython zlib-1.2.8]# make && make install
pcre 库(rewrite 的支持)
[root@ipython lnmp]# tar zxf pcre-8.35.tar.gz
[root@ipython lnmp]# cd pcre-8.35
[root@ipython pcre-8.35]# ./configure –prefix=/software/pcre –enable-utf8 –enable-unicode-properties
[root@ipython pcre-8.35]# make && make install
OpenSSL 库 (https 的支持)
[root@ipython lnmp]# tar zxf openssl-1.0.1h.tar.gz
[root@ipython lnmp]# cd openssl-1.0.1h
[root@ipython openssl-1.0.1h]# ./config –prefix=/software/openssl
[root@ipython openssl-1.0.1h]# make && make install
TCMalloc 工具(google 内存管理套件)
[root@ipython lnmp]# tar zxf libunwind-1.1.tar.gz
[root@ipython lnmp]# cd libunwind-1.1
[root@ipython libunwind-1.1]# CFLAGS=-fPIC ./configure –prefix=/software/google-libunwind
[root@ipython libunwind-1.1]# make CFLAGS=-fPIC && make CFLAGS=-fPIC install
[root@ipython lnmp]# tar zxf gperftools-2.2.tar.gz
[root@ipython lnmp]# cd gperftools-2.2
[root@ipython gperftools-2.2]# LDFLAGS=”-L/software/google-libunwind/lib” CPPFLAGS=”-I/software/google-libunwind/include” ./configure –prefix=/software/google-perftools
[root@ipython gperftools-2.2]# make && make install
### 路径加到动态链接库 ###
[root@ipython gperftools-2.2]# echo “/software/google-libunwind/lib/” >> /etc/ld.so.conf
[root@ipython gperftools-2.2]# echo “/software/google-perftools/lib/” >> /etc/ld.so.conf
[root@ipython gperftools-2.2]# echo “/software/sharelib/lib/” >> /etc/ld.so.conf && ldconfig
Nginx(不解释)
[root@ipython lnmp]# groupadd -g 1500 nginx
[root@ipython lnmp]# useradd -M -u 1500 -g nginx -s /sbin/nologin nginx
[root@ipython lnmp]# mkdir /var/tmp/nginx
[root@ipython lnmp]# chown nginx:nginx /var/tmp/nginx/
[root@ipython lnmp]# tar zxf nginx-1.6.0.tar.gz
[root@ipython lnmp]# cd nginx-1.6.0
[root@ipython nginx-1.6.0]# sed -i ‘s/CFLAGS=”$CFLAGS -g”/#CFLAGS=”$CFLAGS -g”/’ auto/cc/gcc
[root@ipython nginx-1.6.0]# sed -i “s#/usr/local#/software/google-perftools#” auto/lib/google-perftools/conf
## 配置参数有点长 ##
[root@ipython nginx-1.6.0]# ./configure –prefix=/software/nginx –user=nginx –group=nginx –with-http_stub_status_module –with-http_ssl_module –with-http_realip_module –with-http_gzip_static_module –with-debug –http-client-body-temp-path=/var/tmp/nginx/client –http-proxy-temp-path=/var/tmp/nginx/proxy –http-fastcgi-temp-path=/var/tmp/nginx/fastcgi –http-uwsgi-temp-path=/var/tmp/nginx/uwsgi –http-scgi-temp-path=/var/tmp/nginx/scgi –with-pcre=/root/lnmp/pcre-8.35 –with-openssl=/root/lnmp/openssl-1.0.1h –with-zlib=/root/lnmp/zlib-1.2.8 –with-google_perftools_module
[root@ipython nginx-1.6.0]# make && make install
[root@ipython nginx-1.6.0]# mkdir /tmp/tcmalloc
[root@ipython nginx-1.6.0]# chmod 0777 /tmp/tcmalloc/
### 这文件在附件里 ###
[root@ipython nginx-1.6.0]# cp ../nginx.conf /software/nginx/conf/
[root@ipython nginx-1.6.0]# cp ../fcgi.conf /software/nginx/conf/
[root@ipython nginx-1.6.0]# chmod 755 /etc/init.d/nginx
[root@ipython nginx-1.6.0]# mkdir /data/{logs,www.ipython.me}
[root@ipython nginx-1.6.0]# /software/nginx/sbin/nginx
[root@ipython nginx-1.6.0]# iptables -F
[root@ipython nginx-1.6.0]# iptables -A INPUT -p tcp –dport 22 -j ACCEPT
[root@ipython nginx-1.6.0]# iptables -A INPUT -p tcp –dport 80 -j ACCEPT
[root@ipython nginx-1.6.0]# ps aux|grep nginx
root 61291 0.0 0.0 31120 896 ? Ss 15:36 0:00 nginx: master process /software/nginx/sbin/nginx -c /software/nginx/conf/nginx.conf
nginx 61293 0.0 0.1 31560 1612 ? S 15:36 0:00 nginx: worker process
ncurses 库(字符终端处理库)
[root@ipython lnmp]# tar jxf ncurses-5.9.tar.bz2
[root@ipython lnmp]# cd ncurses-5.9
[root@ipython ncurses-5.9]# ./configure –prefix=/software/ncurses –with-shared –without-debug
[root@ipython ncurses-5.9]# make && make install
Mysql(数据库)
[root@ipython lnmp]# /usr/sbin/groupadd mysql
[root@ipython lnmp]# /usr/sbin/useradd -s /sbin/nologin -g mysql mysql
[root@ipython lnmp]# tar zxf mysql-5.5.6-rc.tar.gz
[root@ipython lnmp]# cd mysql-5.5.6-rc
[root@ipython mysql-5.5.6-rc]# ./configure –prefix=/software/mysql/ –enable-assembler –with-extra-charsets=complex –enable-thread-safe-client –with-big-tables –with-readline –with-ssl –with-embedded-server –enable-local-infile –with-plugins=partition,innobase,myisammrg –with-named-curses-libs=/software/ncurses/lib/libncurses.so.5
[root@ipython mysql-5.5.6-rc]# make && make install
[root@ipython mysql-5.5.6-rc]# mkdir /data/mysql/{binlog,relaylog} -p
[root@ipython mysql-5.5.6-rc]# chown -R mysql:mysql /data/mysql
[root@ipython mysql-5.5.6-rc]# /software/mysql/bin/mysql_install_db –basedir=/software/mysql/ –datadir=/data/mysql/ –user=mysql
### 这文件在附件里 ###
[root@ipython mysql-5.5.6-rc]# \cp ../my.cnf /etc/my.cnf
[root@ipython mysql-5.5.6-rc]# \cp ../mysqld /etc/init.d/mysqld
[root@ipython mysql-5.5.6-rc]# chmod 755 /etc/init.d/mysqld
[root@ipython mysql-5.5.6-rc]# systemctl enable mysqld
[root@ipython mysql-5.5.6-rc]# systemctl start mysqld
[root@ipython mysql-5.5.6-rc]# ps aux | grep mysqld
root 55475 0.1 0.1 115348 1696 ? S 16:07 0:00 /bin/sh /software/mysql/bin/mysqld_safe –datadir=/data/mysql –pid-file=/data/mysql/mysql.pid
mysql 56342 2.7 11.9 1918248 120680 ? Sl 16:07 0:01 /software/mysql/libexec/mysqld –basedir=/software/mysql –datadir=/data/mysql –plugin-dir=/software/mysql/lib/mysql/plugin –user=mysql –log-error=/data/mysql/mysql_error.log –open-files-limit=10240 –pid-file=/data/mysql/mysql.pid –socket=/tmp/mysql.sock –port=3306
libiconv 库(字符编码转换)
[root@ipython lnmp]# tar zxf libiconv-1.14.tar.gz
### 打补丁吧,避免手动修改隐患逻辑错误 ###
[root@ipython lnmp]# gzip -d libiconv-glibc-2.16.patch.gz
[root@ipython lnmp]# cd libiconv-1.14/srclib
[root@ipython srclib]# patch -p1 < ../../libiconv-glibc-2.16.patch
patching file stdio.in.h
[root@ipython libiconv-1.14]# cd ..
[root@ipython libiconv-1.14]# ./configure –prefix=/software/sharelib/
[root@ipython libiconv-1.14]# make && make install
libxml 库(XML 库)
[root@ipython lnmp]# tar jxf libxml2-2.8.0.tar.bz2
[root@ipython lnmp]# cd libxml2-2.8.0
[root@ipython libxml2-2.8.0]# ./configure –prefix=/software/sharelib
[root@ipython libxml2-2.8.0]# make && make install
libpng 库(图片库)
[root@ipython lnmp]# tar jxf libpng-1.6.8.tar.bz2
[root@ipython lnmp]# cd libpng-1.6.8
[root@ipython libpng-1.6.8]# LDFLAGS=”-L/software/sharelib/lib/” CPPFLAGS=”-I/software/sharelib/include” ./configure –prefix=/software/sharelib
[root@ipython libpng-1.6.8]# make && make install
jpeg 库(图片库)
[root@ipython lnmp]# tar jxf jpegsrc.v9a.tar.bz2
[root@ipython lnmp]# cd jpeg-9a/
[root@ipython jpeg-9a]# ./configure –prefix=/software/sharelib/
[root@ipython jpeg-9a]# make && make install
freetype(字库)
[root@ipython lnmp]# tar jxf freetype-2.5.2.tar.bz2
[root@ipython lnmp]# cd freetype-2.5.2
[root@ipython freetype-2.5.2]# LIBPNG_CFLAGS=”-I/software/sharelib/include/” LIBPNG_LDFLAGS=”-L/software/sharelib/lib/” ./configure –prefix=/software/sharelib
[root@ipython freetype-2.5.2]# make && make install
[root@ipython freetype-2.5.2]# ln -s /software/sharelib/include/freetype2 /software/sharelib/include/freetype2/freetype
libmcrypt 库 (加密算法)
[root@ipython lnmp]# tar jxf libmcrypt-2.5.8.tar.bz2
[root@ipython lnmp]# cd libmcrypt-2.5.8
[root@ipython libmcrypt-2.5.8]# ./configure –prefix=/software/sharelib
[root@ipython libmcrypt-2.5.8]# make && make install
mhash 库(加密)
[root@ipython lnmp]# tar jxf mhash-0.9.9.9.tar.bz2
[root@ipython lnmp]# cd mhash-0.9.9.9
[root@ipython mhash-0.9.9.9]# ./configure –prefix=/software/sharelib/
[root@ipython mhash-0.9.9.9]# make && make install
curl 库(URL 传��)
[root@ipython lnmp]# tar jxf curl-7.36.0.tar.bz2
[root@ipython lnmp]# cd curl-7.36.0
[root@ipython curl-7.36.0]# ./configure –prefix=/software/curl
[root@ipython curl-7.36.0]# make && make install
gd 库(绘图)
[root@ipython lnmp]# tar zxf gd-2.0.35.tar.gz
[root@ipython lnmp]# cd gd-2.0.35
[root@ipython gd-2.0.35]# LDFLAGS=”-L/software/sharelib/lib” CPPFLAGS=”-I/software/sharelib/include” ./configure –prefix=/software/sharelib –enable-shared –with-png=/software/sharelib –with-freetype=/software/sharelib –with-libiconv-prefix=/software/sharelib –with-jpeg=/software/sharelib
[root@ipython gd-2.0.35]# make && make install
libtool(库编译支持)
[root@ipython lnmp]# tar zxf libtool-2.4.2.tar.gz
[root@ipython lnmp]# cd libtool-2.4.2
[root@ipython libtool-2.4.2]# ./configure –prefix=/software/sharelib/ –enable-ltdl-install
[root@ipython libtool-2.4.2]# make && make install
将 mysql 的库文件加入动态共享
[root@ipython lnmp]# echo “/software/mysql/lib/mysql/” >> /etc/ld.so.conf && ldconfig
PHP(一种语言吧)
[root@ipython lnmp]# tar zxf php-5.3.5.tar.gz
[root@ipython lnmp]# cd php-5.3.5
[root@ipython php-5.3.5]# sed -i s”#mysql/psi/psi.h#/software/mysql/include/mysql/psi/psi.h#” /software/mysql/include/mysql/my_sys.h
[root@ipython php-5.3.5]# sed -i s”#mysql/plugin.h#/software/mysql/include/mysql/plugin.h#” /software/mysql/include/mysql/m_string.h
[root@ipython php-5.3.5]# sed -i s”#mysql/services.h#/software/mysql/include/mysql/services.h#” /software/mysql/include/mysql/plugin.h
[root@ipython php-5.3.5]# sed -i s”#mysql/service_my_snprintf.h#/software/mysql/include/mysql/service_my_snprintf.h#” /software/mysql/include/mysql/services.h
[root@ipython php-5.3.5]# sed -i s”#mysql/service_thd_alloc.h#/software/mysql/include/mysql/service_thd_alloc.h#” /software/mysql/include/mysql/services.h
[root@ipython php-5.3.5]# ./configure –prefix=/software/php –with-config-file-path=/software/php/etc –with-mysql=/software/mysql –with-mysqli=/software/mysql/bin/mysql_config –with-iconv-dir=/software/sharelib –disable-ipv6 –with-freetype-dir=/software/sharelib/ –with-jpeg-dir=/software/sharelib/ –with-png-dir=/software/sharelib/ –with-zlib=/software/sharelib/ –with-libxml-dir=/software/sharelib/ –disable-rpath –enable-bcmath –enable-safe-mode –enable-shmop –enable-sysvsem –with-curl=/software/curl/ –enable-fpm –enable-mbstring –with-mcrypt=/software/sharelib/ –with-gd=/software/sharelib/ –enable-gd-native-ttf –with-openssl=/software/openssl –with-mhash –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –enable-inline-optimization –with-curlwrappers –enable-mbregex –with-gettext
[root@ipython php-5.3.5]# make install
## 创建 PHP-FPM 配置文件,参数什么的自己根据配置调整 ##
[root@ipython php-5.3.5]# cat >> /software/php/etc/php-fpm.conf <
好了 … 看图
更多 CentOS 相关信息见 CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14