zoukankan      html  css  js  c++  java
  • 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 管理网站程序

  • 相关阅读:
    HDU 1058 Humble Numbers
    HDU 1160 FatMouse's Speed
    HDU 1087 Super Jumping! Jumping! Jumping!
    HDU 1003 Max Sum
    HDU 1297 Children’s Queue
    UVA1584环状序列 Circular Sequence
    UVA442 矩阵链乘 Matrix Chain Multiplication
    DjangoModels修改后出现You are trying to add a non-nullable field 'download' to book without a default; we can't do that (the database needs something to populate existing rows). Please select a fix:
    opencv做的简单播放器
    c++文件流输入输出
  • 原文地址:https://www.cnblogs.com/Toeasy/p/3001500.html
Copyright © 2011-2022 走看看