阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 6.8编译安装LNMP

443次阅读
没有评论

共计 10383 个字符,预计需要花费 26 分钟才能阅读完成。

搭建环境:CentOS 6.8,nginx 1.9.14,MySQL 5.6.23,php 5.6.17

一、目的:LNMP 如今已成为主流的 web 服务器搭建方案,公司内部的 ECstore,Discuz,计划用来替代 nagios+check_mk 监控平台的 Zabbix。均基于 LNMP。本次单机 LNMP 搭建为后续全面了解电商集群做准备,顺便记录搭建过程,作为以后搭建环境的参考。

二、LNMP 安装环境准备:
关闭防火墙及 selinux
service iptables stop
chkconfig iptables off
setenforce 0
vi /etc/sysconfig/selinux
  SELINUX=disabled      #enforcing 改为 disabled

依赖包安装

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel openldap-clients openldap-servers make  libtool* git tree bison pcre-devel perl gd gd-devel

安装 libiconv(支持编码转换为函数)
tar xf libiconv-1.14.tar.gz 
cd libiconv-1.14/ 
./configure –prefix=/usr/local
make && make install

安装 libmcrypt(加密算法扩展库,支持 DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR, SERPENT, SAFER+ 等算法)
tar xf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make && make install 
cd libltdl/ 
./configure –enable-ltdl-install    #加载动态库
make && make install

安装 mhash(Mhash 是基于离散数学原理的不可逆向的 php 加密方式扩展库,其在默认情况下不开启。mhash 的可以用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存)
1234 tar xf mhash-0.9.9.9.tar.bz2 
cd mhash-0.9.9.9
./configure
make && make install

安装 mcript(mcrypt 是 php 里面重要的加密支持扩展库,Mcrypt 扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。)
123456 cd /usr/local/src
tar zxvf mcrypt-2.6.8.tar.gz 
cd mcrypt-2.6.8/ 
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH    #暂时生效
./configure
make && make install

亦可以通过以下两种方法增加库文件
12345678910 ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la 
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so 
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4 
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8 
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a 
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la 
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so 
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2 
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1 
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config

vim /etc/ld.so.conf
    /usr/local/lib/   
ldconfig

安装 cmake(MySQL 从 5.5 版本开始,通过./configure 进行编译配置方式已经被取消,取而代之的是 cmake 工具)

tar xf cmake-3.4.1.tar.gz
cd cmake-3.4.1
./bootstrap
make && make install

