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

概要

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

最新の状態にする

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
apt-get update
apt-get upgrade
apt-get update apt-get upgrade
apt-get update
apt-get upgrade

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt install -y apache2
sudo apt install -y apache2
sudo apt install -y apache2
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt install -y php
sudo apt install -y php
sudo apt install -y php
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt install -y mysql-server
sudo apt install -y mysql-server
sudo apt install -y mysql-server
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt install -y php-cli php-common php-json php-opcache php-readline php-curl php-gd php-xml
sudo apt install -y php-cli php-common php-json php-opcache php-readline php-curl php-gd php-xml
sudo apt install -y php-cli php-common php-json php-opcache php-readline php-curl php-gd php-xml
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt-get -y install ubuntu-restricted-extras
sudo apt-get -y install ubuntu-restricted-extras
sudo apt-get -y install ubuntu-restricted-extras
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt -y install ffmpeg
sudo apt -y install ffmpeg
sudo apt -y install ffmpeg
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt install -y libimage-exiftool-perl
sudo apt install -y libimage-exiftool-perl
sudo apt install -y libimage-exiftool-perl
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt -y install python3-pip
sudo -H pip3 install youtube-dl
sudo apt -y install python3-pip sudo -H pip3 install youtube-dl
sudo apt -y install python3-pip
sudo -H pip3 install youtube-dl

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo crontab -e
sudo crontab -e
sudo crontab -e

下記の行を追加します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
@daily sudo -H pip3 install --upgrade youtube-dl > /dev/null
@daily sudo -H pip3 install --upgrade youtube-dl > /dev/null
@daily sudo -H pip3 install --upgrade youtube-dl > /dev/null

PHPの設定

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo vi /etc/php/8.1/apache2/php.ini
sudo vi /etc/php/8.1/apache2/php.ini
sudo vi /etc/php/8.1/apache2/php.ini


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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
タイムアウト秒設定
max_execution_time = 65536
;メモリ使用量の上限
memory_limit = -1
;POSTデータの最大サイズ ※合計サイズ
post_max_size = 4096M
;1ファイルあたりの最大アップロードサイズ
upload_max_filesize = 4096M
タイムアウト秒設定 max_execution_time = 65536 ;メモリ使用量の上限 memory_limit = -1 ;POSTデータの最大サイズ ※合計サイズ post_max_size = 4096M ;1ファイルあたりの最大アップロードサイズ upload_max_filesize = 4096M
タイムアウト秒設定
max_execution_time = 65536

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

apache をリスタートします。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
systemctl restart apache2
systemctl restart apache2
systemctl restart apache2

MySQLの設定

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

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ 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
$ 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
$ 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)のインストール

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
cd /var/www/
cd /var/www/
cd /var/www/
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt install git
sudo git clone https://github.com/WWBN/AVideo.git
sudo apt install git sudo git clone https://github.com/WWBN/AVideo.git
sudo apt install git
sudo git clone https://github.com/WWBN/AVideo.git
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
cd AVideo/
cd AVideo/
cd AVideo/
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo git clone https://github.com/WWBN/AVideo-Encoder.git
sudo git clone https://github.com/WWBN/AVideo-Encoder.git
sudo git clone https://github.com/WWBN/AVideo-Encoder.git
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo mv AVideo-Encoder upload
sudo mv AVideo-Encoder upload
sudo mv AVideo-Encoder upload
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo chown www-data:www-data /var/www/AVideo/ -R
sudo chown www-data:www-data /var/www/AVideo/ -R
sudo chown www-data:www-data /var/www/AVideo/ -R
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo chmod -R 777 /var/www/AVideo/
sudo chmod -R 777 /var/www/AVideo/
sudo chmod -R 777 /var/www/AVideo/

SSL/TLSの設定

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo vi /etc/apache2/sites-available/avideo.conf
sudo vi /etc/apache2/sites-available/avideo.conf
sudo vi /etc/apache2/sites-available/avideo.conf
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<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>
<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>
<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>
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo a2ensite avideo.conf
sudo a2ensite avideo.conf
sudo a2ensite avideo.conf
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo a2enmod rewrite
sudo a2enmod rewrite
sudo a2enmod rewrite
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo systemctl restart apache2
sudo systemctl restart apache2
sudo systemctl restart apache2

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

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

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

SSLの設定

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
vi /etc/apache2/sites-available/default-ssl.conf
vi /etc/apache2/sites-available/default-ssl.conf
vi /etc/apache2/sites-available/default-ssl.conf
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# 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
# 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
# 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
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
a2enmod ssl
a2enmod ssl
a2enmod ssl
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
systemctl restart apache2
systemctl restart apache2
systemctl restart apache2
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
systemctl reload apache2
systemctl reload apache2
systemctl reload apache2

HTTPS へリダイレクト

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
vi /etc/apache2/sites-available/000-default.conf
vi /etc/apache2/sites-available/000-default.conf
vi /etc/apache2/sites-available/000-default.conf

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<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>
<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>
<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>
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
a2enmod rewrite
a2enmod rewrite
a2enmod rewrite
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
systemctl restart apache2
systemctl restart apache2
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を入れてください。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo vi /var/www/AVideo/videos/configuration.php (1 件の一致)
行番号 23: $global['webSiteRootPath'] = '';
sudo vi /var/www/AVideo/videos/configuration.php (1 件の一致) 行番号 23: $global['webSiteRootPath'] = '';
sudo vi /var/www/AVideo/videos/configuration.php (1 件の一致)
	行番号 23: $global['webSiteRootPath'] = '';

不要なディレクトリ削除

不要なディレクトリ削除

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo rm /var/www/AVideo/install/ -r
sudo rm /var/www/AVideo/install/ -r
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」を押して

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

不要なディレクトリ削除

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo rm /var/www/AVideo/upload/install/ -r
sudo rm /var/www/AVideo/upload/install/ -r
sudo rm /var/www/AVideo/upload/install/ -r

hostsの設定

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
vi /etc/hosts
下記の一文を追加
127.0.0.1 サーバーのURL
vi /etc/hosts 下記の一文を追加 127.0.0.1 サーバーのURL
vi /etc/hosts

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

アップロードサイト設定

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
https://サイトのURL/upload/
https://サイトのURL/upload/
https://サイトのURL/upload/

にURLを入れてあげる。

「保存」を押します。

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

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

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