ubuntu

如何在Ubuntu上搭建LNMP视频服务器

小樊
50
2025-05-25 19:53:17
栏目: 云计算

在Ubuntu上搭建LNMP(Linux, Nginx, MySQL/MariaDB, PHP)视频服务器涉及多个步骤。以下是一个基本的指南,帮助你完成这个过程:

1. 更新系统

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

sudo apt update
sudo apt upgrade -y

2. 安装Nginx

Nginx是一个高性能的HTTP和反向代理服务器。

sudo apt install nginx -y

安装完成后,启动Nginx并设置开机自启动。

sudo systemctl start nginx
sudo systemctl enable nginx

3. 安装MySQL/MariaDB

你可以选择安装MySQL或MariaDB。这里以MariaDB为例。

sudo apt install mariadb-server -y

启动MariaDB并设置开机自启动。

sudo systemctl start mariadb
sudo systemctl enable mariadb

运行安全脚本以提高安全性。

sudo mysql_secure_installation

4. 安装PHP

安装PHP及其常用扩展。

sudo apt install php-fpm php-mysql -y

配置PHP-FPM以使用Unix套接字。 编辑/etc/php/7.4/fpm/pool.d/www.conf文件(根据你的PHP版本调整路径),找到listen行并修改为:

listen = /run/php/php7.4-fpm.sock

重启PHP-FPM服务。

sudo systemctl restart php7.4-fpm

5. 配置Nginx以支持PHP

编辑Nginx的默认站点配置文件。

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

server块中添加以下内容:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}

保存并退出编辑器,然后测试Nginx配置。

sudo nginx -t

如果没有错误,重新加载Nginx。

sudo systemctl reload nginx

6. 创建视频上传目录

创建一个目录用于存储上传的视频文件,并设置适当的权限。

sudo mkdir -p /var/www/html/videos
sudo chown -R www-data:www-data /var/www/html/videos
sudo chmod -R 755 /var/www/html/videos

7. 配置PHP上传限制

编辑/etc/php/7.4/fpm/php.ini文件(根据你的PHP版本调整路径),增加或修改以下行以允许更大的文件上传。

upload_max_filesize = 100M
post_max_size = 100M

重启PHP-FPM服务。

sudo systemctl restart php7.4-fpm

8. 创建视频上传表单

/var/www/html目录下创建一个HTML文件用于视频上传。

sudo nano /var/www/html/upload.html

添加以下内容:

<!DOCTYPE html>
<html>
<head>
    <title>Video Upload</title>
</head>
<body>
    <h1>Upload Video</h1>
    <form action="upload.php" method="post" enctype="multipart/form-data">
        Select video to upload:
        <input type="file" name="video" id="video">
        <input type="submit" value="Upload Video" name="submit">
    </form>
</body>
</html>

保存并退出编辑器。

9. 创建视频上传处理脚本

/var/www/html目录下创建一个PHP文件用于处理视频上传。

sudo nano /var/www/html/upload.php

添加以下内容:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $target_dir = "/var/www/html/videos/";
    $target_file = $target_dir . basename($_FILES["video"]["name"]);
    $uploadOk = 1;
    $videoFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));

    if ($videoFileType != "mp4" && $videoFileType != "mov" && $videoFileType != "avi") {
        echo "Sorry, only MP4, MOV & AVI files are allowed.";
        $uploadOk = 0;
    }

    if ($_FILES["video"]["size"] > 50000000) {
        echo "Sorry, your file is too large.";
        $uploadOk = 0;
    }

    if ($uploadOk == 0) {
        echo "Sorry, your file was not uploaded.";
    } else {
        if (move_uploaded_file($_FILES["video"]["tmp_name"], $target_file)) {
            echo "The file ". htmlspecialchars(basename($_FILES["video"]["name"])). " has been uploaded.";
        } else {
            echo "Sorry, there was an error uploading your file.";
        }
    }
}
?>

保存并退出编辑器。

10. 测试视频上传

打开浏览器,访问http://your_server_ip/upload.html,上传一个视频文件并检查是否成功上传到/var/www/html/videos目录。

11. 配置视频播放

你可以使用HTML5的<video>标签来播放上传的视频文件。

<!DOCTYPE html>
<html>
<head>
    <title>Video Player</title>
</head>
<body>
    <h1>Video Player</h1>
    <video width="320" height="240" controls>
        <source src="/videos/your_video.mp4" type="video/mp4">
        Your browser does not support the video tag.
    </video>
</body>
</html>

your_video.mp4替换为你上传的视频文件名。

通过以上步骤,你应该能够在Ubuntu上成功搭建一个基本的LNMP视频服务器。根据需要,你可以进一步优化和扩展这个服务器。

0
看了该问题的人还看了