跳至内容

LNMP手动搭建的方法

发布日期:
作者:
评论数:暂无评论

本教程适用于Debian系(例如Debian、Ubuntu等),本文分四部分:

MariaDB是MySQL的一个分支,兼容MySQL,通常可以直接替代MySQL

请提前开放80和443端口再进行操作。

第一部分:LNMP手动搭建

1. 更新系统

首先,确保你的系统是最新的:

sudo apt update
sudo apt upgrade

2. 安装Nginx

接下来,安装Nginx:

sudo apt install nginx

你可以通过访问你的服务器IP地址来检查Nginx是否安装成功。如果看到默认的Nginx欢迎页面,说明安装成功。这一步需要服务器开放了80端口。

3. 安装MariaDB

安装MariaDB数据库服务器:

sudo apt install mariadb-server

安装完成后,运行安全脚本来增强安全性。

sudo mysql_secure_installation

根据提示,设置MySQL的root密码,并配置其他安全选项。

4. 安装PHP

sudo apt install php-fpm php-mysql

安装完成后看下php-fpm的版本号,下面一步有用

5. 配置Nginx使用PHP

编辑Nginx的默认服务器块配置文件,配置Nginx来处理PHP文件:

sudo vi /etc/nginx/sites-available/default

找到’server’块,并进行以下修改(或者直接删掉里面所有内容,添加下面内容):

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;  # 注意这里要对应实际php-fpm版本
    }

    location ~ /\.ht {
        deny all;
    }
}

保存并退出编辑器。

6. 测试PHP

创建一个PHP测试文件以确认PHP是否工作正常:

sudo vi /var/www/html/info.php

在文件中添加以下内容:

<?php
phpinfo();
?>

保存并退出编辑器。然后,重启Nginx:

sudo systemctl restart nginx

在浏览器中访问http://your_server_ip/info.php,如果看到PHP信息页面,说明PHP配置成功。

7. 安装phpMyAdmin(可选)

如果你需要一个基于Web的MySQL管理工具,可以安装phpMyAdmin:

sudo apt install phpmyadmin

在安装过程中选择Nginx并配置相关设置。完成后,你需要在Nginx中为phpMyAdmin创建一个符号链接:

sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

现在,你可以通过http://your_server_ip/phpmyadmin访问phpMyAdmin。

8. 完成

现在,你的Debian服务器已经配置好了LAMP环境,可以开始搭建和部署你的Web应用了。

第二部分:nginx如何绑定域名

在第一部分第5步的设置中,将server_name _;改成server_name yourdomain.com;然后重启nginx即可。

如果还想新增绑定别的域名,操作步骤如下。

1. 配置DNS

首先,确保你的域名DNS设置正确,指向你的服务器IP地址。你可以在域名注册商的控制面板中进行配置,通常是添加一个A记录,指向你的服务器IP。

2. 配置Nginx服务器块

编辑Nginx的默认配置文件或创建一个新的服务器块配置文件:

sudo vi /etc/nginx/sites-available/your_domain

在文件中添加以下内容:

server {
    listen 80;
    listen [::]:80;

    server_name your_domain www.your_domain;

    root /var/www/your_domain;
    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php-fpm.sock;  # 确保此路径与实际PHP-FPM版本一致
    }

    location ~ /\.ht {
        deny all;
    }
}

将 ‘your_domain’ 替换为你的实际域名。

3. 创建网站根目录

确保网站根目录存在,并且有适当的权限设置:

sudo mkdir -p /var/www/your_domain
sudo chown -R www-data:www-data /var/www/your_domain

4. 创建测试文件

在网站根目录中创建一个测试文件来验证配置:

sudo vi /var/www/your_domain/index.html

添加以下内容:

<!DOCTYPE html>
<html>
<head>
    <title>Welcome to Your Domain</title>
</head>
<body>
    <h1>Success! Your Nginx server block is working!</h1>
</body>
</html>

保存并退出编辑器。

5. 启用配置

在‘sites-enabled ’目录中创建一个指向 ‘sites-available’ 目录中新配置文件的符号链接:

sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

6. 测试Nginx配置

在重新加载Nginx之前,测试配置文件是否有语法错误:

sudo nginx -t

如果没有错误,重新加载Nginx以应用新配置:

sudo systemctl reload nginx

7. 访问域名

