将博客迁移至Nginx+PHP-FPM环境

最近我和我雪一致得出结论:Alpharacks这家VPS服务商就是个傻吊。卡成马疯狂掉线,ss才是它的归宿。我雪转移回了传家宝12刀的搬瓦工,然而我并没有搬瓦工,Virmach口碑一直还不错,我从15年就持有他们一个小鸡,内存只有128m,没有办法装XAMPP,装到一半爆内存,我便自己折腾了一下搭建了Nginx+PHP-FPM环境使用。

环境

  • Debian 7 x86
  • Nginx 1.2.1
  • PHP5-FPM 5.4
  • MySQL 5.5.60

安装过程

Virmach并没有提供Debian 8/9的32位版本,想了想我的128m内存,在Debian 8 64位和Debian 7 32位之间我还是选择了后者,软件包老点就老点吧,又不是不能用。

因为习惯了输入apt而不是apt-get,我在bashrc里alias了一下

alias apt='apt-get'

其实Debian 7只能用apt-get,后文全是apt不再赘述。

Nginx

Debian安装Nginx非常简单,直接apt install即可。值得一提的是,Debian非常贴心的将上游的Nginx打包成了3份:nginx-light, nginx-full(即正常安装的nginx), nginx-extra。具体区分可见官方wiki:https://wiki.debian.org/Nginx我仔细看了一遍,nginx-light即可满足我的需要,直接安装:

apt install nginx-light

安装成功后直接

nginx

启动,然后用w3m localhost试试,可以正常访问

MySQL

根据https://wiki.debian.org/MySql直接

apt install mysql-server

安装完成后为了外网可以访问需要修改下my.cnf
my.cnf

bind-address=127.0.0.1

改为

bind-address=0.0.0.0

然后

$ mysql -u root -p

进入mysql控制台

> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'ROOTPASSWORD' WITH GRANT OPTION;
> flush privileges;

修改完成后重新启动mysql服务,由于Debian 7还没有使用systemd,我们需要

$ /etc/init.d/mysql restart

PHP

PHP针对不同服务器的最佳接口提供PHP端的不同接口,Apache2的最佳选择是以apache mod形式提供的,Nginx最佳选择是FastCGI形式提供的PHP-FPM,Lighttpd等其他使用则使用CGI。
Debian对上述形式的PHP都为我们打好了包,包名分别是libapache2-mod-php5,php5-fpm,php5-cgi,我们这里选择php5-fpm。

直接

apt install php5-fpm

然后修改nginx配置文件,通过debian对nginx配置文件的组织,我们可以在/etc/nginx/nginx.conf中发现具体每个server的配置在/etc/nginx/sites-enable/里,我们对其中default默认配置进行编辑,将其中PHP FastCGI部分注释去除

/etc/nginx/sites-enable/default

由于个人习惯,我顺便把webroot搬至了/opt/htdocs/main中。

然后重启nginx:

$ nginx -s reload

即可,使用phpinfo测试一下php的配置情况:
/opt/htdocs/main/phpinfo.php

<?php
    phpinfo();
?>

但是,可以在phpinfo里看到,现在并没有安装php的mysql,mysqlnd或者mysqli扩展,对Debian软件包一番搜索,我发现原来Debian都为我们打好了包,直接

apt install php5-mysqlnd

安装过程中php-fpm自动重启,刷新下phpinfo页面,即可看到mysql已经准备就绪。


至此,整个Nginx+PHP+MySQL环境安装完成,剩下的便是博客等各个文件的转移,不再细表。


title: 将博客迁移至Nginx+PHP-FPM环境
time: 2018-04-26 22:39
tags: Nginx,PHP-FPM,LNMP
category: Study

标签: Nginx PHP-FPM LNMP

发表评论: