视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
LinodeLNMP服务器环境配置笔记
2020-11-09 13:08:58 责编:小采
文档

我选的是1GB的套餐,每个月$20,年付减10%,实付$230.21折合人民币1400多点。 Linode 1GB 操作系统: CentOS Linux 6.2 bit 运行环境: Nginx+PHP+MySQL 准备工作 编译环境部署: 在服务器上启用编译环境是非常危险的做法,为了保证安全我专门用一个虚拟机

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

Linode 1GB

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

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

根据VPS操作系统情况下载安装CentOS 6.2 bit, 因为只是做编译机,所以只要装 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, -bit), Compressed TAR Archive
mysql-5.6.11-linux-glibc2.5-x86_.tar.gz

下载之后解压缩即可使用


PHP

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

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

1. 下载

cd ~/packages
wget http://cn2.php.com/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_/libmcrypt-2.5.8-9.el6.x86_.rpm
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_/libmcrypt-devel-2.5.8-9.el6.x86_.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_ 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_/libmcrypt-2.5.8-9.el6.x86_.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/157980_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三个有限的端口,如果有其他需要再自己参考添加就行。

下载本文
显示全文
专题