CentOS7 编译安装 Nginx+MySQL+PHP

June 02, 2015

LNMP简介

LNMP:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。 Linux:一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有redhat、debian、centos、ubuntu、fedora、gentoo等。 Nginx:一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。

Mysql:一个小型关系型数据库管理系统。 PHP:一种在服务器端执行的嵌入HTML文档的脚本语言。 这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。 详情请参照百度百科:http://baike.baidu.com/view/3714049.htm

安装Nginx

安装pcre
$ tar jxf pcre-8.36.tar.bz2 #解压
$ cd pcre-8.36 #进入pcre目录
$ ./configure --prefix=/usr/local/pcre && make && make install #配置&编译&安装
安装nginx
$ useradd -M -s /sbin/nologin nginx #添加nginx用户
$ tar jxf pcre-8.36.tar.bz2 #解压
$ tar zxf zlib-1.2.8.tar.gz #解压
$ tar zxf openssl-1.0.2.tar.gz #解压
$ tar zxf nginx-1.6.2.tar.gz #解压
$ cd nginx-1.6.2 #进入nginx目录
$ ./configure \
--prefix=/usr/local/lnmp/nginx \
--with-pcre=../pcre-8.36 \
--with-zlib=../zlib-1.2.8 \
--with-openssl=../openssl-1.0.2 \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--user=nginx \
--group=nginx #配置
$ make && make install #编译&安装
$ ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/ #链接nginx的可执行文件到系统中

安装MySQL

