在Ubuntu上搭建LNMP(Linux, Nginx, MySQL/MariaDB, PHP)视频服务器涉及多个步骤。以下是一个基本的指南,帮助你完成这个过程:
首先,确保你的Ubuntu系统是最新的。
sudo apt update
sudo apt upgrade -y
Nginx是一个高性能的HTTP和反向代理服务器。
sudo apt install nginx -y
安装完成后,启动Nginx并设置开机自启动。
sudo systemctl start nginx
sudo systemctl enable nginx
你可以选择安装MySQL或MariaDB。这里以MariaDB为例。
sudo apt install mariadb-server -y
启动MariaDB并设置开机自启动。
sudo systemctl start mariadb
sudo systemctl enable mariadb
运行安全脚本以提高安全性。
sudo mysql_secure_installation
安装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
编辑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
创建一个目录用于存储上传的视频文件,并设置适当的权限。
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
编辑/etc/php/7.4/fpm/php.ini
文件(根据你的PHP版本调整路径),增加或修改以下行以允许更大的文件上传。
upload_max_filesize = 100M
post_max_size = 100M
重启PHP-FPM服务。
sudo systemctl restart php7.4-fpm
在/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>
保存并退出编辑器。
在/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.";
}
}
}
?>
保存并退出编辑器。
打开浏览器,访问http://your_server_ip/upload.html
,上传一个视频文件并检查是否成功上传到/var/www/html/videos
目录。
你可以使用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视频服务器。根据需要,你可以进一步优化和扩展这个服务器。