CentOS6.8 编译安装LNMP
思路:根据Linux系统以及公司网站系统的信息,选择合适的安装包进行安装
一、查看系统信息
# uname -a # 查看内核/操作系统/CPU信息
# head -n /etc/issue # 查看操作系统版本
# grep MemTotal /proc/meminfo # 查看内存总量
#fdisk -l # 查看所有分区
二、具体安装
常规依赖包安装
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-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 openldap openldap-devel openldap-clients openldap-servers make zlib-devel pcre-devel openssl-devel libtool* git tree bison perl gd gd-devel
安装libiconv库
tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make && make install
cd ..
安装libmcrypt,mhash,mcrypt库
tar zxvf libmcrypt-2.5..tar.gz
cd libmcrypt-2.5.
./configure
make && make install
cd ..
tar jxvf mhash-0.9.9.9.tar.bz2
cd mhash-0.9.9.9
./configure
make && make install
cd ..
tar zxvf mcrypt-2.6..tar.gz
cd mcrypt-2.6.
./configure
make && make install
cd ..
编译 mcrypt 如果报错:configure: error: * libmcrypt was not found,则
echo '/usr/local/lib/'>>/etc/ld.so.conf
ldconfig
编译 mcrypt 如果报错:/bin/rm: cannot remove 'libtoolT': No such file or directory,则修改 configure 文件,找到 RM='$RM' 并改为 RM='$RM -rf'。
安装CMake工具
tar zxvf cmake-3.7..tar.gz
cd cmake-3.7.
./bootstrap && make && make install
cd..
安装MySQL
#卸载旧版本
rpm -e mysql --nodeps
#创建mysql用户
groupadd mysql && useradd -g mysql -M mysql
tar zxvf mysql-5.6..tar.gz
cd mysql-5.6.
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DWITH_MYISAM_STORAGE_ENGINE= \
-DWITH_INNOBASE_STORAGE_ENGINE= \
-DWITH_ARCHIVE_STORAGE_ENGINE= \
-DWITH_MEMORY_STORAGE_ENGINE= \
-DWITH_READLINE= \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT= \
-DENABLED_LOCAL_INFILE= \
-DENABLE_DOWNLOADS= \
-DWITH_PARTITION_STORAGE_ENGINE= \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG= \
-DMYSQL_MAINTAINER_MODE= \
-DWITH_SSL:STRING=bundled \
-DWITH_ZLIB:STRING=bundled
make && make install
#修改目录权限
chown -R mysql:mysql /usr/local/mysql
#拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)
cp support-files/my-default.cnf /etc/my.cnf
#编辑配置文件,在 [mysqld] 部分增加下面一行
vi /etc/my.cnf
datadir = /usr/local/mysql/data #添加MySQL数据库路径
#执行初始化配置脚本,创建系统自带的数据库和表
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
#加入系统服务
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
#启动mysql
service mysqld start
#开机启动
chkconfig mysqld on
#加入环境变量
echo 'PATH=/usr/local/mysql/bin:$PATH'>>/etc/profile
export PATH
#让配置生效
source /etc/profile
#设置root密码,默认是没有密码的
/usr/local/mysql/bin/mysqladmin -uroot -p password
cd ..
启动 mysql 时如果报错:mysqld_safe Directory '/var/lib/mysqld' for UNIX socket file don't exists,则
mkdir -p /var/lib/mysqld
chown mysql:mysql /var/lib/mysqld
安装PHP
tar zxvf php-5.6..tar.gz
cd php-5.6.
./configure \
--prefix=/usr/local/php \
--with-fpm-user=www --with-fpm-group=www \
--with-config-file-path=/usr/local/php/etc \
--with-mhash --with-mcrypt --enable-bcmath \
--enable-mysqlnd --with-mysql --with-mysqli --with-pdo-mysql \
--with-gd --enable-gd-native-ttf --with-jpeg-dir --with-png-dir --with-freetype-dir \
--enable-fpm \
--enable-mbstring \
--enable-pcntl \
--enable-sockets \
--enable-opcache \
--with-openssl \
--with-zlib \
--with-curl \
--with-libxml-dir \
--with-iconv-dir
make && make install
#移动生成php-fpm配置文件
mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
#复制生成一份php配置文件
cp php.ini-production /usr/local/php/etc/php.ini
#将php-fpm加入系统服务
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
#赋予执行权限
chmod +x /etc/init.d/php-fpm
#开机启动
chkconfig php-fpm on#创建www用户
groupadd www && useradd -d /home/www -g www www
#启动php-fpm
service php-fpm start
cd ..
vim /etc/profile
修改PATH=/usr/local/php/bin:/usr/local/mysql/bin:$PATH
export PATH
source /etc/profile
安装Nginx
tar zxvf nginx-1.10..tar.gz
cd nginx-1.10.
./configure \
--user=www \
--group=www \
--prefix=/usr/local/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.pid \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_ssl_module \
--with-pcre
make && make install
添加Nginx启动管理脚本/etc/init.d/nginx
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: - # 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 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 >& | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
if [ -n "$user" ]; then
if [ -z "`grep $user /etc/passwd`" ]; then
useradd -M -s /bin/nologin $user
fi
options=`$nginx -V >& | grep 'configure arguments:'`
for opt in $options; do
if [ `echo $opt | grep '.*-temp-path'` ]; then
value=`echo $opt | cut -d "=" -f `
if [ ! -d "$value" ]; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
fi
} start() {
[ -x $nginx ] || exit
[ -f $NGINX_CONF_FILE ] || exit
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq ] && touch $lockfile
return $retval
} stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq ] && rm -f $lockfile
return $retval
} restart() {
configtest || return $?
stop
sleep
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 >&
} case "$1" in
start)
rh_status_q && exit
$
;;
stop)
rh_status_q || exit
$
;;
restart|configtest)
$
;;
reload)
rh_status_q || exit
$
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit
esac
用法指南
chmod +x /etc/init.d/nginx
service nginx start #启动nginx服务
chkconfig nginx on #开机启动
cd ..
至此,LNMP环境已搭建完毕。
CentOS6.8 编译安装LNMP的更多相关文章
- centos6.6编译安装lnmp系列之mysql
简介: 环境:虚拟机+centos6.6 Mysql版本:5.6.21 Mysql下载地址:http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.21.t ...
- centos6.6编译安装lnmp系列之PHP
简介: 环境:虚拟机+centos6.6 在百度云盘里面我分享的安装软件包,包含LNMP系列软件. http://pan.baidu.com/s/1gdvnimv 1.安装前配置: 关闭selinux ...
- centos6.6编译安装lnmp系列之nginx
简介: 环境:虚拟机+centos6.6 Cmake下载地址:http://www.cmake.org/files/v3.0/cmake-3.0.2.tar.gz Nginx 下载地址: http:/ ...
- CentOS6.5 编译安装lnmp环境
参考:http://54im.com/tag/libmcrypt http://www.educity.cn/linux/1240338.html 设置防火墙,并开启3306 80端口:vi /etc ...
- centos6.8 编译安装lnmp php7.2 mysql5.6 nginx1.1.4
编译操作参考版,没有每一步详细操作,慎入 关闭selinux和防火墙 service iptables stop chkconfig iptables off vi /etc/selinux/conf ...
- 阿里云centos6.5实践编译安装LNMP架构web环境
LNMP 代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构. 本次测试需求: **实践centos6.5编译安装 LNMP生产环境 架构 web生产环境 使用 ngx_pa ...
- CentOS6.3编译安装Nginx1.4.7 + MySQL5.5.25a + PHP5.3.28
[准备工作] #在编译安装lnmp之前,首先先卸载已存在的rpm包. rpm -e httpd rpm -e mysql rpm -e php yum -y remove httpd yum -y r ...
- centos下编译安装lnmp
centos下编译安装lnmp 本文以centos为背景在其中编译安装nginx搭建lnmp环境. 编译安装nginx时,需要事先安装 开发包组"Development Tools" ...
- CentOS6.3编译安装Memcached
要用到如下源码包: /usr/local/src/memcached/libevent-2.0.21-stable.tar.gz /usr/local/src/memcached/memcached- ...
随机推荐
- win7 无法启动此程序,因为计算机中丢失glut32.dll
http://zhidao.baidu.com/link?url=9NZxqCvR7hvmKuVR1dUSdQB-TTv_re-g7lp-xZj5FKII04FnMvIKjFhKv299t6wv5Ht ...
- 非常好!!!Linux源代码阅读——中断【转】
Linux源代码阅读——中断 转自:http://home.ustc.edu.cn/~boj/courses/linux_kernel/2_int.html 目录 为什么要有中断 中断的作用 中断的处 ...
- python 666
运行下面代码会输出什么? __builtins__.我们来运行下这行代码看看="666" #!/usr/bin/env python # encoding: utf-8 def _ ...
- Fiddler抓包5-接口测试(Composer)【转载】
本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/p/6754560.html 前言 Fiddler最大的优势在于抓包,我们大部分使用的功能也在抓 ...
- Python基础-迭代器&生成器&装饰器
本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 我现在有个需求,看 ...
- 陕西师范大学第七届程序设计竞赛网络同步赛D ZQ的睡前故事【约瑟夫环1-N数到第k个出队,输出出队顺序/ STL模拟】
链接:https://www.nowcoder.com/acm/contest/121/D来源:牛客网 题目描述 ZQ是一个拥有n女朋友的万人迷,她的每一个女朋友每天晚上都会挨个给他打电话,要他讲了睡 ...
- Peak
A sequence of \(n\) integers \(a_1, a_2, \dots, a_n\) is called a peak, if and only if there exists ...
- [Math Review] Statistics Basic: Estimation
Two Types of Estimation One of the major applications of statistics is estimating population paramet ...
- Codevs1026 SEARCH(逃跑的拉尔夫 )(BFS)
SEARCH 时间限制: 1 Sec 内存限制: 128 MB提交: 11 解决: 4[提交][状态][讨论版] 题目描述 年轻的拉尔夫开玩笑地从一个小镇上偷走了一辆车,但他没想到的是那辆车属于警 ...
- NOI2014 部分题解
感觉NOI2014的一些题目也是比较好做的... 但是笔者往往有思路却没有想清楚就开始搞了...这样还是不太好.. Day1 T1 起床困难综合征 (我感觉这题应该叫综合征不是综合症...) a ...