安装cmake
$ tar zxf cmake-3.2.1.tar.gz #解压
$ cd cmake-3.2.1 #进入cmake目录
$ ./configure --prefix=/usr/local/cmake && make && make install #配置&编译&安装
$ ln -s /usr/local/cmake/bin/* /usr/bin/ #链接cmake的可执行文件到系统中
安装mysql
$ yum -y install ncurses-devel perl-Module-Install.noarch #用yum安装mysql依赖包
$ useradd -M -s /sbin/nologin mysql #添加mysql用户
$ mkdir -p /usr/local/lnmp/mysql/data #创建mysql的数据存储目录
$ tar zxf mysql-5.6.23.tar.gz #解压
$ cd mysql-5.6.23.tar.gz #进入mysql目录
$ cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql \
-DMYSQL_DATADIR=/usr/local/lnmp/mysql/data \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci #配置
$ make && make install #编译&安装
$ rm -f /etc/my.cnf #删除原有的配置文件
$ cp support-files/my-default.cnf /etc/my.cnf #复制新的mysql配置文件到etc下
$ cp support-files/mysql.server /etc/init.d/mysqld #复制mysql的服务启动脚本到系统中
$ chmod 755 /etc/init.d/mysqld #赋予脚本执行权限
$ chkconfig --add mysqld #添加mysqld服务到chkconfig
$ chkconfig mysqld on #设置开机启动
$ chown -R :mysql /usr/local/lnmp/mysql/ #设置mysql目录的权限
$ chown -R mysql /usr/local/lnmp/mysql/data/
$ ln -s /usr/local/lnmp/mysql/bin/* /usr/local/bin/ #链接mysql的相关文件到系统中
$ ln -s /usr/local/lnmp/mysql/lib/* /usr/lib/
$ ln -s /usr/local/lnmp/mysql/include/mysql/* /usr/include/
$ cd /usr/local/lnmp/mysql/scripts #进入mysql脚本的目录
$ ./mysql_install_db \
$ --user=mysql \
$ --basedir=/usr/local/lnmp/mysql \
$ --datadir=/usr/local/lnmp/mysql/data #初始化数据库
$ service mysqld start #启动mysql服务
$ mysqladmin -uroot password 123.com #设置mysql的root密码为123.com

安装PHP

安装libmcrypt
$ tar jxf libmcrypt-2.5.8.tar.bz2 #解压
$ cd libmcrypt-2.5.8 #进入libmcrypt目录
$ ./configure && make && make install #配置&编译&安装
安装mhash
$ tar jxf mhash-0.9.9.9.tar.bz2 #解压
$ cd mhash-0.9.9.9 #进入mhash目录
$ ./configure && make && make install #配置&编译&安装
$ echo -e "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
$ ldconfig
安装mcrypt
$ tar zxf mcrypt-2.6.8.tar.gz #解压
$ cd mcrypt-2.6.8 #进入mcrypt目录
$ ./configure && make && make install #配置&编译&安装
安装libunwind
$ tar zxf libunwind-1.1.tar.gz #解压
$ cd libunwind-1.1 #进入libunwind目录
$ ./configure && make && make install #配置&编译&安装
安装gperftools
$ tar zxf gperftools-2.4.tar.gz #解压
$ cd gperftools-2.4 #进入gperftools目录
$ ./configure --enable-frame-pointers && make && make install #配置&编译&安装
$ ldconfig
安装openssl
$ tar zxf openssl-1.0.2.tar.gz #解压
$ cd openssl-1.0.2 #进入openssl目录
$ ./config --prefix=/usr/local/openssl && make && make install #配置&编译&安装
$ mv /usr/bin/openssl /usr/bin/openssl-1.0.1e
$ ln -s /usr/local/openssl/bin* /usr/bin
安装freetype
$ tar jxf freetype-2.5.5.tar.bz2 #解压
$ cd freetype-2.5.5 #进入freetype目录
$ ./configure --prefix=/usr/local/freetype --enable-shared #配置
$ make && make install #编译&安装
安装libpng
$ yum -y install zlib-devel
$ tar zxf libpng-1.6.16.tar.gz #解压
$ cd libpng-1.6.16 #进入libpng目录
$ ./configure --prefix=/usr/local/libpng --enable-shared #配置
$ make && make install #编译&安装
安装libjpeg
$ tar zxf jpegsrc.v9a.tar.gz #解压
$ cd jpeg-9a #进入libjpeg目录
$ ./configure --prefix=/usr/local/libjpeg --enable-shared #配置
$ make && make install #编译&安装
安装zlib
$ tar zxf zlib-1.2.8.tar.gz #解压
$ cd zlib-1.2.8 #进入zlib目录
$ ./configure --prefix=/usr/local/zlib && make && make install #配置&编译&安装
安装libgd
$ tar jxf libgd-2.1.1.tar.bz2 #解压
$ cd libgd-2.1.1 #进入libgd目录
$ ./configure \
$ --prefix=/usr/local/libgd \
$ --enable-shared \
$ --with-freetype=/usr/local/freetype/ \
$ --with-jpeg=/usr/local/libjpeg/ \
$ --with-png=/usr/local/libpng/ \
$ --with-zlib=/usr/local/zlib
$ make && make install #配置&编译&安装
安装php
$ yum -y install flex bison file libtool libtool-libs kernel-devel libXpm-devel libxml2 libxml2-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel vim-minimal nano gettext gettext-devel gdbm-devel gmp-devel unzip libcap #用yum安装php需要的软件包
$ tar jxf php-5.6.6.tar.bz2 #解压
$ cd php-5.6.6 #进入php目录
$ ./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=/usr/local/lnmp/mysql --with-mysqli=/usr/local/lnmp/mysql/bin/mysql_config --enable-ftp --with-bz2 --with-jpeg-dir=/usr/local/libjpeg --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype --with-libxml-dir=/usr --with-xmlrpc --with-zlib=/usr/local/zlib --with-gd=/usr/local/libgd --enable-gd-native-ttf --enable-fpm --with-mcrypt --with-mhash --with-openssl=/usr/local/openssl --with-pcre-dir=/usr/bin/pcre-config --enable-soap --enable-shmop --enable-wddx --enable-mbregex --enable-sysvshm --enable-sysvsem --enable-sigchild --enable-bcmath --with-gdbm --with-gmp --enable-inline-optimization --disable-rpath --with-curl --enable-mbregex --enable-mbstring --enable-pcntl --enable-sockets --with-xmlrpc --without-pear --with-gettext --enable-pdo --with-pdo-mysql=/usr/local/lnmp/mysql --with-xpm-dir=/usr/lib64 --enable-opcache=no #配置
$ make && make install #编译&安装
$ cp php.ini-production /usr/local/lnmp/php/etc/php.ini #建立php的配置文件
$ ln -s /usr/local/lnmp/php/bin/* /usr/bin/ #链接php的可执行文件到系统中
$ ln -s /usr/local/lnmp/php/sbin/* /usr/sbin/
安装php扩展之ioncube_loaders
$ tar jxf ioncube_loaders_lin_x86-64.tar.bz2 #解压
$ mkdir /usr/local/ioncube
$ mv ioncube/ioncube_loader_lin_5.6.so /usr/local/ioncube/
安装php扩展之memcache
$ tar zxf memcache-2.2.7.tgz #解压
$ cd memcache-2.2.7 #进入memcache目录
$ phpize
$ ./configure --with-php-config=/usr/local/lnmp/php/bin/php-config #配置
$ make && make install #编译&安装
$ cd /usr/local/lnmp/php/lib/php/extensions/no-debug-non-zts-20131226
$ mv memcache.so /usr/local/memcache/
修改php-fpm.conf
$ cd /usr/local/lnmp/php/etc #进入php的配置文件所在目录
$ cp php-fpm.conf.default php-fpm.conf #建立php-fpm的配置文件
$ vi /usr/local/lnmp/php/etc/php-fpm.conf #修改pid文件和运行时的用户与组
pid = run/php-fpm.pid
user = nginx
group = nginx
修改php.ini
$ vi php.ini #添加ionCube和memcache扩展支持
[ionCube Loader]
zend_extension = "/usr/local/ioncube/ioncube_loader_lin_5.6.so"

[memcache]
extension = "/usr/local/memcache/memcache.so"

整合Nginx+PHP

修改nginx.conf
$ vi /usr/local/lnmp/nginx/conf/nginx.conf #将php文件交给php-fpm程序处理
server {
        listen      80;
        server_name localhost;
        location / {
        root   /wwwroot;
        index  index.php;
        }
        location ~ \.php$ {
        root /wwwroot;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        }
}

启动服务

启动nginx

$ nginx

启动php-fpm

$ php-fpm

启动mysql

$ service mysqld start

© 2021 by Henry.