注:一起解压所有文件可采用:find /usr/local/src/*.tar.gz -exec tar xf {} \;
三、MySQL 编译安装

新增 mysql 用户
groupadd -r mysql
useradd -r -g mysql mysql

新建 MySQL 所需目录
mkdir -p /usr/local/mysql
mkdir -p /data/mysqldb

编译安装
 tar xf mysql-5.6.23.tar.gz
cd mysql-5.6.23
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1-DMYSQL_DATADIR=/data/mysqldb -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1-DSYSCONFDIR=/etc -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0
make&& make install

修改 mysql 目录权限
cd /usr/local/mysql
chown -R mysql:mysql .
cd /data/mysqldb
chown -R mysql:mysql .

初始化 mysql 数据库
cd /usr/local/mysql
./scripts/mysql_install_db –user=mysql –datadir=/data/mysqldb

编译修改 /etc/my.cnf

[mysql]
 
# CLIENT #
port                          = 3306
socket                        = /data/mysqldb/mysql.sock
 
[mysqld]
 
# GENERAL #
user                          = mysql
default-storage-engine        = InnoDB
socket                        = /data/mysqldb/mysql.sock
pid-file                      = /data/mysqldb/mysql.pid
 
# MyISAM #
key-buffer-size                = 32M
myisam-recover                = FORCE,BACKUP
 
# SAFETY #
max-allowed-packet            = 16M
max-connect-errors            = 1000000
 
# DATA STORAGE #
datadir                        = /data/mysqldb/
 
# BINARY LOGGING #
log-bin                        = /data/mysqldb/mysql-bin
expire-logs-days              = 14
sync-binlog                    = 1
 
# REPLICATION #
skip-slave-start              = 1
relay-log                      = /data/mysqldb/relay-bin
slave-net-timeout              = 60
 
# CACHES AND LIMITS #
tmp-table-size                = 32M
max-heap-table-size            = 32M
query-cache-type              = 0
query-cache-size              = 0
max-connections                = 500
thread-cache-size              = 50
open-files-limit              = 65535
table-definition-cache        = 4096
table-open-cache              = 4096
 
# INNODB #
innodb-flush-method            = O_DIRECT
innodb-log-files-in-group      = 2
innodb-log-file-size          = 64M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table          = 1
innodb-buffer-pool-size        = 592M
 
# LOGGING #
log-error                      = /data/mysqldb/mysql-error.log
log-queries-not-using-indexes  = 1
slow-query-log                = 1
slow-query-log-file            = /data/mysqldb/mysql-slow.log

复制 MySQL 启动文件及其命令加入 PATH
cp support-files/mysql.server /etc/init.d/mysqld 
vim /etc/profile.d/mysql.sh
    PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
    export PATH
source /etc/profile.d/mysql.sh

启动 MySQL 并增加启动项
service mysqld start 
chkconfig  mysqld on

设置 MySQL 登录权限
drop user ”@localhost;
drop user ”@hostname;
update mysql.user set password=password(‘*******’);
flush privileges;

四、Nginx 编译安装
新增 nginx 用户

groupadd -r nginx
useradd -g nginx -r nginx

创建所需要目录
mkdir -pv /var/tmp/nginx/client

编译安装 nginx
tar xf nginx-1.9.14.tar.gz
cd nginx-1.9.14
./configure –prefix=/usr/local/nginx –sbin-path=/usr/local/nginx/sbin/nginx –conf-path=/etc/nginx/nginx.conf –error-log-path=/var/log/nginx/error.log –http-log-path=/var/log/nginx/access.log –pid-path=/var/run/nginx/nginx.pid –lock-path=/var/lock/nginx.lock –user=nginx –group=nginx –with-http_ssl_module –with-http_flv_module –with-http_stub_status_module –with-http_gzip_static_module –http-client-body-temp-path=/var/tmp/nginx/client/ –http-proxy-temp-path=/var/tmp/nginx/proxy/ –http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ –http-uwsgi-temp-path=/var/tmp/nginx/uwsgi –http-scgi-temp-path=/var/tmp/nginx/scgi –with-pcre
make && make install

编辑启动脚本
vim /etc/rc.d/init.d/nginx
 
#!/bin/sh   
#   
# nginx – this script starts and stops the nginx daemon   
#   
# chkconfig:  – 85 15   
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \   
#              proxy and IMAP/POP3 proxy server   
# processname: nginx   
# config:      /etc/nginx/nginx.conf   
# config:      /etc/sysconfig/nginx   
# pidfile:    /var/run/nginx.pid   
     
# Source function library.   
. /etc/rc.d/init.d/functions 
     
# Source networking configuration.   
. /etc/sysconfig/network 
     
# Check that networking is up.   
[“$NETWORKING” = “no”] && exit 0   
     
nginx=”/usr/local/nginx/sbin/nginx”
prog=$(basename $nginx)   
     
NGINX_CONF_FILE=”/etc/nginx/nginx.conf”
     
[-f /etc/sysconfig/nginx] && . /etc/sysconfig/nginx 
     
lockfile=/var/lock/subsys/nginx 
     
make_dirs() {   
  # make required directories   
  user=`nginx -V 2>&1 | grep “configure arguments:” | sed ‘s/[^*]*–user=\([^]*\).*/\1/g’ -`   
  options=`$nginx -V 2>&1 | grep ‘configure arguments:’`   
  for opt in $options; do 
      if [`echo $opt | grep ‘.*-temp-path’`]; then 
          value=`echo $opt | cut -d “=” -f 2`   
          if [! -d “$value”]; then 
              # echo “creating” $value   
              mkdir -p $value && chown -R $user $value   
          fi 
      fi 
  done 
}   
     
start() {   
    [-x $nginx] || exit 5   
    [-f $NGINX_CONF_FILE] || exit 6   
    make_dirs   
    echo -n $”Starting $prog: ” 
    daemon $nginx -c $NGINX_CONF_FILE   
    retval=$?   
    echo 
    [$retval -eq 0] && touch $lockfile   
    return $retval   
}   
     
stop() {   
    echo -n $”Stopping $prog: ” 
    killproc $prog -QUIT   
    retval=$?   
    echo 
    [$retval -eq 0] && rm -f $lockfile   
    return $retval   
}   
     
restart() {   
    configtest || return $?   
    stop   
    sleep 1   
    start   
}   
     
reload() {   
    configtest || return $?   
    echo -n $”Reloading $prog: ” 
    killproc $nginx -HUP   
    RETVAL=$?   
    echo 
}   
     
force_reload() {   
    restart   
}   
     
configtest() {   
  $nginx -t -c $NGINX_CONF_FILE   
}   
     
rh_status() {   
    status $prog   
}   
     
rh_status_q() {   
    rh_status >/dev/null 2>&1   
}   
     
case “$1” in 
    start)   
        rh_status_q && exit 0   
        $1   
        ;;   
    stop)   
        rh_status_q || exit 0   
        $1   
        ;;   
    restart|configtest)   
        $1   
        ;;   
    reload)   
        rh_status_q || exit 7   
        $1   
        ;;   
    force-reload)   
        force_reload   
        ;;   
    status)   
        rh_status   
        ;;   
    condrestart|try-restart)   
        rh_status_q || exit 0   
            ;;   
    *)   
        echo $”Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}” 
        exit 2   
esac

设置开机启动并启动服务
chmod +x /etc/rc.d/init.d/nginx
chkconfig –add nginx 
chkconfig nginx on
service nginx start

五、PHP 编译安装
解决 php 安装的库依赖关系

cp -frp /usr/lib64/libldap* /usr/lib/
echo /usr/local/mysql/lib >> /etc/ld.so.conf.d/mysql-x86_64.conf 
ldconfig -v

编译安装 php
tar xf php-5.6.17.tar.gz
cd php-5.6.17
./configure –prefix=/usr/local/php –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –with-iconv-dir=/usr/local –with-openssl –enable-mbstring –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –enable-xml –disable-rpath –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –enable-mbregex –enable-mbstring –with-gd –enable-gd-native-ttf –with-mhash –enable-pcntl –enable-sockets –with-mcrypt –with-ldap –with-ldap-sasl–with-xmlrpc –enable-zip –enable-soap –with-bz2 –with-config-file-path=/etc –enable-fpm –with-config-file-scan-dir=/etc/php.d –enable-maintainer-zts
make ZEND_EXTRA_LIBS=’-liconv’
make install

复制 PHP 配置文件
cp php.ini-production /etc/php.ini

复制 php-fpm 配置文件
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

设置 php-fpm 启动脚本并开机启动
cp sapi/fpm/init.d.php-fpm  /etc/rc.d/init.d/php-fpm
chmod +x /etc/rc.d/init.d/php-fpm
chkconfig –add php-fpm
chkconfig php-fpm on
service php-fpm start

六、web 功能基本实现
nginx,php 功能整合
vim /etc/nginx/nginx.conf
#location ~ \.php$ {
#    root          html;
#    fastcgi_pass  127.0.0.1:9000;
#    fastcgi_index  index.php;
#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
#    include        fastcgi_params;
#}
# 修改为
location ~ \.php$ {
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

增加 LNMP 测试页面

vim /usr/local/nginx/html/test.php
<?php
$link = mysql_connect(‘127.0.0.1′,’root’,’you_passwd’);
if($link)
echo “It’s OK,Frank”;
else
echo “Failed,Frank”;
mysql_close;
phpinfo();
?>

nginx 重载
service nginx reload

访问 http://ip/test.php,LNMP 测试成功。

七、后记
    从去年底开始,LAMP,LNMP 断断续续搭建过多次,搭建时磕磕碰碰,完成后就会忘记,估计是基础不牢的原因。虽然本次搭建中间也有些许不顺,但决定写博文之后,还是有点小压力,前前后后验证了两遍,还是可以保证可行性的。本次 nginx,php 的配置优化及插件均未涉及,后续文中将陆续补上。

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

更多 CentOS 相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-07/132896.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计10383字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7963596
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

  300 元就能买到的 ” 小钢炮 ”?惠普 7L 四盘位小主机解析 最近...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...