CentOS6.6纯编译安装Nginx Mysql PHP Memcached

前端之家收集整理的这篇文章主要介绍了CentOS6.6纯编译安装Nginx Mysql PHP Memcached前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

声明:部分编译指令在博客编辑器里好像被处理了,如双横线变成单横线了等等,于是在本地生成了一个pdf版本,在下面地址可以下载。
LNMP+Memcached

CentOS是红帽发行的免费的稳定Linux版本,在企业服务器应用中都会选用Minimal版本,因为Minimal是CentOS”最纯洁”的服务器系统,因为Minimal版本连vim编辑器都需要自己安装,Minimal组件最少,无桌面,扩展灵活,非常适合做服务器。

1.配置网卡

Minimal版本的CentOS被安装后,网卡驱动默认是down状态,需要手动激活,在连接好网线后需要执行命令:
[root@jhq0113 soft]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

然后按i进入编辑状态,进行如下修改

修改完毕后,按ESC,然后shift+:,wq进行保存退出

然后开始配置DNS服务器地址:

[root@jhq0113 soft]# vi /etc/resolv.conf

最主要的是配置nameserver属性,可以是自己的网关地址,如下图所示:

修改完毕后保存退出。键入以下命令激活网卡:

[root@jhq0113 soft]# ifconfig eth0 up

至此,网卡已经配置好了,如果仍然发现开机网卡未启动等问题,可以执行以下两条命令进行完善。

[root@jhq0113 soft]# chkconfig –add network
[root@jhq0113 soft]# chkconfig network on

重启网卡命令:

2.配置防火墙,开放22(SSH),3306(MySQL),80(Nginx),11211(Memcached),6379(Redis)端口
[root@jhq0113 soft]# vi /etc/sysconfig/iptables
修改为:

重启防火墙使配置生效:
[root@jhq0113 soft]# /etc/init.d/iptables restart

3.安装组件
更新系统:
[root@jhq0113 soft]# yum update
稍后键入y进行确认。

安装vim:
[root@jhq0113 soft]# yum install vim

安装编译工具及依赖:
[root@jhq0113 soft]# yum install make apr* autoconf automake curl-devel gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel gd kernel keyutils patch perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel ppl cloog-ppl keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel zlib-devel libXpm* freetype libjpeg* libpng* PHP-common PHP-gd ncurses* libtool* libxml2 libxml2-devel patch

4.下载Cmake,MysqL,PHP,Nginx,libevent,libmcrypt,pcre,memcached
如果自己寻找这些很困难,推荐给大家几个很好的源地址:
阿里:http://mirrors.aliyun.com/
搜狐:http://mirrors.sohu.com/
网易:http://mirrors.163.com/

我的就是在搜狐下载的,版本如下:

5.系统约定
软件源代码包存放位置:/usr/local/src
源码包编译安装位置:/usr/local/软件名字

源码放在/usr/local/src的实现方案有多种,可以在Windows下载,然后通过Xftp传送至指定目录,也可以cd到指定目录,wget 下载地址; 进行下载。

6.正式编译安装

安装MysqL:

MysqL需要Cmake进行编译安装,所以在安装MysqL前必须先安装Cmake


解压Cmake:
[root@jhq0113 src]# tar xzvf cmake-3.1.1.tar.gz

进入cmake解压后目录:
[root@jhq0113 src]# cd cmake-3.1.1

预编译,这个过程可能需要一段时间:
[root@jhq0113 cmake-3.1.1]# ./configure

编译并安装:
[root@jhq0113 cmake-3.1.1]# make && make install

添加MysqL
[root@jhq0113 cmake-3.1.1]# groupadd MysqL

创建用户MysqL并加入到MysqL组,不允许MysqL用户直接登录系统
[root@jhq0113 cmake-3.1.1]# useradd -g MysqL MysqL -s /bin/false

创建MysqL数据库存放目录
[root@jhq0113 cmake-3.1.1]# mkdir -p /data/MysqL

设置MysqL数据库存放目录权限
[root@jhq0113 cmake-3.1.1]# chown -R MysqL:MysqL /data/MysqL

