建立一个软件包目录存放

mkdir -p /usr/local/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

临时禁用,不需要重启

setenforce 0

安装必备工具

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.17

按照标准需要给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工具。

cd /usr/local/src
wget 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.17

cd /usr/local/src
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz
tar zxvf mysql-5.6.17.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

进入support-files目录

cd support-files/
如果还有my.cnf请备份
mv /etc/my.cnf /etc/my.cnf.bak
如果愿意也可以复制配置文件到etc下
cp my-default.cnf /etc/my.cnf

执行初始化配置脚本,创建系统自带的数据库和表,注意配置文件的路径

/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 mysql.server /etc/init.d/mysqld
#赋予权限
chmod +x /etc/init.d/mysqld

设置开机启动

chkconfig mysqld on
启动MySQL
service mysqld start
或者
/etc/init.d/mysql start

修改环境变量

修改/etc/profile文件
vi /etc/profile
在文件末尾添加
PATH=/usr/local/mysql/bin:$PATH
export PATH

让配置立即生效

source /etc/profile

登陆测试,默认是没有密码,直接回车就可进入

mysql -uroot -p

***************************安装 PHP 的分割线******************************************************

安装依赖关系

libiconv库为需要做转换的应用提供了一个iconv()的函数,以实现一个字符编码到另一个字符编码的转换

cd /usr/local/src
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

libmcrypt是加密算法扩展库。

cd /usr/local/src
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

Mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启。

cd /usr/local/src
wget https://nchc.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make && make install

编译mcrypt可能会报错:configure: error: *** libmcrypt was not found

vi  /etc/ld.so.conf
最后一行添加
/usr/local/lib/
载入
ldconfig

mcrypt 是 php 里面重要的加密支持扩展库,Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。

cd /usr/local/src
wget http://iweb.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

