设为首页 收藏本站
查看: 895|回复: 0

CentOS6.7源码搭建LNMP平台

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-3 08:31:39 | 显示全部楼层 |阅读模式

LNMP是Linux+ Nginx+ MySQL +PHP的简称。先安装mysql;然后是php,php使用fast-cgi的方式运行;最后安装Nginx。


安装平台:CentOS6.7 X86_64

MySql版本:mysql-5.6.27

MySql安装目录:/usr/local/mysql

MySql数据库存放目录:/data/mysql

MySql的用户和组:mysql:mysql

MySql源码存放目录:/usr/local/src


安装前的准备:

(1)、关闭selinux

         vim /etc/selinux/config

         SELINUX=enforcing     ##加#注释

         SELINUX=disabled             ##增加

         :wq          #保存退出,然后重启系统,如果不重启,可临时关闭使用命令:setenforce0


(2)、添加好防火墙规则到/etc/sysconfig/iptables

[iyunv@balichvm ~]# vim /etc/sysconfig/iptables

-A INPUT -m state --stateNEW -m tcp -p tcp --dport 3306 -j ACCEPT

-A INPUT -m state --stateNEW -m tcp -p tcp --dport 80 -j ACCEPT


:wq保存退出,添加好规则后的防火墙规则如下:

# Firewall configurationwritten by system-config-firewall

# Manual customization ofthis file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --stateESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --stateNEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --stateNEW -m tcp -p tcp --dport 3306 -jACCEPT              #新增

-A INPUT -m state --stateNEW -m tcp -p tcp --dport 80 -jACCEPT                  #新增

-A INPUT -j REJECT--reject-with icmp-host-prohibited

-A FORWARD -j REJECT--reject-with icmp-host-prohibited

COMMIT


1、安装mysql

1)、下载mysql,这里使用的是免编译的安装包,下载地址:

ftp://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz

这是mysql官网提供的一个镜像站点。


首先进入/usr/local/src目录,使用wget命令下载

[iyunv@balichvm src]#

wgetftp://ftp.jaist.ac.jp/pub/mysql/ ... bc2.5-x86_64.tar.gz


2)、解压下载的mysql安装包,然后把解压的文件移动到/usr/local/mysql(移动重命名)

[iyunv@balichvm src]# tarzxvfmysql-5.6.27-linux-glibc2.5-x86_64.tar.gz                                ##解压

[iyunv@balichvm src]# mvmysql-5.6.27-linux-glibc2.5-x86_64/usr/local/mysql              ##移动并重命名


3)、创建用户mysql数据库的用户和用户组mysql,并且这个用户是无需登录系统。

[iyunv@balichvm src]#groupaddmysql                                                                ##创建mysql组

[iyunv@balichvm src]# useradd-s /sbin/nologin -g mysql mysql       ##创建mysql用户加入mysql组,不允许登录


4)、创建用于存放mysql数据库的目录,并且把所有者和所属组设置为mysql

[iyunv@balichvm src]# mkdir-p/data/mysql                            ##创建存放mysql数据库的目录

[iyunv@balichvm src]# chown-R mysql:mysql/data/mysql/             ##修改属主和数组


5)、初始化数据库,在mysql的安装目录下/usr/local/mysql

[iyunv@balichvm src]# cd/usr/local/mysql/                                                                        ##进入mysql安装目录

[iyunv@balichvm mysql]#./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ ##初始化数据库


--user=mysql                                     ##指定数据库的所属主

--datadir=/data/mysql/                      ##指定数据库的数据库文件的存放目录


安装过程中的错误:

Installing MySQL systemtables..../bin/mysqld: error while loading shared libraries: libaio.so.1:cannot open shared object file: No such file or directory


提示缺少了shared libraries: libaio.so,那就安装不上,如下:

[iyunv@balichvm mysql]# yuminstall libaio

然后继续执行上面的安装命令。


如果看到了两个ok ,则表明mysql已经安装成功了。

6)、拷贝配置文件my.cnf

[iyunv@balichvm mysql]# pwd

/usr/local/mysql

[iyunv@balichvm mysql]# cpsupport-files/my-default.cnf /etc/my.cnf                    ##拷贝配置文件

cp:是否覆盖"/etc/my.cnf"? y

[iyunv@balichvm mysql]#



7)、拷贝启动脚本并修改其属主和数组。

[iyunv@balichvm mysql]# cpsupport-files/mysql.server/etc/init.d/mysqld                      ##拷贝启动文件