返回/usr/local/src目录:
[root@jhq0113 cmake-3.1.1]# cd /usr/local/src

解压MysqL:
[root@jhq0113 src]# tar xzvf MysqL-5.6.13.tar.gz

进入MysqL解压目录:
[root@jhq0113 src]# cd MysqL-5.6.13

用Cmake预编译MysqL,此过程可能需要一段时间:
[root@jhq0113 MysqL-5.6.13]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/MysqL -DMysqL_DATADIR=/data/MysqL -DSYSCONFDIR=/etc/

编译:
[root@jhq0113 MysqL-5.6.13]# make

安装:
[root@jhq0113 MysqL-5.6.13]# make install

拷贝配置文件(如果/etc目录下面默认有一个my.cnf,直接覆盖即可):
[root@jhq0113 support-files]# cp /usr/local/MysqL/support-files/my-default.cnf /etc/my.cnf

添加MysqL路径:
[root@jhq0113 support-files]# vim /etc/my.cnf

修改后:

生成MysqL系统数据库
[root@jhq0113 support-files]# /usr/local/MysqL/scripts/MysqL_install_db –user=MysqL –basedir=/usr/local/MysqL –datadir=/data/MysqL

MysqL加入系统启动:
[root@jhq0113 support-files]# cp /usr/local/MysqL/support-files/MysqL.server /etc/rc.d/init.d/MysqLd

增加MysqLd执行权限:
[root@jhq0113 support-files]# chmod 755 /etc/init.d/MysqLd

MysqLd加入开机启动:
[root@jhq0113 support-files]# chkconfig MysqLd on

编辑配置文件
[root@jhq0113 support-files]# vim /etc/init.d/MysqLd

修改后:

MysqL服务加入系统环境变量:
[root@jhq0113 support-files]# vim /etc/profile

修改后:

将myslq的库文件链接到系统默认的位置,以确保在编译类似PHP等软件时可以不用指定MysqL的库文件地址。
[root@jhq0113 support-files]# ln -s /usr/local/MysqL/lib/MysqL /usr/lib/MysqL
[root@jhq0113 support-files]# ln -s /usr/local/MysqL/include/MysqL /usr/include/MysqL

重启系统:
reboot

建立连接:
[root@jhq0113 ~]# ln -s /var/lib/MysqL/MysqL.sock /tmp/MysqL.sock

重启MysqLd:
[root@jhq0113 ~]# service MysqLd restart

设置MysqL密码:
[root@jhq0113 support-files]# /usr/local/MysqL/bin/MysqL_secure_installation

修改root密码:

默认没有密码,直接回车,然后输入两次密码,一路按Y 回车下去

设置MysqL可以远程登录
[root@jhq0113 ~]# MysqL -uroot -p

输入密码登录,然后执行下面的语句,限制MysqL root用户可以在指定Ip地址下远程登录
MysqL> grant all privileges on . to ‘root’@’%’ identified by ‘你的密码’;

更新权限:
MysqL> flush privileges;

退出
MysqL> exit;

这样你的MysqL就可以在远程用Navicat进行远程登录了。

至此,MysqL安装完毕。

安装Nginx:
安装Nginx之前需要安装pcre,进入/usr/local/src目录,解压pcre,进入pcre解压目录,执行以下命令进行编译安装:
[root@jhq0113 pcre-8.35]# ./configure –prefix=/usr/local/pcre && make && make install

创建web组合web用户,不允许web用户直接登录系统:
[root@jhq0113 pcre-8.35]# groupadd web
[root@jhq0113 pcre-8.35]# useradd -g web web -s /bin/false

编译安装Nginx,解压,进入安装目录,执行以下命令:
[root@jhq0113 Nginx-1.7.0]# ./configure –prefix=/usr/local/Nginx –without-http_memcached_module –user=web –group=web –with-http_stub_status_module –with-openssl=/usr/ –with-pcre=/usr/local/src/pcre-8.35
注意:–with-pcre=/usr/local/src/pcre-8.31指向的是源码包解压的路径,而不是安装的路径,否则会报错

编译安装:
[root@jhq0113 Nginx-1.7.0]# make && make install