现在,你可以在浏览器中访问你的域名 ‘http://your_domain’,应会看到你创建的测试页面

第三部分:nginx如何配置https(可选,但推荐)

为了确保安全性,建议为你的域名配置HTTPS。你可以使用Let’s Encrypt免费SSL证书。以下是使用Certbot获取和安装证书的步骤:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your_domain -d www.your_domain

按照提示完成证书安装过程。完成后,Certbot会自动更新Nginx配置以使用HTTPS。你可以通过访问 https://your_domain 来验证 SSL 证书是否正确安装。

Certbot 的自动续签功能

Certbot 默认安装一个 cron jobsystemd timer 来自动检查并续签即将到期的证书。这个自动续签功能会每天运行两次,并在证书有效期少于30天时自动续签证书。

检查自动续签定时任务

如果你的系统使用 systemd,你可以检查 certbot 的定时任务状态:

sudo systemctl list-timers | grep certbot

你应该会看到类似于以下内容的输出,显示 certbot 定时任务的状态:

Fri 2024-07-23 12:00:00 CET  7h left      n/a                      n/a            certbot.timer           certbot.service

这表明 certbot 定时任务已正确配置。

手动测试自动续签

为了确保自动续签功能正常工作,可以手动运行以下命令来模拟续签过程:

sudo certbot renew --dry-run

如果 --dry-run 测试成功,说明自动续签功能正常。

手动续签证书(如果需要)

如果你需要手动续签证书,可以使用以下命令:

sudo certbot renew

确保Nginx在证书续签后自动重新加载

systemctl reload nginx

第四部分:MariaDB如何新增数据库

1. 登录到MariaDB

首先,使用以下命令登录到MariaDB:

sudo mysql -u root -p

输入你在安装MariaDB时设置的root密码。

2. 创建新数据库

登录到MariaDB后,可以使用以下命令创建一个新数据库:

CREATE DATABASE your_database_name;

将 ‘your_database_name’ 替换为你希望创建的数据库名称。

3. 创建新用户并授予权限

为了安全性,建议为每个数据库创建一个单独的用户,并为该用户授予相应的权限。使用以下命令创建新用户并设置密码:

CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password';

将 ‘your_username’ 替换为你希望创建的用户名,将 ‘your_password’ 替换为你希望设置的密码。

然后,使用以下命令将新用户的权限授予到新创建的数据库:

GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'localhost';

最后,刷新权限使更改生效:

FLUSH PRIVILEGES;

4. 退出MariaDB

完成后,可以使用以下命令退出MariaDB:

EXIT;

通过这些步骤,你就可以成功创建一个新数据库,并为新用户授予访问和管理该数据库的权限。

附加1:其他数据库常用命令

  1. 查看数据库列表,登录到MariaDB输入:
SHOW DATABASES;
  • 执行这条命令后,MariaDB 会列出所有可用的数据库。例如:
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| database_name      |
+--------------------+
  1. 删除数据库:
DROP DATABASE database_name;
  1. 查看用户列表:
SELECT User, Host FROM mysql.user;
  • 执行这条命令后,MariaDB 会显示所有用户及其关联的主机名。例如:
+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | localhost |
| user1            | %         |
| another_user     | 127.0.0.1 |
+------------------+-----------+
  1. 更改已有用户密码,例如更改root用户的密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
  1. 删除已有用户,例如删除一个名为 user1 的用户,且该用户只能从 localhost 访问:
DROP USER 'user1'@'host';
  • 如果user1可以从任何主机访问,则使用 %
DROP USER 'user1'@'host';
  1. 数据库目录:默认在/var/lib/mysql,但实际位置可能会有所不同,查看数据目录位置:
SHOW VARIABLES LIKE 'datadir';
  • 执行后,你将看到类似以下的输出:
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| datadir       | /var/lib/mysql/ |
+---------------+-----------------+

这里的 Value 列显示的路径即为 MariaDB 存储数据库文件的目录。

附加2:如果没有安装phpmyadmin,如何导入和导出数据库

1.导入数据库(将之前备份的sql导入数据库):

连接数据库:

mysql -u 用户名 -p 数据库名

系统会提示您输入密码。

source /路径/你的sql文件.sql

导入后退出即可。

2.导出数据库(将数据库导出为.sql):

mysqldump -uyour_username -p your_database_name > your_database_nameout.sql

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注