共计 7228 个字符,预计需要花费 19 分钟才能阅读完成。
准备工作
最小化安装 CentOS6.5
我们安装完成 CentOS 系统,默认都是系统自带的 yum 源,国内用户用 yum 安装软件的时候,是比较慢的,为了提高效率,一般我们会配置国内的 yum 源。
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
mv CentOS6-Base-163.repo /etc/yum.repos.d/
yum makecache
建立一个软件包存放的目录
cd ~
mkdir src
清理已经安装包
rpm -e httpd
rpm -e MySQL
rpm -e php
yum -y remove httpd
yum -y remove mysql
yum -y remove php
# 搜索 apache 包
rpm -qa http*
# 强制卸载 apache 包
rpm -e --nodeps 查询出来的文件名
# 检查是否卸载干净
rpm -qa|grep http*
selinux 可能会致使编译安装失败,我们先禁用它。永久禁用,需要重启生效
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
安装必备工具
yum -y install make gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap lsof
安装 mysql5.6.33
按照标准需要给 mysql 创建所属用户和用户组
groupadd mysql 创建用户组
创建一个用户,不允许登陆和不创主目录
useradd -s /sbin/nologin -g mysql -M mysql
tail -1 /etc/passwd 检查创建用户
centos 最小化安装后,会有 mysql 的库因此先卸载!
rpm -qa|grep mysql 检查安装与否
rpm -e mysql-libs-5.1.73-3.el6_5.x86_64 --nodeps 强制卸载
MySQL 从 5.5 版本开始,通过./configure 进行编译配置方式已经被取消,取而代之的是 cmake 工具。因此,我们首先要在系统中源码编译安装 cmake 工具。
wget --no-check-certificate http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz
tar zxvf cmake-2.8.12.2.tar.gz
cd cmake-2.8.12.2
./configure
make && make install
使用 cmake 来编译安装 mysql5.6.33
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33.tar.gz
tar zxvf mysql-5.6.33.tar.gz
cd mysql-5.6.17
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=mysql \
-DWITH_DEBUG=0 \
-DWITH_SSL=system
make && make install
修改 /usr/local/mysql 权限
chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
关于 my.cnf 配置文件:
在启动 MySQL 服务时,会按照一定次序搜索 my.cnf,先在 /etc 目录下找,找不到则会搜索”$basedir/my.cnf”就是安装目录下 /usr/local/mysql/my.cnf,这是新版 MySQL 的配置文件的默认位置!注意:在 CentOS 6.x 版操作系统的最小安装完成后,在 /etc 目录下会存在一个 my.cnf,需要将此文件更名为其他的名字。如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的 MySQL 的正确配置,造成无法启动,由于我们已经卸载了最小安装完成后的 mysq 库所以,就没必要操作了。
进入 support-files 目录
cd support-files/ 如果还有 my.cnf请备份
mv /etc/my.cnf /etc/my.cnf.bak
cp my-default.cnf /etc/my.cnf 如果愿意也可以复制配置文件到 etc 下
执行初始化配置脚本,创建系统自带的数据库和表,注意配置文件的路径
/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
拷贝 mysql 安装目录下 support-files 服务脚本到 init.d 目录
cp support-files/mysql.server /etc/init.d/mysqld # 拷贝脚本
chmod +x /etc/init.d/mysqld # 赋予权限
设置开机启动
chkconfig mysqld on
启动 MySQL
service mysqld start
或者
/etc/init.d/mysql start
MySQL5.6.x 启动成功后,root 默认没有密码,我们需要设置 root 密码。设置之前,我们需要先设置 PATH,要不, 不能直接调用 mysql
修改 /etc/profile 文件
vi /etc/profile
在文件末尾添加
PATH=/usr/local/mysql/bin:$PATH
export PATH
让配置立即生效
source /etc/profile
登陆测试,默认是没有密码, 直接回车就可进入
mysql -uroot -p
设置 mysql 密码
/usr/local/mysql/bin/mysqladmin -uroot -p password '你的密码'
注意如果复制上去不能改变密码请手动输入
登陆进命令行模式
mysql -uroot -p
输入上面设置的密码以后能够成功登陆后就标志着我们的 mysql 已经安装完成了,是不是感觉特别兴奋呢,至于 mysql 的详细设置我们在以后的项目在具体介绍
接下来我们安装 php
安装依赖关系
libiconv 库为需要做转换的应用提供了一个 iconv()的函数,以实现一个字符编码到另一个字符编码的转换。错误提示:configure: error: Please reinstall the iconv library.
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make && make install
cd ..
libmcrypt 是加密算法扩展库。错误提示:configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.
wget http://iweb.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make && make install
cd ..
Mhash 是基于离散数学原理的不可逆向的 php 加密方式扩展库,其在默认情况下不开启。mhash 的可以用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存 错误提示:configure: error:“You need at least libmhash 0.8.15 to compile this program. http://mhash.sf.net/”
wget http://124.202.164.16/files/104300000800FF47/soft.beauty-soft.net/lib/mhash/mhash-0.9.9.9.tar.gz
tar -xzvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make && make install
cd ..
mcrypt 是 php 里面重要的加密支持扩展库,Mcrypt 扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。
wget http://jaist.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
./configure
make && make install
cd ..
编译 mcrypt 可能会报错:configure: error: * libmcrypt was not found
vi /etc/ld.so.conf
最后一行添加
/usr/local/lib/
载入
ldconfig
编译 mcrypt 可能会报错:/bin/rm: cannot remove `libtoolT’: No such file or directory
修改 configure 文件,把 RM=’RM′改 为RM=′ RM -f’这里的 $RM 后面一定有一个空格。如果后面没有空格,直接连接减号,就依然会报错。
正式开始编译 php!
wget http://au1.php.net/get/php-5.6.26.tar.gz/from/this/mirror
mv mirror php-5.6.26.tar.gz
tar zxvf php-5.6.26.tar.gz
cd php-5.6.26
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts
make && make install
修改 fpm 配置 php-fpm.conf.default 文件名称
mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
复制 php.ini 配置文件
cp php.ini-production /usr/local/php/etc/php.ini
复制 php-fpm 启动脚本到 init.d
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm 赋予执行权限
chkconfig --add php-fpm 添加为启动项
chkconfig php-fpm on 设置开机启动
按照标准,给 php-fpm 创建一个指定的用户和组
创建群组
groupadd www
创建一个用户,不允许登陆和不创主目录
useradd -s /sbin/nologin -g www -M www
立即启动 php-fpm
service php-fpm start
#或者
/etc/init.d/php-fpm start
回到 src/ 目录
安装 nginx
Nginx 是一款轻量级的 Web 服务器 / 反向代理服务器及电子邮件(IMAP/POP3)代理服务器,由俄罗斯的程序设计师 Igor Sysoev 所开发,其特点是占有内存少,并发能力强,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日
1、安装 prce(重定向支持)和 openssl(https 支持,如果不需要 https 可以不安装。)
yum -y install pcre*
yum -y install openssl*
CentOS 6.5 我安装的时候是选择的“基本服务器”,默认这两个包都没安装全,所以这两个都运行安装即可。
接下来开始安装
wget http://219.239.26.4/files/32480000085AA7C7/nginx.org/download/nginx-1.10.1.tar.gz
tar -zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1
./configure --prefix=/usr/local/nginx-1.10.1 \
--with-http_ssl_module \
--with-http_stub_status_module --with-pcre
make
make install
开启 nginx 进程
/usr/local/nginx-1.10.1/sbin/nginx
重启或关闭进程:/usr/local/nginx-1.10.1/sbin/nginx -s reload
/usr/local/nginx-1.10.1/sbin/nginx -s stop
关闭防火墙,或者添加防火墙规则就可以测试了。
service iptables stop 关闭防火墙
或者添加一条防火墙规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
service iptables restart
LNMP 安装参考如下文章
Ubuntu 16.04 下源码配置 LNMP 开发环境 http://www.linuxidc.com/Linux/2016-09/135381.htm
Ubuntu 14.04 搭建 LNMP http://www.linuxidc.com/Linux/2015-05/116933.htm
Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL http://www.linuxidc.com/Linux/2014-05/102351.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-10/136047.htm