编辑Nginx启动命令:
[root@jhq0113 Nginx-1.7.0]# vim /etc/init.d/Nginx

加入下面内容

#!/bin/bash 
# Nginx Startup script for the Nginx HTTP Server

# it is v.0.0.2 version.

# chkconfig: - 85 15

# description: Nginx is a high-performance web and proxy server.

# It has a lot of features,but it's not for everyone.

# processname: Nginx

# pidfile: /var/run/Nginx.pid

# config: /usr/local/Nginx/conf/Nginx.conf

Nginxd=/usr/local/Nginx/sbin/Nginx

Nginx_config=/usr/local/Nginx/conf/Nginx.conf

Nginx_pid=/usr/local/Nginx/logs/Nginx.pid

RETVAL=0

prog="Nginx"

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0

[ -x $Nginxd ] || exit 0

# Start Nginx daemons functions.

start() {

if [ -e $Nginx_pid ];then

echo "Nginx already running...."

exit 1

fi

echo -n $"Starting $prog: "

daemon $Nginxd -c ${Nginx_config}

RETVAL=$?

echo

[ $RETVAL = 0 ] && touch /var/lock/subsys/Nginx

return $RETVAL

}

# Stop Nginx daemons functions.

stop() {

echo -n $"Stopping $prog: "

killproc $Nginxd

RETVAL=$?

echo

[ $RETVAL = 0 ] && rm -f /var/lock/subsys/Nginx /usr/local/Nginx/logs/Nginx.pid

}

reload() {

echo -n $"Reloading $prog: "

#kill -HUP `cat ${Nginx_pid}`

killproc $Nginxd -HUP

RETVAL=$?

echo

}

# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

reload)

reload

;;

restart)

stop

start

;;

status)

status $prog

RETVAL=$?

;;

*)

echo $"Usage: $prog {start|stop|restart|reload|status|help}"

exit 1

esac

exit $RETVAL

赋予Nginx执行权限:
[root@jhq0113 Nginx-1.7.0]# chmod 775 /etc/init.d/Nginx

设置Nginx开机启动:
[root@jhq0113 Nginx-1.7.0]# chkconfig Nginx on

启动Nginx:
[root@jhq0113 Nginx-1.7.0]# service Nginx start

测试Nginx安装和启动状态:

至此,Nginx安装完毕,待安装好PHP后再做对PHP支持和指定自定义发布目录设置。

安装PHP
安装PHP之前需要安装libmcrypt:
将libmcrypt解压,进入解压目录,执行以下命令:
[root@jhq0113 libmcrypt-2.5.8]# ./configure && make && make install

安装wget组件:
[root@jhq0113 src]# yum install wget

进入/usr/local/src/目录下载mhash:
[root@jhq0113 src]# wget http://soft.7dot.com/soft/mhash-0.9.9.9.tar.gz

下载完毕,解压安装:
[root@jhq0113 mhash-0.9.9.9]# ./configure && make && make install

进入/usr/local/src/目录,下载mcrypt:
[root@jhq0113 src]# wget http://110.96.192.10:81/1Q2W3E4R5T6Y7U8I9O0P1Z2X3C4V5B/soft.7dot.com/soft/mcrypt-2.6.8.tar.gz