[iyunv@balichvm mysql]# chmod755 /etc/init.d/mysqld                                                        ##修改权限,增加执行权限


8)、修改启动脚本/etc/init.d/mysqld,并把启动脚本加入到系统服务,设置开机启动。

[iyunv@balichvm mysql]# vim/etc/init.d/mysqld

找到:

basedir=

datadir=

修改为:

basedir=/usr/local/mysql                                              ##mysql数据库的安装目录

datadir=/data/mysql                                                      ##mysql数据库的存放目录


[iyunv@balichvm mysql]#chkconfig --addmysqld                      ##把mysqld添加到系统服务

[iyunv@balichvm mysql]#chkconfig mysqldon                           ##设置为开机启动


9)、启动mysql数据库

[iyunv@balichvm mysql]#/etc/init.d/mysqldstart                              ##启动mysql数据库

StartingMySQL............................................. SUCCESS!


为了验证,我们可以使用ps和netstat查看启动的进程和开启的端口号。

[iyunv@balichvm src]# ps aux|grep mysql|grep -v grep

root      3541  0.0  0.1 106192  1524 pts/2    S    12:38   0:00 /bin/sh/usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql--pid-file=/data/mysql/balichvm.org.pid

mysql     3656 19.1 44.7 1011064 603915pxs/2  Sl   12:38   0:45 /usr/local/mysql/bin/mysqld--basedir=/usr/local/mysql --datadir=/data/mysql--plugin-dir=/usr/local/mysql/lib/plugin --user=mysql--log-error=/data/mysql/balichvm.org.err--pid-file=/data/mysql/balichvm.org.pid


[iyunv@balichvm src]# netstat-lnp |grep mysql|grep -v grep

tcp        0      0:::3306                     :::*                        LISTEN      3656/mysqld        

unix  2      [ ACC ]     STREAM     LISTENING     32648  3656/mysqld         /tmp/mysql.sock


10)、将mysql的安装目录加入到环境变量,这是为了方便使用(如果不加,要登录mysql需要写全路径)


[iyunv@balichvm mysql]# vim/etc/profile                                    #编辑环境变量配置文件

exportPATH=$PATH:/usr/local/mysql/bin                                   #在最面添加


[iyunv@balichvm mysql]#source/etc/profile                              ##刷新一次环境变量


11)、登录mysql、修改mysql密码

登录mysql的方法可以使通过ip/端口或者是socket的方式登录。

ip/端口的方式:mysql –Hhostname –Pport –uuser–ppasswd

socket的方式:mysql –S socketdir –uuser –ppasswd


修改mysql的密码:

[iyunv@balichvm mysql]#mysqladmin -uroot password 'fgjh123.'           ##设置密码为fgjh123.


mysql的完成安装。




2、安装php

PHP版本:php-5.6.13

安装目录:/usr/local/php56

php用户:php-fpm


1)、下载php,地址是:http://cn2.php.net/distributions/php-5.6.13.tar.bz2

[iyunv@balichOS src]# pwd

/usr/local/src                                                                                                    ##进入/usr/local/src目录

[iyunv@balichOS src]# wgethttp://cn2.php.net/distributions/php-5.6.13.tar.bz2           ##下载php


2)、解压php

[iyunv@balichOS src]# tar-jxvf php-5.6.13.tar.bz2                                         ##解压


3)、创建安装php的数据存放目录/usr/local/php56,创建php运行的用户php-fpm,并且该用户不需要登录系统;

[iyunv@balichOS src]# mkdir/usr/local/php56                  ##创建目录

[iyunv@balichOS src]#groupadd php-fpm

[iyunv@balichOS src]# useradd-s /sbin/nologin -M -g php-fpm php-fpm                    ##创建用户

[iyunv@balichOS src]#


4)、配置编译参数

[iyunv@balichOS php-5.6.13]#./configure --prefix=/usr/local/php56--with-config-file-path=/usr/local/php56/etc --enable-fpm--with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql--with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir--with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir--with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp--enable-mbstring --enable-exif --disable-ipv6 --with-pear --with-curl--with-openssl


5)、编译(make)和安装(make install)

[iyunv@balichOS php-5.6.13]#make && make install        ##编译和安装


6)、拷贝php的配置文件php.ini到/usr/local/php56/etc/php.ini.

[iyunv@balichOS php-5.6.13]#cp php.ini-production /usr/local/php56/etc/php.ini                ##拷贝配置文件


7)、拷贝php-fpm的配置文件php-fpm.conf

[iyunv@balichOS php-5.6.13]#cd /usr/local/php56/etc/

[iyunv@balichOS etc]# cpphp-fpm.conf.default php-fpm.conf                       ##拷贝配置文件

[iyunv@balichOS etc]# vimphp-fpm.conf                                               ##编辑php-fpm配置文件

增加或者修改如下配置:

[global]                                              #全局配置

pid =/usr/local/php56/var/run/php-fpm.pid                #pid

error_log = /usr/local/php56/var/log/php-fpm.log           #错认日志

这两行默认是分号 ; 注释的,用的是相对路径,把分号去掉,修为为绝对路径。



[www]                                             #资源池,一般一个网站用一个池

listen =127.0.0.1:9000                                #资源池的监听形式,也有用socket的形式。

user = php-fpm                                     #以那个用户运行

group = php-fpm                                    #以那个组运行

这三行默认存在,不需要修改


pm = dynamic                                      #控制子进程的形式有动态(dynamic)和静态(static)

默认存在,不行修改


pm.max_children = 50                               #子进程最大数

pm.start_servers = 20                                #启动时的进程数

pm.min_spare_servers =5                #保证空闲的进程数最小值,如果空闲进程小于此值,则创建新的子进程

pm.max_spare_servers =35               #保证空闲进程数最大值,如果空闲进程大于此值,此进行清理

上面默认存在,修改数值


pm.max_requests = 500                       #设置每个子进程重生之前服务的请求数

rlimit_files = 1024                             #设置文件打开描述符的rlimit限制

默认没有打开,去掉分号即可。


保存,:wq,退出。

[iyunv@balichOS etc]#/usr/local/php56/sbin/php-fpm –t         ##检查配置文件是否有错误。

[02-Nov-2015 23:48:47]NOTICE: configuration file /usr/local/php56/etc/php-fpm.conf test is successful



8)、拷贝启动脚本php-fpm,修改权限,并加入系统服务

[iyunv@balichOS etc]# cp/usr/local/src/php-5.6.13/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm #拷贝启动脚本

[iyunv@balichOS etc]# chmod755 /etc/init.d/php-fpm                                                             #修改权限

[iyunv@balichOS etc]#chkconfig --add php-fpm                                                                             #加入系统服务

[iyunv@balichOS etc]#chkconfig --level 35 php-fpm on                                                                   #设置开机启动


9)、启动php-fpm进程。

[iyunv@balichOS etc]# servicephp-fpm start                    ##启动php-fpm

Starting php-fpm  done

[iyunv@balichOS etc]# netstat-lnp |grep -v grep|grep php-fpm

tcp        0     0 127.0.0.1:9000             0.0.0.0:*                   LISTEN      61542/php-fpm


兼听的是127.0.0.1:9000。




3、安装Nginx

Nginx安装版本:nginx-1.8.0

Nginx安装目录:/usr/local/nginx


Nginx是由俄罗斯软件工程师Igor Sysoev开发的一个高性能的HTTP和反向代理服务器,具备IMAP/POP3和SMTP服务器功能。Nginx最大的特点是对高并发的支持和高效的负载均衡,在高并发的需求场景下,是Apache服务器不错的替代品。其官网是:http://nginx.org/


1)、下载和解压ngxin,wgethttp://nginx.org/download/nginx-1.8.0.tar.gz

[iyunv@balichOS src]# wget http://nginx.org/download/nginx-1.8.0.tar.gz

[iyunv@balichOS src]# tar-zxvf nginx-1.8.0.tar.gz                                                        ##解压


2)、配置编译参数

[iyunv@balichOS nginx-1.8.0]#./configure \--prxfix=/usr/local/nginx

./configure: error: invalidoption "--prxfix=/usr/local/nginx"

[iyunv@balichOS nginx-1.8.0]#./configure \

>--prefix=/usr/local/nginx \

>--with-http_realip_module \

> --with-http_sub_module\

>--with-http_gzip_static_module \

> --with-http_stub_status_module\

> --with-pcre \

> --with-http_ssl_module


3)、编译(make)和安装(make install)

[iyunv@balichOS nginx-1.8.0]#make && make install


4)、编写nginx的启动和关闭脚本,然后启动Nginx服务。

[iyunv@balichOS nginx-1.8.0]#cd /usr/local/nginx/

