Linode LNMP服务器环境配置笔记

我选的是1GB的套餐,每个月$20,年付减10%,实付$230.21折合人民币1400多点。

Linode 1GB

Linode 1GB

操作系统: CentOS Linux 6.2 64bit
运行环境: Nginx+PHP+MySQL

准备工作
编译环境部署:
在服务器上启用编译环境是非常危险的做法,为了保证安全我专门用一个虚拟机来做编译工作,编译完成后再将程序部署至服务器即可。

根据VPS操作系统情况下载安装CentOS 6.2 64bit, 因为只是做编译机,所以只要装 Minimal 版就可以了,几百M,下载也很快。
历史版本的ISO文件可以在 http://vault.centos.org 找到。

Minimal版本安装好后不会自动启动网络,需要执行以下操作:
运行命令

dhclient -v eth0

修改文件 /etc/sysconfig/network-scripts/ifcfg-eth0
在文件最后添加一行
BOOTPROTO="dhcp"

再把ONBOOT="no"改成ONBOOT="yes"

这样以后启动都自动连接网络了。

用root登陆后在/root目录建立packages、build两个目录,分别用于放置安装包和解压后的程序目录。
# 安装

yum install gcc make
cd
mkdir packages build

创建用户

groupadd -g 500 www && useradd -g 500 -m -u 500 www
groupadd -g 501 Hessian && useradd -g 501 -m -u 501 Hessian
groupadd -g 27 mysql && useradd -d /www/database -M -g 27 -u 27 mysql

环境变量

修改文件/etc/profile,将下面的内容加到文件末尾

PATH=$PATH:/opt/mysql/bin
PATH=$PATH:/opt/php/bin
PATH=$PATH:/opt/nginx/sbin

添加完成后执行: . /etc/profile
(中间的空格可别漏)


 

Nginx

下载地址:http://nginx.org/en/download.html

1. 下载

cd ~/packages
wget http://nginx.org/download/nginx-1.4.1.tar.gz

2. 解压

cd ~/build
tar -zxf ~/packages/nginx-1.4.1.tar.gz

3. 解决依赖

yum install pcre-devel
yum install zlib-devel

3. 编译

cd nginx-1.4.1
./configure --prefix=/opt/nginx-1.4.1 --with-pcre --with-openssl=/usr
make -j 2 && make install

 

MySQL

下载地址:http://dev.mysql.com/downloads/mysql

这里我选择的是Binary包
Linux - Generic (glibc 2.5) (x86, 64-bit), Compressed TAR Archive
mysql-5.6.11-linux-glibc2.5-x86_64.tar.gz

下载之后解压缩即可使用


 

PHP

虽然YUM有提供PHP,但是出于性能方面和个人需要的考虑我还是选择自己编译。
PHP版本我用的是5.3 主要是不知道5.4会不会带来什么兼容性问题。

下载地址:http://cn2.php.net/get/php-5.3.24.tar.bz2/from/a/mirror

1. 下载

cd ~/packages
wget http://cn2.php.net/get/php-5.3.24.tar.bz2/from/this/mirror

2. 解压

cd ~/build
tar -zjf ~/packages/php-5.3.24.tar.gz

3. 解决依赖

yum install libxml2-devel
yum install libcurl-devel
yum install libjpeg-devel
yum install libpng-devel
yum install freetype-devel
yum install autoconf

libmcrypt 在yum里没有,可以从EPEL里下载
EPEL(Extra Packages for Enterprise Linux)是Fedora社区打造的为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。
安装

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/libmcrypt-2.5.8-9.el6.x86_64.rpm
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/libmcrypt-devel-2.5.8-9.el6.x86_64.rpm

3. 编译

cd php-5.3.24
./configure --prefix=/opt/php-5.3.24 \
--with-config-file-path=/opt/php \
--with-mysql=mysqlnd \
--with-mysql-sock=/tmp/mysql.sock \
--with-iconv-dir=/usr \
--enable-xml \
--with-libxml-dir \
--disable-rpath \
--enable-safe-mode \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--with-gd \
--enable-zip \
--enable-sockets \
--enable-mbstring=all \
--with-mcrypt \
--enable-gd-native-ttf \
--with-freetype-dir=/usr \
--with-jpeg-dir=/usr \
--with-png-dir=/usr\
--with-pdo-mysql=mysqlnd \
--without-pdo-sqlite \
--enable-fpm \
--enable-cli

make -j2
make install

4. 编译扩展

后续步骤

cd /opt
ln -s mysql-5.6.11-linux-glibc2.5-x86_64 mysql
ln -s nginx-1.4.1 nginx
ln -s php-5.3.24 php
tar -czf servers.tar.gz *

将配置文件、启动脚本以及servers.tar.gz 上传到服务器,解压到/opt,放置好配置文件和启动脚本。


VPS 安装步骤

解决依赖

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/libmcrypt-2.5.8-9.el6.x86_64.rpm
yum install libpng libjpeg freetype

yum install svn

创建用户

groupadd -g 500 www && useradd -g 500 -m -u 500 www
groupadd -g 501 Hessian && useradd -g 501 -m -u 501 Hessian
groupadd -g 27 mysql && useradd -d /www/database -M -g 27 -u 27 mysql

上传并解压
将servers.tar.gz、配置文件、启动脚本放到服务器

tar -zxf servers.tar.gz -C /opt
 tar -zxf init-scripts.tar.gz -C /etc/init.d

添加服务

chkconfig --add nginx
chkconfig --add mysql
chkconfig --add php-fpm

建立资源目录

mkdir /www
mkdir /www/database
mkdir /www/logs
mkdir /www/svn-repos

调整目录权限

chown www:www -R /www
chown mysql:mysql -R /www/database

环境变量
修改文件/etc/profile,将下面的内容加到文件末尾

PATH=$PATH:/opt/mysql/bin
PATH=$PATH:/opt/php/bin
PATH=$PATH:/opt/nginx/sbin

添加完成后执行: . /etc/profile
(中间的空格可别漏)


 

安全设置

SSH设置:
修改/etc/ssh/sshd_config
1. 禁用root登陆:PermitRootLogin no
2. 禁用密码登陆:PasswordAuthentication no
3. 启用密钥登陆:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

将公钥加入到服务器上 .ssh/authorized_keys中,生成密钥及具体设置方法参考:

http://stevenz.blog.hexun.com/15798089_d.html

在客户端可以通过下面的命令直接将公钥添加到服务器上:

cat  ~/.ssh/id_rsa.pub | ssh zhaoy@192.168.1.1 "cat - >> ~/.ssh/authorized_keys"

执行完成后重启sshd

service sshd restart

如果无法登陆可以查看安全日志 /var/log/secure 确定问题原因。

 

防火墙设置:
创建文件/etc/sysconfig/iptables,加入以下内容

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

 

这里只开放了22、80、3690三个有限的端口,如果有其他需要再自己参考添加就行。

Read: 2386