解压后,进入解压目录,执行以下命令:
[root@jhq0113 mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib

编译安装:
[root@jhq0113 mcrypt-2.6.8]# ./configure && make && make install

等待安装完成,解压PHP:
[root@jhq0113 src]# tar jvxf PHP-5.6.5.tar.bz2

安装freetype:
[root@jhq0113 PHP-5.6.5]# yum install freetype-devel

PHP5.5以上需要安装开发工具:
[root@jhq0113 PHP-5.6.5]# yum groupinstall “Development Tools”

建立PHP安装目录:
[root@jhq0113 libmcrypt-2.5.8]# mkdir -p /usr/local/PHP5

进入PHP解压目录,预编译:
[root@jhq0113 PHP-5.6.5]# ./configure –prefix=/usr/local/PHP5 –with-config-file-path=/usr/local/PHP5/etc –with-MysqL=/usr/local/MysqL –with-MysqLi=/usr/local/MysqL/bin/MysqL_config –with-MysqL-sock=/tmp/MysqL.sock –with-gd –with-iconv –with-zlib –enable-xml –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –enable-mbregex –enable-fpm –enable-mbstring –enable-ftp –enable-gd-native-ttf –with-openssl –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –enable-session –with-mcrypt –with-curl –with-pdo-MysqL=/usr/local/MysqL –with-fpm-user=web –with-fpm-group=web –with-png-dir –with-freetype-dir –with-jpeg-dir

如果预编译总是不通过,可以参考下面这篇博客解决问题再次预编译,知道预编译通过。
http://lyp.cn/350_how-to-fix-php-compile-errors

编译,此过程配置不好的电脑时间会很长:
make

安装:
make install

复制PHP配置文件到安装目录:
[root@jhq0113 PHP-5.6.5]# cp PHP.ini-production /usr/local/PHP5/etc/PHP.ini

删除系统自带配置文件
[root@jhq0113 PHP-5.6.5]# rm -rf /etc/PHP.ini

添加软连接:
[root@jhq0113 PHP-5.6.5]# ln -s /usr/local/PHP5/etc/PHP.ini /etc/PHP.ini

拷贝模板文件PHP-fpm配置文件
[root@jhq0113 PHP-5.6.5]# cp /usr/local/PHP5/etc/PHP-fpm.conf.default /usr/local/PHP5/etc/PHP-fpm.conf

编辑PHP-fpm配置文件
[root@jhq0113 PHP-5.6.5]# vim /usr/local/PHP5/etc/PHP-fpm.conf

去掉pid = run/PHP-fpm.pid前面的;注释
找到user和group,改成:
user=web
group=web

保存退出。拷贝PHP-fpm到系统启动目录:
[root@jhq0113 PHP-5.6.5]# cp /usr/local/src/PHP-5.6.5/sapi/fpm/init.d.PHP-fpm /etc/rc.d/init.d/PHP-fpm

添加PHP-fpm执行权限:
[root@jhq0113 PHP-5.6.5]# chmod +x /etc/rc.d/init.d/PHP-fpm

设置PHP-fpm开机启动:
[root@jhq0113 PHP-5.6.5]# chkconfig PHP-fpm on

编辑PHP.ini:
[root@jhq0113 PHP-5.6.5]# vim /usr/local/PHP5/etc/PHP.ini

设置时区
修改为:date.timezone = PRC

禁止显示PHP版本的信息
修改为:expose_PHP = OFF

支持PHP标签
修改为:short_open_tag = ON

创建web目录:
[root@jhq0113 Nginx-1.7.0]# mkdir -p /home/data/web

设置Nginx支持PHP
[root@jhq0113 PHP-5.6.5]# vim /usr/local/Nginx/conf/Nginx.conf

修改为:
server {
listen 80;
#域名
server_name myPHP.com;
#网站发布目录
root /home/data/web;
#charset koi8-r;

#access_log  logs/host.access.log  main;

  #支持
    location / {
        index index.PHP index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
       # root   html;
    }
    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
       # root   html;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.PHP$ {
        #root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.PHP;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files,if Apache's document root
    # concurs with Nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

设置网站发布目录所有者:
[root@jhq0113 PHP-5.6.5]# chown web.web /home/data/web/ -R

设置目录权限:
[root@jhq0113 PHP-5.6.5]# chmod 700 /home/data/web/ -R

编辑PHP探针:
[root@jhq0113 PHP-5.6.5]# vim /home/data/web/index.PHP

内容PHP代码PHPinfo信息(CSND博客屏蔽掉了PHP代码)。

重启系统:
[root@jhq0113 PHP-5.6.5]# shutdown -r now

在局域网内访问需要在浏览器端PC配置hosts,即C:\Windows\System32\drivers\etc\hosts文件添加以下信息
192.168.1.16 myPHP.com

然后在浏览器端访问:

至此完整的LNMP已经正式完全编译安装完毕。

安装Memcached:
Memcached是做分布式缓存最简单的工具,学习成本也非常低,他可以将数据缓存到内存中,我们可以把一些临时数据放入到Memcached中,例如分布式的session等等,但是不要将持久化的数据放在memcached中,因为Memcached将数据放在内存中,当服务器宕机或者重启时,Memcached中的数据会被清空的,如果你想做持久化的缓存,可以选用Redis等,Redis的数据是持久化的,Redis会按照一定的规律将内存中的数据同步到磁盘中,服务器重启或者宕机,数据是可以恢复的。

安装Memcached之前先要安装libevent:
解压:
[root@jhq0113 src]# tar xzvf libevent-2.0.19-stable.tar.gz

编译安装:
[root@jhq0113 libevent-2.0.19-stable]# ./configure –prefix=/usr/local/libevent/ && make && make install

添加软连接:
[root@jhq0113 libevent-2.0.19-stable]# ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /lib/libevent-2.0.so.5

解压,预编译memcached:
[root@jhq0113 memcached-1.4.22]# ./configure –prefix=/usr/local/memcached/ –with-libevent=/usr/local/libevent/

编译并安装:
[root@jhq0113 memcached-1.4.22]# make && make install

编辑Memcached启动脚本:
[root@jhq0113 memcached-1.4.22]# vim /etc/rc.d/init.d/memcached

#!/bin/sh
#
#memcached: MemCached Daemon
#
# chkconfig: - 90 25
# description: MemCached Daemon
#
# Source function library.
. /etc/rc.d/init.d/functions
. /etc/sysconfig/network
#[ ${NETWORKING} = "no" ] && exit 0
#[ -r /etc/sysconfig/dund ] || exit 0
#. /etc/sysconfig/dund
#[ -z "$DUNDARGS" ] && exit 0
start()
{
        echo -n $"Starting memcached: "
        daemon $MEMCACHED -u daemon -d -m 256  -l 192.168.1.16 -p 11211 -c 128 -P /tmp/memcached.pid
        echo
}
stop()
{
        echo -n $"Shutting down memcached: "
        killproc memcached
        echo
}
MEMCACHED="/usr/local/memcached/bin/memcached"
[ -f $MEMCACHED ] || exit 1
# See how we were called.
case "$1" in
        start)
                start
                ;;
        stop)
                stop
                ;;
        restart)
                stop
                sleep 3
                start
                ;;
        *)
                echo $"Usage: $0 {start|stop|restart}"
                exit 1