[iyunv@balichOS nginx]# ls

conf  html logs  sbin

[iyunv@balichOS nginx]# vim/etc/init.d/nginx                   ##编写nginx启动、关闭脚本

#!/bin/bash

# chkconfig: - 30 21

# description: http service.

# Source Function Library

. /etc/init.d/functions

# Nginx Settings


NGINX_SBIN="/usr/local/nginx/sbin/nginx"

NGINX_CONF="/usr/local/nginx/conf/nginx.conf"

NGINX_PID="/usr/local/nginx/logs/nginx.pid"

RETVAL=0

prog="Nginx"


start() {

        echo -n $"Starting $prog: "

        mkdir -p /dev/shm/nginx_temp

        daemon $NGINX_SBIN -c $NGINX_CONF

        RETVAL=$?

        echo

        return $RETVAL

}


stop() {

        echo -n $"Stopping $prog: "

        killproc -p $NGINX_PID $NGINX_SBIN-TERM

        rm -rf /dev/shm/nginx_temp

        RETVAL=$?

        echo

        return $RETVAL

}


reload(){

        echo -n $"Reloading $prog: "

        killproc -p $NGINX_PID $NGINX_SBIN -HUP

        RETVAL=$?

        echo

        return $RETVAL

}


restart(){

        stop

        start

}


configtest(){

    $NGINX_SBIN -c $NGINX_CONF -t

    return 0

}


case "$1" in

  start)

        start

        ;;

  stop)

        stop

        ;;

  reload)

        reload

        ;;

  restart)

        restart

        ;;

  configtest)

        configtest

        ;;

  *)

        echo $"Usage: $0{start|stop|reload|restart|configtest}"

        RETVAL=1

esac


exit $RETVAL


保存 :wq 退出。


更改权限,添加到系统服务列表,设置开机启动

[iyunv@balichOS nginx]# chmod755 /etc/init.d/nginx                     ##更改权限

[iyunv@balichOS nginx]#chkconfig --add nginx                       ##添加到系统服务列表

[iyunv@balichOS nginx]#chkconfig --level 35 nginx on                    ##设置开机启动

[iyunv@balichOS nginx]#


[iyunv@balichOS nginx]#service nginx start                            ##启动nginx服务

正在启动 Nginx:                                           [确定]

[iyunv@balichOS nginx]# psaux |grep -v grep |grep nginx

root     65527 0.0  0.1  44612 1040 ?        Ss   03:17  0:00 nginx: master process /usr/local/nginx/sbin/nginx -c/usr/local/nginx/conf/nginx.conf

nobody   65528 0.0  0.1  45040 1632 ?        S    03:17  0:00 nginx: worker process                                          

[iyunv@balichOS nginx]#netstat -lnp|grep nginx

tcp        0     0 0.0.0.0:80                 0.0.0.0:*                   LISTEN      65527/nginx         

[iyunv@balichOS nginx]#



4、nginx结合php

1)、编辑nginx的配置文件/usr/local/nginx/conf/nginx.conf,修改或者增加如下:

[iyunv@balichOS nginx]# vim/usr/local/nginx/conf/nginx.conf


user  php-fpm php-fpm;             ##首行默认注释,修改为php-fpm的用户。


index  index.html index.htm index.php;      ##增加index.php,对php的支持


        #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  /usr/local/nginx/html/$fastcgi_script_name;

            include        fastcgi_params;

        }

找到上面的那一段,把从location开始部分有#号注释的去掉。最后保存配置文件。然后重启nginxs

[iyunv@balichOS nginx]#service nginx restart

停止 Nginx:                                              [确定]

正在启动 Nginx:                                           [确定]


2)、编辑php文件测试phpd的解析,nginx的默认网站根目录在/usr/local/nginx/html 目录下。

[iyunv@balichOS nginx]# vim/usr/local/nginx/html/info.php


<?php

        phpinfo();

?>

保存 :wq,然后使用浏览器或者curl测试。

[iyunv@balichOS nginx]# curl-I localhost/ino.php

HTTP/1.1 404 Not Found

Server: nginx/1.8.0

Date: Mon, 02 Nov 201519:44:29 GMT

Content-Type: text/html;charset=UTF-8

Connection: keep-alive

X-Powered-By: PHP/5.6.13


已经正常解析了。LNMP环境搭建完成。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-134288-1-1.html 上篇帖子: LAMP分布式部署 下篇帖子: WampServer 多站点域名访问配置教程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表