CentOS7 compilation and installation of LNMP LNMPCentOS
LNMP (Linux-Nginx-Mysql-PHP), this article will try to compile LNMP on CentOS7.0. The full text basically uses manual compilation and deployment... relying on yum helped me install GCC and automake .. it takes a long time to write this thing... nima is too time-consuming. Linux O & M exchange group: 344177552
Major software versions:
nginx-1.6.0
php-5.3.5
mysql-5.5.6
Yum source configuration (in fact, there is no change)
[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
Compile tool installation
[root@ipython ~]# yum install gcc-c++ automake autoconf bzip2
Zlib library (a function library for data compression ):
[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 library (rewrite support)
[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 library (https support)
[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 tool (google memory management kit)
[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
### Add the path to the dynamic link library ###
[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 (not explained)
[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
# Configuration parameters long ##
[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-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/
### This file is in the attachment ###
[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 612910.00.031120 896? Nginx: master process/software/nginx/sbin/nginx-c/software/nginx/conf/nginx. conf
Nginx612930.00.1315601612? S15: 36 0: 00 nginx: worker process
Ncurses library (character terminal processing Library)
[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 (database)
[Root @ ipython lnmp] #/usr/sbin/groupadd mysql
[Root @ ipython lnmp] #/usr/sbin/useradd-s/sbin/nologin-g 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-starter er -- 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
### This file is in the attachment ###
[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 554750.10.1 1153481696? S16: 07 0: 00/bin/sh/software/mysql/bin/mysqld_safe -- datadir =/data/mysql -- pid-file =/data/mysql. pid
Mysql563422.7 11.9 1918248 120680? Sl/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. pid -- socket =/tmp/mysql. sock -- ports = 3306
Libiconv Library (character encoding conversion)
[Root @ ipython lnmp] # tar zxf libiconv-1.14.tar.gz
### Install patches to avoid manual modification of hidden logic errors ###
[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 Library (XML Library)
[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 Library (Image Library)
[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 Library (Image Library)
[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 (Font Library)
[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 Library (encryption algorithm)
[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 Library (encrypted)
[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 Library (URL transmission)
[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 Library (drawing)
[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 (library compilation support)
[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
Add mysql library files to dynamic sharing
[root@ipython lnmp]# echo "/software/mysql/lib/mysql/" >> /etc/ld.so.conf && ldconfig
PHP (a language)
[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. h #/software/mysql/include/mysql/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 --- 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
# Create a PHP-FPM configuration file, parameters or something you can adjust according to the configuration ##
[Root @ ipython php-5.3.5] # cat>/software/php/etc/php-fpm.conf <
Okay... look at the picture.