esac
exit 0

启动参数解释:
启动参数介绍如下:
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,这里是10MB,
-u是运行Memcache的用户,这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,这里指定了服务器的IP地址192.168.0.200,
-p是设置Memcache监听的端口,这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,这里设置了256,按照服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,也可以启动多个守护进程,不过端口不能重复。

给予memcached执行权限:
[root@jhq0113 memcached-1.4.22]# chmod +x /etc/init.d/memcached

设置memcached开机启动:
[root@jhq0113 memcached-1.4.22]# chkconfig –add memcached
[root@jhq0113 memcached-1.4.22]# chkconfig memcached on

安装telnet服务:
[root@jhq0113 bin]# yum install xinetd
[root@jhq0113 bin]# yum install telnet-server

设置telnet开机启动:
[root@jhq0113 bin]# chkconfig telnet on

将telnet启用:
[root@jhq0113 bin]# vim /etc/xinetd.d/telnet
将disabled变为no

配置防火墙允许23端口:
[root@jhq0113 bin]# vim /etc/sysconfig/iptables

重启防火墙,重启xinetd:
[root@jhq0113 bin]# service xinetd restart

局域网内windows电脑安装telnet客户端:

然后Windows+R,CMD回车。
键入:telnet 192.168.1.16 11211
Windows电脑的dos下开始会有问题,第一行看不见,直接回车从第二行开始操作memcached:

至此,memcached也安装完毕,如果PHP想利用memcached做分布式缓存,需要服务器安装memcached扩展,在yii框架中集成了对memcached做分布式缓存的很好的支持,如果你想把session放在memcached中,就自己查阅资料吧,度娘上一大把,好了,就到这里了。

希望可以帮助到你。

原文链接:https://www.f2er.com/centos/378309.html

猜你在找的CentOS相关文章