AVideo(YouPHPTube)をUbuntu 22.04 にインストールする方法

概要

YoutubeCloneサイトのAVideo(YouPHPTube)をインストールの備忘録。

最新の状態にする

apt-get update
apt-get upgrade

必要なパッケージのインストール/設定

基本パッケージのインストール

sudo apt install -y apache2
sudo apt install -y php
sudo apt install -y mysql-server
sudo apt install -y php-cli php-common php-json php-opcache php-readline php-curl php-gd php-xml
sudo apt-get -y install ubuntu-restricted-extras
sudo apt -y install ffmpeg
sudo apt install -y libimage-exiftool-perl
sudo apt -y install python3-pip
sudo -H pip3 install youtube-dl

sudo crontab -e

下記の行を追加します。

@daily sudo -H pip3 install --upgrade youtube-dl > /dev/null

PHPの設定

AVideo(YouPHPTube)にアップロード出来るファイルのサイズを設定します。

sudo vi /etc/php/8.1/apache2/php.ini


メモリ使用量の上限、最大ファイルサイズは環境により適宜設定してください

タイムアウト秒設定
max_execution_time = 65536

;メモリ使用量の上限
memory_limit = -1
 
;POSTデータの最大サイズ ※合計サイズ
post_max_size = 4096M
 
;1ファイルあたりの最大アップロードサイズ
upload_max_filesize = 4096M

apache をリスタートします。

systemctl restart apache2

MySQLの設定

データベースの設定をしていきます。

AVideo(YouPHPTube)で使用するデータベースをMySQLに事前に作成します。
ここでは、以下の値を設定します。

データベース名 :avideo
ユーザ名 : avideo
パスワード : password

$ mysql -u root -h localhost
 
mysql> create database AVideo;
 
mysql> create user AVideo@localhost identified by 'your-password';

mysql> grant all privileges on AVideo.* to AVideo@localhost;

mysql> create database AVideo-Encoder;

mysql> create user AVideoEncoder@localhost identified by 'your-password';
 
mysql> grant all privileges on AVideoEncoder.* to AVideoEncoder@localhost;

mysql> flush privileges;

mysql> exit

AVideo(YouPHPTube)のインストール

cd /var/www/
sudo apt install git
sudo git clone https://github.com/WWBN/AVideo.git
cd AVideo/
sudo git clone https://github.com/WWBN/AVideo-Encoder.git
sudo mv AVideo-Encoder upload
sudo chown www-data:www-data /var/www/AVideo/ -R
sudo chmod -R 777 /var/www/AVideo/

SSL/TLSの設定

sudo vi /etc/apache2/sites-available/avideo.conf
<VirtualHost *:80>
    ServerName web.com
    DocumentRoot /var/www/AVideo

    <Directory /var/www/AVideo>
       DirectoryIndex index.php
       Options +FollowSymLinks
       AllowOverride All
       Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/avideo.error.log
    CustomLog ${APACHE_LOG_DIR}/avideo.access.log combined

</VirtualHost>
sudo a2ensite avideo.conf
sudo a2enmod rewrite
sudo systemctl restart apache2

以下必要な人のみ(不要な方は動作確認とセットアップまで読み飛ばしてください)

SSL/TLS サーバー証明書をお持ちの方は設定してください。

SSLストア とかでも安く買えるので興味があるかたはどうぞ。

SSLの設定

vi /etc/apache2/sites-available/default-ssl.conf
# 3行目:管理者アドレス変更
ServerAdmin webmaster@srv.world
 
# 32,33行目:[1] で取得した証明書に変更
SSLCertificateFile      /etc/letsencrypt/live/www.srv.world/cert.crt
SSLCertificateKeyFile   /etc/letsencrypt/live/www.srv.world/privkey.key
 
# 42行目:コメント解除して [1] で取得したチェインファイルに変更
SSLCertificateChainFile /etc/letsencrypt/live/www.srv.world/chain.crt
a2enmod ssl
systemctl restart apache2
systemctl reload apache2

HTTPS へリダイレクト

HTTP リクエストも全て HTTPS へリダイレクトして Always on SSL とする場合はホスト定義にリダイレクトの設定を追記します。

vi /etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>内に下記の3行を追記

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
<VirtualHost *:80>
    DocumentRoot /var/www/virtual.host
    ServerName www.virtual.host
    ServerAdmin webmaster@virtual.host
    ErrorLog /var/log/apache2/virtual.host.error.log
    CustomLog /var/log/apache2/virtual.host.access.log combined
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
a2enmod rewrite
systemctl restart apache2

動作確認とセットアップ

サイトの基本設定

https://サーバのIPアドレス or ホスト名/

画面が表示されたらインストールは成功です。

各種情報を入力し「Install Now」を押してください。

Your Site URL : サイトのURL
System Path to Application : AVideoのルートフォルダ
Title of your Web Site : サイトのタイトル
Language : 言語
Contact E-mail : メールアドレス
System Admin password : 管理者のパスワード
Confirm System Admin password : パスワード確認
Database Host : localhost
Database Port : 3306
Database User : : AVideo
Database Password : your-password
Database Name : AVideo
Do you want to create database and tables? : Create database and tables

「Install Now」を押して下記の様な画面が出れば成功です。

エラーが出た場合

下記の様な(Please configure your webSiteRootPath)画面が出た場合、ソースの修正が必要です。

下記のファイルを修正してください。

「”;」の部分にサイトのURLを入れてください。

sudo vi /var/www/AVideo/videos/configuration.php (1 件の一致)
	行番号 23: $global['webSiteRootPath'] = '';

不要なディレクトリ削除

不要なディレクトリ削除

sudo rm /var/www/AVideo/install/ -r

エンコードサーバー設定

https://サーバのIPアドレス or ホスト名/YouPHPTube/upload

Your Site URL : サイトのURL/upload/
System Path to Application : /var/www/AVideo/upload/
Database Host : localhost
Database User : AVideoEncoder
Database Password : パスワード
Database Name : AVideo-Encoder
Optional Tables Prefix :
Enter Tables Prefix : Create database and tables?

AVideo Streamer Site URL : サイトのURL
AVideo Streamer Site admin User : admin
AVideo Streamer Site admin Password : パスワード

必要なデータを入力し「Install Now」を押して

下記の様な画面が出たら成功です。

不要なディレクトリ削除

sudo rm /var/www/AVideo/upload/install/ -r

hostsの設定

vi /etc/hosts

下記の一文を追加
127.0.0.1 サーバーのURL

アップロードサイト設定

管理者でログインし「メインメニュー」→「管理パネル」→「設定」→「サイト設定」→「高度な設定」を開きます。

https://サイトのURL/upload/

にURLを入れてあげる。

「保存」を押します。

以上でインストールは完了しました。

ユーザーは管理者で追加出来ますが、自由に登録して使って貰うにはメール送信システムを導入する必要があります。

先ほどの「高度な設定」画面にてメールの設定をしてテストメールにて確認してください。