• CentOS LNMP 服务器安装配置详解


    LAMP(Linux + Apache + MySQL + PHP)长期以来一直是搭建网站的经济实用之选。但随着 Igor Sysoev 开发的 Nginx 服务器渐渐火热起来,LNMP(Linux + Nginx + MySQL + PHP)成为了一个新的选择。

    Nginx 服务器比 Apache 服务器更小,运行时消耗资源也少一些,并发性能更高。另外,其配置文件也比 Apache 更简明易懂。不过,目前它的中文文档还不太完整,也不够新,比起 Apache 的文档来说还有些简陋,所以对于像我这种英文不熟的人来说读起来未免困难。不过,如果熟悉 Apache,上手应该也不会很困难。

    在本文中,我将以亲身实践的经历,讲一讲从安装 CentOS 6 开始的 LNMP 服务器配置全过程。

     

    VPS 用户可以跳过系统安装和初始配置步骤

    安装 CentOS 6

    为了节省资源,我选择了 CentOS 6 Minimal 64 位版,刻光盘或通过 U 盘安装。

    下载 CentOS 6 Minimal 64 位版  选择其他镜像站

    具体安装过程不再详述,只需注意安装语言选择英语,时区选择“Asia/Chongqing”或“Asia/Shanghai”,并注意为 root 设置强密码即可。另外,在虚拟机上安装时,最好将网络连接设置为桥接方式(Bridged Adapter)。

    连接网络

    刚安装好的 CentOS 还没有正确连接到网络,我们需要进行设置。一般来说,在服务器上都不使用 DHCP 服务,故以下为例:

    IP:       192.168.1.253
    Netmask:  255.255.255.0
    Gateway:  192.168.1.1
    DNS:      61.139.2.69 218.6.200.139
    Hostname: www.mysite.com

    设置 IP 地址等,编辑 /etc/sysconfig/network-scripts/ifcfg-eth0:

    DEVICE="eth0"
    HWADDR="08:00:27:E8:5E:86"
    NM_CONTROLLED="no"
    ONBOOT="yes"
    BOOTPROTO=none
    IPADDR=192.168.1.253
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1

    这里需要注意的有:NM_CONTROLLED 设为 no 以拒绝其他网管软件的管理,ONBOOT 设为 yes 以开机启动,BOOTPROTO 设为 none 以禁用 DHCP。

    设置 DNS 服务器,编辑 /etc/resolv.conf:

    nameserver 61.139.2.69
    nameserver 218.6.200.139

    设置主机名称,编辑 /etc/sysconfig/network,:

    NETWORKING=yes
    HOSTNAME=www.mysite.com

    编辑 /etc/hosts,在此文件下方添加一行:

    192.168.1.253    www.mysite.com

    最后,执行命令 service network restart 重启网络连接。

    另外,新安装的 CentOS 默认防火墙没有开放 80 端口。请编辑 /etc/sysconfig/iptables,加入以下行,然后执行命令 service iptables restart 重启防火墙:

    -A INPUT -p tcp --dport 80 -j ACCEPT

    安装必备软件包和设置自动校时

    执行以下命令安装必备软件包:

    yum -y install wget vim sudo screen crontabs ntpdate

    设置每早 6:00 对时,编辑计划任务文件 /etc/crontab,添加一行,:

    0 6 * * * root /usr/sbin/ntpdate 210.72.145.44 time.nist.gov > /dev/null

    Update(11/06/2012): 在命令的最后加上 > /dev/null 可以隐藏命令输出的信息(但不包括错误信息),这可以让你不会在每次对时后都收到一封邮件,而一旦出现错误时你仍可知晓。如果添加 &> /dev/null 则会隐藏所有输出,包括错误信息。

    最后,执行命令 service crond start 启动计划任务。

    配置 SSH

    要进行远程管理,需要配置 SSH。为了提高安全性,我们需要更改 SSH 服务的默认端口,并另行建立新的账户,并禁止 root 远程登录。

    如果使用的是 VPS 或独立主机,只能通过 SSH 远程操作时,进行此步时一定要多加小心。更改端口或禁用 root 时,一定要先测试以新的端口和账户能否顺利登录,才能去掉原来的默认端口并禁用 root。这能避免意外情况导致无法再登录服务器。

    首先,建立一个新用户,并设置密码:

    useradd -G wheel mysiteadmin
    passwd mysiteadmin

    然后,授予 sudo 权限,用 visudo 命令编辑 /etc/sudoers,添加 mysiteadmin 一行:

    ## Allow root to run any commands anywhere
    root           ALL=(ALL)     ALL
    mysiteadmin    ALL=(ALL)     NOPASSWD:ALL

    CentOS 6 Minimal 默认已经安装了 SSH,如果没有安装,请执行 yum install openssh-server。

    编辑 SSH 配置文件 /etc/ssh/sshd_config,将原来的“# Port 22”改为以下两行,将 4671 改为你想要的端口号,注意不要与现有软件使用的端口相冲突:

    Port 22
    Port 4671

    然后在此文件中搜索“PermitRootLogin yes”,改为“PermitRootLogin no”。

    接着在防火墙上开放新的 SSH 端口,编辑 /etc/sysconfig/iptables,加入如下一行,然后执行命令 service iptables restart 重启防火墙:

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 4671 -j ACCEPT

    最后用新的账户和端口登录服务器,测试无问题后,去掉 SSH 配置文件和 iptables 规则中的 22 端口。

    至此,系统的安装和初始配置已告完成。可以开始安装 Nginx + MySQL + PHP 了。

    安装 LNMP

    首先感谢军哥(Licess)制作的原版 LNMP 一键安装包。

    你可以根据自己的喜好,选择我修改过的定制版 LNMP 一键安装包(lnmp0.7-james-20121206.7z),也可以选择 LNMP.org 提供的原版安装包。

    下载 LNMP 一键安装包定制版  下载 LNMP.org 原版

    我修改过的定制版本与原版有以下不同:

    1. 更新 Nginx 1.2.4,原版为 0.8
    2. 更新 MySQL 5.5.27,原版为 5.1
    3. 更新 PHP 5.4.9,原版为 5.2
    4. 由于 PHP 5.4 已包含 PHP-FPM 及 PDO-MySQL,故去掉原版中的安装步骤
    5. 优化 Nginx 配置文件,便于设置域名是否使用 www 前缀、URL Rewrite、上传目录安全防护等

    安装过程比较漫长,故安装前请用 screen -S lnmp 创建新会话,一旦出现网络不稳定导致 SSH 断线等情况,只需用 screen -r lnmp 命令返回会话即可,不会造成安装过程中断。安装完成后,用 exit 命令退出会话。如果系统没有安装 screen,请执行 yum install screen 命令。

    将下载到的 LNMP 安装包通过 WinSCP、FTP 等直接上传到服务器的 /home 目录下。如果使用原版安装包,则可以直接通过 wget 命令直接下载到服务器上。下载好后,便可以开始解压安装了:

    7z e lnmp0.7-james-20121206.7z
    cd lnmp0.7-james
    ./sh centos.sh | tee lnmp.log (Debian、Ubuntu 系统则相应选择 debian.sh 和 ubuntu.sh)

    然后,根据提示输入域名和 MySQL root 密码,提示“Press any key to start…”后按任意键开始安装。

    根据服务器配置及网络连接速度不同,安装过程可能会持续 30-60 分钟不等。

    安装完成后,可以试试能否访问。用 /root/lnmp {start|stop|reload|restart|kill|status} 即可控制 LNMP 的运行。

    要安装 ionCube、eAccelerator、Pure-FTPd、VSFTPd 等,可以参见 LNMP.org 的安装说明

    延伸阅读:
    详细了解 Linux 的网络连接设置:鸟哥的 Linux 私房菜 – 连上 Internet
    详细了解 Linux 计划任务:鸟哥的 Linux 私房菜 – 例行性工作排程 (crontab)
    设置更安全的 SSH 登录:设置 SSH 通过密钥登录
    了解 PHP 上传相关设置:PHP 上传文件故障排除
    了解为 LNMP 配置添加版本控制:用 Subversion 管理网站程序

  • 相关阅读:
    网站宣传【免费】
    gridview行链接
    提前预告
    C#中var、int、object性能比较
    20部软件测试视频教程整合
    PO、VO、DTO、POJO
    云计算、虚拟化、容器
    Linux打包和压缩的区别
    Linux之Shell定时备份数据库
    luogu P1997 faebdc的烦恼 | 莫队
  • 原文地址:https://www.cnblogs.com/Toeasy/p/3001500.html
Copyright © 2020-2023  润新知