折腾VPS笔记:Debian+LNMP的配置 (安装)

DPMag.net之前用VPS默认提供的CentOS 6.5+LAMP来搭建,一直稳定运行,加上本站访问量实在有限,似乎也扯不到什么安全性的问题。

但是宅男不折腾折腾是会手痒的。在另一台VPS上,我正在玩一些新潮的东西。系统弄到了Debian 8.0,Apache换成了nginx,MySQL Server也换成了MariaDB,整个是一套非典型LNMP。

LNMP好说,选Debian很多人会嘲笑我。但我有我的理由

第一,CentOS、Fedora官方yum源提供的软件版本实在太旧了。最主要的是php,还停留在5.4版本。功能上当然是没有太大问题,但问题是PHP官方已经宣布PHP 5.4 EOL(End Of Life),就像XP一样,就算有Bug人家也不管了。

怎么办?谁能说集影将来不会火起来?有漏洞可乍整。

现在很多人,用remi的repo来安装和更新PHP,用nginx的官方repo来安装和更新nginx,似乎解决了这个问题。可是这样一来,CentOS或者RH所标榜的充分测试、稳定强健又能体现在哪里?和Debian/Ubuntu又有什么区别?

想想这些年的一些动不动波及几万几十万台服务器的安全问题吧,大多数都是些死守旧版本、不肯更新到新版软件的。

第二,事易时移,Linux Server各门类软件的形势已经有了很大变化。比如MySQL。自从给Oracle收购了以后就每况愈下。倒不是说产品退步了,而是形势变了,现在是它的两个分支:MariaDB和Percona逐渐流行。咱不说Oracle肯不肯好好弄MySQL(毕竟有Sun的往事在那里),既然MariaDB开始流行,将来分得MySQL半壁江山是肯定的,不熟悉一下怎么行。

还有引起巨大争议的systemd。吵归吵,架不住Redhat/CentOS和Debian/Ubuntu两个阵营先后都选择了它。这就说明systemd肯定有它的强项,不熟悉它就落伍了。

第三,咱还是小站,说白了崩溃一年都没人在意……

(题外话:有很多人觉得CentOS/Fedora操作太难,对新手不友好。这一点我真没看出来。而且从我的使用来看,操作上和Debian/Ubuntu相比似乎更方便一些,比如yum就比apt-get容易)

废话就说到这里。进入主题。

Debian 8.0 + nginx + MariaDB + PHP的网站搭建。

注:以下命令部分是需要root权限的,如果你不是用root用户登录SSH的话,要加上sudo才行。

安装Debian 8.0

在VPS的管理界面安装好Debian 8.0。照例,apt-get update, apt-get upgrade,升级到最新版本。

安装nginx

1、首先添加nginx官方源的apt-key:

wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key

2、按照这里的指导添加nginx官方源:

vim /etc/apt/sources.list

添加以下两行:

deb http://nginx.org/packages/debian/ jessie nginx
deb-src http://nginx.org/packages/debian/ jessie nginx

这里的jessie,是Debian8.0的codename。如果你用其它版本,就把它换成相应的codename

3、安装

apt-get update
apt-get install nginx

安装PHP5-FPM

php5-fpm是php5的FastCGI进程管理器。FastCGI是一个协议,用来解决PHP解释器反复加载导致运行效率低的问题。php5-fpm就是实现这个协议的一个管理器。
apt-get install php5-fpm
安装的时候apt-get会自动把php5-common等依赖项装上。咱们保持系统尽可能精简。

php5.6似乎集成了mbstring等模块了,不需要另外安装,我安装了以下两个扩展:php5-mcrypt用于加解密的扩展和php5-mysqlnd用于连接和操作MySQL/MariaDB本地服务器的扩展。

以后如果发现需要的话,再安装别的。

安装MariaDB

apt-get install mariadb-server, mariadb-client

Debian官方repo上的版本是10.0.16,官方是10.0.21,都可以。我用Debian的版本。需要官方版,实时保持最新的话戳这里

好了,安装到此结束。很简单吧~

Leave a Reply

Your email address will not be published. Required fields are marked *