网中网 发表于 2015-8-21 10:04:17

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 原版
  我修改过的定制版本与原版有以下不同:


[*]更新 Nginx 1.2.4,原版为 0.8
[*]更新 MySQL 5.5.27,原版为 5.1
[*]更新 PHP 5.4.9,原版为 5.2
[*]由于 PHP 5.4 已包含 PHP-FPM 及 PDO-MySQL,故去掉原版中的安装步骤
[*]优化 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 管理网站程序
页: [1]
查看完整版本: CentOS LNMP 服务器安装配置详解