编译mcrypt可能会报错:/bin/rm: cannot remove `libtoolT': No such file or directory   如果出现错误,用下面的方法

修改 configure 文件,把RM='$RM'改为RM='$RM -f' 这里的$RM后面一定有一个空格。 如果后面没有空格,直接连接减号,就依然会报错。

正式开始编译php!

cd /usr/local/src
wget http://cn2.php.net/distributions/php-5.6.30.tar.gz
tar zxvf php-5.6.30.tar.gz
cd php-5.6.30
./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=/usr/local/libconv-1.14 --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

如果出现 resinstall iconv

cd /usr/local/src
cd php-5.6.30
./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

将5.6版本的php添加到环境变量(如果不添加,默认是5.3版本)

修改/etc/profile文件
vi /etc/profile 在文件末尾的 PATH=/usr/local/mysql/bin:$PATH 后面再加PHP的命令目录 PATH=/usr/local/mysql/bin:$PATH:/usr/local/php/bin 让配置生效
source /etc/profile

立即启动php-fpm

service php-fpm start
#或者
/etc/init.d/php-fpm start

php安装完成

***************nginx安装分割线*****************

安装openssl

cd /usr/local/src

wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz

tar zxvf openssl-1.0.2k.tar.gz

cd openssl-1.0.2k

./config --prefix=/usr/local/src/openssl --openssldir=/usr/local/src/openssl/conf
make && make install
#检验安装
/usr/local/src/openssl/bin/openssl version -a

安装pcre

cd /usr/local/src

rm -rf pcre
rm -rf pcre-8.37 wget https://ftp.pcre.org/pub/pcre/pcre-8.37.tar.gz tar zxvf pcre-8.37.tar.gz cd pcre-8.37 ./configure --prefix=/usr/local/src/pcre/ make && make install

安装zlib软件

cd /usr/local/src

rm -rf zlib
rm -rf zlib-1.2.11 wget https://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz tar zxvf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure --prefix=/usr/local/src/zlib/ make && make install

安装nginx

#添加www用户和组
groupadd www
useradd -g www www #创建网站根目录
mkdir -p /var/www/root/
chmod -R 775 /var/www/root/ #进入安装目录
cd /usr/local/src #删除原有安装
rm -rf nginx
rm -rf nginx-1.12.0 wget http://nginx.org/download/nginx-1.12.0.tar.gz tar zxvf nginx-1.12.0.tar.gz cd nginx-1.12.0 #配置(使用openssl、pcre、zlib的源码路径)
./configure \
--user=www \
--group=www \
--prefix=/usr/local/src/nginx \
--with-http_ssl_module \
--with-openssl=/usr/src/openssl-1.0.2k \
--with-pcre=/usr/src/pcre-8.37 \
--with-zlib=/usr/src/zlib-1.2.11 \
--with-http_stub_status_module \
--with-threads make && make install #验证
/usr/local/src/nginx/sbin/nginx -V

修改配置文件

vi /usr/local/src/nginx/conf/nginx.conf
修改配置文件中
一:
location / {
root html; //网站根目录
index index.html index.htm;
} 修改为
location / {
root /var/www/root;
index index.html index.htm;
} 二:
#location ~ \.php$ {
# root html; //网站根目录
# fastcgi_pass 127.0.0.1:9000; //将php传给9000好端口php-fpm
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; //需修改
# include fastcgi_params;
#} 修改为
location ~ \.php$ {
  autoindex_exact_size off; #文件大小从KB开始显示
  autoindex_localtime on; #显示文件修改时间为服务器本地时间
root /var/www/root; #自定义网站根目录
fastcgi_pass 127.0.0.1:9000; #需要开启
fastcgi_index index.php; #需要开启
fastcgi_param SCRIPT_FILENAME /var/www/root/$fastcgi_script_name;
include fastcgi_params; #需要开启
} 如果要开启目录浏览功能 ,在 server大括号选项中加入
autoindex on;                 #开启nginx目录浏览功能
 

启动nginx

/usr/local/src/nginx/sbin/nginx 

如果出现 nginx: [error] open() "/usr/local/src/nginx/logs/nginx.pid" failed (2: No such file or directory) 这个错误

/usr/local/src/nginx/sbin/nginx -c /usr/local/src/nginx/conf/nginx.conf 

这时已经启动成功

ps aux | grep nginx

可以看到master 和 worker 进程开启

重启 nginx命令

/usr/local/src/nginx/sbin/nginx -s reload

关闭ngixn

pkill -9 nginx

测试端口

netstat | grep 80

浏览器测试

IP:80

本地的话
127.0。0.1

如果访问不了,查看下防火墙的80端口是否开通

vi /etc/sysconfig/iptables

#看是否有下面这句 没有补上
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #重启防火墙
/etc/init.d/iptables restart

CentOS 6.5 编译安装 LNMP环境的更多相关文章

  1. Centos 6.8编译安装LNMP环境

    Centos 6.8编译安装LNMP环境 参考资料: http://www.jb51.net/article/107429.htm https://phperzh.com/articles/1360 ...

  2. CentOS编译安装LNMP环境

    这里是教大家如何在centos下利用源码编译安装LNMP环境. 工具/原料 centos服务器一台 自用电脑一台 准备篇 配置好IP.DNS .网关,确保使用远程连接工具能够连接服务器 配置防火墙,开 ...

  3. SaltStack之编译安装LNMP环境

    使用saltstack编译安装LNMP环境 一,系统版本查看 二,安装salt-master和salt-minion 安装配置过程参考SaltStack概述及安装 三,修改配置文件 /etc/salt ...

  4. CentOS 6.4 linux下编译安装 LNMP环境

    1.nginx编译安装 2.PHP编译安装 3.mysql编译安装 4.NGINX配置模板 5.CentOS 6.4 php-fpm 添加service 添加平滑启动/重启

  5. CentOS 5.5编译安装lnmp

    如果是安装Centos6.5记得Perl是必选的,否则无法安装VMWare Tools!!!!切记 如果出现make错误需要安装其他软件,装好后  make clean   make install ...

  6. 源码编译安装lnmp环境

    一.源码编译安装步骤 首先说明源码安装的好处   速度快,可自定义路径 主要有三步:1.配置 进入源码安装包  ./configure --prefix=/uer/local/nginx  可指定参数 ...

  7. 源码编译安装lnmp环境(nginx-1.14.2 + mysql-5.6.43 + php-5.6.30 )------踩了无数坑,重装了十几次服务器才会的,不容易啊!

    和LAMP不同的是,LNMP中的N指的是Nginx(类似于Apache的一种web服务软件),并且php是作为一个独立服务存在的,这个服务叫做php-fpm,Nginx直接处理静态请求,动态请求会转发 ...

  8. CentOS 6.3编译安装LAMP环境笔记

    转载地址:http://www.jb51.net/article/54969.htm 最近抽空在虚拟机上测试成功了LAMP各个最新版本的整合编译安装,算是把之前的博文整合精简,以下内容均在CENTOS ...

  9. CentOS 7 下编译安装lnmp之PHP篇详解

    一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:centos-release-7-5.1804.el7.centos.x86_64 二.PHP下载 官网 http ...

随机推荐

  1. React Native绑定微信分享/登录/支付(演示+实现步骤+注意事项)

    React Native(以下简称RN)绑定微信分享/微信登录/微信支付的实现演示+源码+注意事项!微信的调用大同小异,本文实现了微信的分享功能,其他功能可以在链接文档里面找到具体的方法. 本文分文三 ...

  2. 清北学堂 NOIP2017模拟赛 越赛越心塞

    连续考了一个星期发现自己真的是手感型选手,成绩全靠天意.手感好了码出200+也没什么问题,推出式子并且打出自己都不信的操作也有过.手感差了......就一个呵呵二字. 然后开始是T总让我们休息了一个星 ...

  3. js回到顶部------转载

    [1]锚点 使用锚点链接是一种简单的返回顶部的功能实现.该实现主要在页面顶部放置一个指定名称的锚点链接,然后在页面下方放置一个返回到该锚点的链接,用户点击该链接即可返回到该锚点所在的顶部位置 [注意] ...

  4. 设计模式之 - 模板模式(Template Pattern)

    引入:这几天在看一本讲spring源码的书<SPRING技术内幕>里面在讲加载配置文件的时候,可以有不同的加载方式,如根据文件系统目录加载配置文件(FileSystemXmlApplica ...

  5. .net中如何实现多线程

    l线程肯定也是要执行一段代码的.所以要产生一个线程,必须先为该线程写一个方法,这个方法中的代码就是该线程运行所要执行的代码.(找个人来做一件事情) l线程启动时,通过委托调用该方法. (委托的好处) ...

  6. 高仿二次元网易GACHA

    高仿二次元网易GACHA,所有接口均通过Charles抓取而来,图片资源通过 https://github.com/yuedong56/Assets.carTool 工具提取. 详情见github地址 ...

  7. 利用伪元素:after清除浮动

    一.代码 html代码 <div class="clearfix"></div> css样式 .clearfix{ zoom:1;/*这个属性是为了兼容IE ...

  8. JDK1.8中HashMap实现

    JDK1.8中的HashMap实现跟JDK1.7中的实现有很大差别.下面分析JDK1.8中的实现,主要看put和get方法. 构造方法的时候并没有初始化,而是在第一次put的时候初始化 putVal方 ...

  9. Hyperledger Fabric 1.0 从零开始(十二)——fabric-sdk-java应用【补充】

    在 Hyperledger Fabric 1.0 从零开始(十二)--fabric-sdk-java应用 中我已经把官方sdk具体改良办法,即使用办法发出来了,所有的类及文件都是完整的,在文章的结尾也 ...

  10. python爬虫入门-开发环境与小例子

    python爬虫入门 开发环境 ubuntu 16.04 sublime pycharm requests库 requests库安装: sudo pip install requests 第一个例子 ...