WordPress建站:LNMP服务的搭建

首先我得说这是我第二次搭建LNMP了。第一次搭建的时候没出什么问题,很快就弄好了,遂以为其实也没什么坑。结果第二次弄了几乎整整一天,重置了两次系统才弄好(幸好阿里云重置系统比较方便)!现在把坑分享给大家,大家引以为鉴~~~

什么是LNMP?LNMP是Linux, Nginx, MySQL, PHP的缩写,是一套用来运行网站或者服务器的高效的组件。与之类似的组合还有LAMP(Linux, Apache, MYSQL, PHP)。一般我们认为Nginx比Apache并发性能好一些,所以我采用了LNMP。

大坑1:LNMP一键安装包

第一次我是从头开始一个一个部件来安装的,也没出什么问题,只是略为繁琐,需要配置不少东西。于是第二次我想偷偷懒,看到有LNMP一键安装包,可以无人值守安装,方便快捷,内心狂喜。方便倒是挺方便的,只需要指明要安装的PHP,MySQL版本,然后就可以帮你自动安装了。不过,这整个过程耗费了整整三个小时——全程都是下载源代码然后编译,不慢才怪呢。速度慢嘛也没什么大问题,装好后发现软件安装的位置都不是默认的位置(汗),然后root目录也不是正常的/var/www/html(大汗),这~~~以后出了问题要改配置文件什么的也麻烦呀!没办法,重置系统!

应对策略:自己动手,丰衣足食!

大坑2:安装顺序

重置完系统,我开始乖乖的一个个装。先装PHP,MySQL,Nginx…打开浏览器,输入ip——

呀嘿,怎么显示的是Apache2!我明明装的是Nginx呀!(汗汗汗)仔细回忆,好像在装PHP的时候屏幕上闪过Apache2,莫非是Apache2作为依赖给安装上了……第一次装的时候可没这么多问题的呀!难道第一次运气好,顺序给蒙对了(⊙﹏⊙)。

应对策略:先装Nginx,然后装MySQL,最后装PHP!

正确操作

安装Nginx

sudo apt install nginx

安装MySQL

sudo apt install mysql

安装PHP7.2

sudo add-apt-repository ppa:ondrej/php -y
sudo apt install php7.2-mysql php7.2-fpm php7.2-gd php7.2-mbstring php7.2-xmlrpc php7.2-curl
sudo apt install php7.2

在安装的时候要注意一下会不会顺便把Apache2作为依赖项给装上了。

当然装PHP其他版本都是可以的,把版本号替换掉就行(例如php7.3)。

配置php-fpm

sudo nano /etc/php/7.2/fpm/php.ini
//;cgi.fix_pathinfo=1 改为
cgi.fix_pathinfo=0

这个是为了安全考虑,原因可以看这里

创建数据库

sudo mysql
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'username' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'username';
quit

要把username和password替换成自己的。

配置Nginx

sudo nano /etc/nginx/sites-available/default
server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.php;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                #try_files $uri $uri/ =404;
                try_files $uri $uri/ /index.php?$args;
        }

        # pass PHP scripts to FastCGI server
        #
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;

                # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                # With php-cgi (or other tcp sockets):
                #fastcgi_pass 127.0.0.1:9000;
        }
}

在第8行加入index.php, 两个location 里面的内容也有改变(高亮部分)。

注意:第16行的内容是用于解决固定链接404错误

保存后记得重启一下服务方可生效:

sudo service nginx restart
sudo service php7.2-fpm restart

好了,如果重启服务没有错误提示,理论上LNMP应该搭建好了,我们可以简单验证一下:

cd /var/www/html
sudo nano info.php

写入以下内容:

<?php
phpinfo();
?>

保存后,在浏览器输入http://yourIp/info.php,如果出现了PHP信息页,恭喜你成功了!

发表评论