虽然市面上现在已经有很多一键安装LNMP的脚本面板等,但是大多都会安装很多依赖,而且编译安装的速度往往不尽人意 ,对于我这种有系统洁癖的人来说,使用apt安装LNMP全套再合适不过了。


0 准备工作

添加一个非root的新账号

# 使用以下命令添加一个user账户
adduser <user>

# 给新账户授予sudo权限
usermod -aG sudo <user>

# 然后登入新账户
su - <user>

升级软件包

# 更新apt源
sudo apt update

# 更新已安装包
sudo apt upgrade

1 安装LNMP

1.1 安装Nginx

安装依赖

sudo apt install curl gnupg2 ca-certificates lsb-release

添加Nginx官方源

echo "deb http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

导入Nginx密钥

curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

更新apt源并安装最新Mainline Nginx

sudo apt update

sudo apt install nginx

如果系统防火墙ufw已启用,则执行以下命令放行80/443端口

sudo ufw allow 'Nginx Full'

1.2 安装MySQL

使用下列命令安装MySQL

sudo apt install mysql-server

设置MySQL root账户密码

sudo mysql

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

quit;

1.3 安装PHP

添加PHP PPA源

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

sudo apt update

安装PHP 7.4

sudo apt install php7.4

安装常用扩展

sudo apt install php7.4-fpm php7.4-mysql php7.4-curl php7.4-json php7.4-mbstring php7.4-xml php7.4-intl

其他扩展(可选)

sudo apt install php7.4-gd
sudo apt install php7.4-soap
sudo apt install php7.4-gmp
sudo apt install php7.4-odbc
sudo apt install php7.4-pspell
sudo apt install php7.4-bcmath
sudo apt install php7.4-enchant
sudo apt install php7.4-imap
sudo apt install php7.4-ldap
sudo apt install php7.4-opcache
sudo apt install php7.4-readline
sudo apt install php7.4-sqlite3
sudo apt install php7.4-xmlrpc
sudo apt install php7.4-bz2
sudo apt install php7.4-interbase
sudo apt install php7.4-pgsql
sudo apt install php7.4-recode
sudo apt install php7.4-sybase
sudo apt install php7.4-xsl
sudo apt install php7.4-cgi
sudo apt install php7.4-dba
sudo apt install php7.4-phpdbg
sudo apt install php7.4-snmp
sudo apt install php7.4-tidy
sudo apt install php7.4-zip

因为安装PHP是同时默认安装了Apache2,所以需要将其卸载。

sudo apt remove apache2

2 LNMP配置

2.1创建网页目录

sudo rm -rf /var/www

sudo mkdir -p /var/www/html

# 将此处<user>替换为你新建账户名
sudo chown <user>:<user> /var/www/html

# 设置目录权限
sudo chmod 775 /var/www/html

新建index.php

vim /var/www/html/index.php

输入:

<?php
phpinfo();
?>

2.2 编辑PHP-FPM配置

sudo vim /etc/php/7.4/fpm/php.ini

查找cgi.fix_pathinfo=1,将前方分号去掉。

重启PHP-FPM服务

sudo systemctl restart php7.4-fpm

2.3 编辑Nginx配置

sudo vim /etc/nginx/nginx.conf

将第二行user www;中的www替换为www-data

配置网站

sudo vim /etc/nginx/conf.d/default.conf

将内容替换为:

server {
    listen       80;
    server_name  localhost;
    root /var/www/html;

    location / {
        index  index.php index.html index.htm;
    }

    location ~ \.php$ {
        fastcgi_pass   unix:/run/php/php7.4-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

重启Nginx

sudo systemctl restart nginx

3 尾声

访问http://ip地址/index.php,若出现php info界面则为LNMP搭建成功。在网站目录中推荐使用新建账户进行操作,使用root可能会造成权限问题。

如果出现502 Bad Gateway错误,那么多半是PHP Unix Socket权限设置有误,请保证Nginx和PHP都以www-data用户运行,并且PHP Unix Socket所有者为www-data,权限为660。

版权声明:本文为原创文章, 本文版权归 祥林嫂 所有

本文链接:https://swjtu.today/archives/LNMP.html

所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。

我的文章对您有帮助吗?
我很可爱 请给我钱
最后修改:2020 年 02 月 13 日 02 : 59 PM
今天我也好饿,请给我钱