ติดตั้ง ClipBucket และ Nginx บน CentOS 7

ClipBucket เป็นชุมชนที่รองรับวิดีโอโอเพ่นซอร์สไซต์และสคริปต์การจัดการ ในชาติแรกของ ClipBuckets มันคล้ายกับเว็บไซต์วิดีโอยอดนิยม อย่างไรก็ตามหลังจากหลายปีของการพัฒนามันได้กลายเป็นแพลตฟอร์มสื่อที่แข็งแกร่งเมื่อเปรียบเทียบกับเว็บไซต์แบ่งปันวิดีโอ / สื่อที่ต้องชำระเงิน ClipBucket มีคุณสมบัติดังต่อไปนี้:

  • ผู้จัดการโฆษณา
  • การอนุญาตเนื้อหา
  • สตรีมมิ่ง HLS
  • การรวมกับ Active Server ของ Windows Server
  • สถิติตามเวลาจริง
  • การแบ่งรายได้
  • วิดีโอตามคำขอ (VOD)

ข้อกำหนดเบื้องต้น

  • อินสแตนซ์เซิร์ฟเวอร์เซิร์ฟเวอร์ ISO ไลบรารีขั้นต่ำ CentOS 7 x64
  • sudoผู้ใช้

ปรับปรุงระบบ

ล็อกอินด้วยผู้ใช้ทั่วไปที่ได้รับอนุญาตให้ใช้คำสั่ง sudo อัปเดตระบบดังต่อไปนี้

sudo yum clean all && sudo yum install deltarpm -y && sudo yum update -y

เพิ่มที่เก็บ RPMFusion

ทั้งที่เก็บ CentOS 7 x64 หรือ EPEL อย่างเป็นทางการมี RPMs สำหรับ FFmpeg (รวมถึง FFProbe) และ GPAC (รวมถึง MP4Box) ต้องเพิ่มที่เก็บ RPMFusion เนื่องจากมีการสร้าง 2.8mp ล่าสุดของ FFmpeg และการสร้าง GPAC 0.6.x ล่าสุด ใช้คำสั่งด้านล่างเพื่อเพิ่มที่เก็บ

sudo yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm -y

ติดตั้งซอฟต์แวร์มัลติมีเดียแบ็กเอนด์ที่จำเป็นสำหรับ ClipBucket

เพื่อให้ ClipBucket แสดงวิดีโอที่ปรับให้เหมาะสมสำหรับเว็บโปรแกรมมัลติมีเดียจำนวนมากจะต้องติดตั้งเพื่อแปลงวิดีโอที่อัปโหลดโดยอัตโนมัติในพื้นหลัง ติดตั้ง FFmpeg และ MP4Box (ส่วนหนึ่งของ GPAC) จากที่เก็บ REMI

sudo yum install ffmpeg gpac -y

ในการติดตั้ง Ruby เวอร์ชันล่าสุดต้องทำการติดตั้งไลบรารี YAML ก่อน

sudo yum install libyaml -y

ตอนนี้ให้ติดตั้ง Ruby เวอร์ชันปัจจุบันเวอร์ชันล่าสุด (2.5.x)

sudo rpm -ivh https://github.com/feedforce/ruby-rpm/releases/download/2.5.0/ruby-2.5.0-1.el7.centos.x86_64.rpm

ติดตั้งโปรแกรมบรรจุภัณฑ์ Ruby Gems

sudo yum install rubygems -y

ติดตั้งอัญมณี FLVTool2

sudo gem install flvtool2

ต้องติดตั้งโปรแกรม ImageMagick, MediaInfo และ MPlayer / Mencoder เช่นกัน

sudo yum install ImageMagick mediainfo mplayer -y

ติดตั้งแบ็กเอนด์เว็บเซิร์ฟเวอร์สำหรับ ClipBucket

ติดตั้งเซิร์ฟเวอร์ฐานข้อมูล MariaDB เวอร์ชันล่าสุด

CentOS 7 มาพร้อมกับ MariaDB เวอร์ชัน 5.5.x ซึ่งเป็นที่เก็บเริ่มต้น เพื่อติดตั้งเวอร์ชันล่าสุดที่มีอยู่ (10.xx) ของเซิร์ฟเวอร์ฐานข้อมูล MariaDB ต้องเพิ่มที่เก็บ MariaDB RPM

ใช้sedคำสั่งเพื่อสร้างไฟล์ repo แบบกำหนดเองที่ชื่อMariaDB.repoใน/etc/yum.repos.d/ไดเรกทอรี

sudo su -c "echo -e '[mariadb]\nname = MariaDB\nbaseurl = http://yum.mariadb.org/10.2/centos7-amd64\ngpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB\ngpgcheck=1' > /etc/yum.repos.d/MariaDB.repo"

ติดตั้งเซิร์ฟเวอร์ฐานข้อมูล MariaDB คุณจะได้รับแจ้งให้นำเข้า GPG จาก MariaDB กดปุ่ม " Y" และปุ่ม " Enter" เพื่อยอมรับ

sudo yum install MariaDB-server -y

เปิดใช้งานและเริ่มต้นเซิร์ฟเวอร์ฐานข้อมูล MariaDB

sudo systemctl start mysql

รักษาความปลอดภัยเซิร์ฟเวอร์ฐานข้อมูล MariaDB แทนที่******** ด้านล่างด้วยรหัสผ่านใหม่สำหรับผู้ใช้รูท MySQL นี่เทียบเท่ากับการรันmysql_secure_installationคำสั่งโดยไม่มีพร้อมต์

sudo mysql -e "UPDATE mysql.user SET Password=PASSWORD('********') WHERE User='root';DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');DELETE FROM mysql.user WHERE User='';DELETE FROM mysql.db WHERE Db IN('test', 'test\_%');DROP DATABASE test;FLUSH PRIVILEGES"

สำรองข้อมูลเดิมในserver.cnf/etc/my.cnf.d/

sudo mv /etc/my.cnf.d/server.cnf /root/server.cnf.original

สร้างserver.cnfไฟล์ใหม่โดยใช้echoคำสั่ง การกำหนดค่านี้ให้การสนับสนุน UTF8 ที่แท้จริง อย่าลืมเปลี่ยนตัวdefault-time-zoneเลือกเพื่อสะท้อนตำแหน่งเขตเวลาของ VPS ของคุณหากคุณเลือก ปรับเปลี่ยนinnodb_buffer_pool_instancesตามinnodb_buffer_pool_sizeขนาดฐานข้อมูลของคุณใหญ่กว่า 2GB ตัวอย่าง: innodb_buffer_pool_size= 4GB เปลี่ยนinnodb_buffer_pool_instancesเป็น 4 สำหรับ 1GB ต่อชิ้น แก้ไขinnodb_buffer_pool_sizeตามชุดข้อมูลที่ทำงานของคุณ innodb_large_prefixจะใช้สำหรับข้อผิดพลาด 1071 วิธีแก้ปัญหา innodb_io_capacityและinnodb_io_capacity_maxเพิ่มขึ้นจากค่าเริ่มต้นเนื่องจากไดรฟ์ Vultr VPS SSD มอบคำสั่ง IOP ที่มีขนาดสูงกว่าสองลำดับ แก้ไขkey_buffer_sizeหากคุณมีตารางจำนวนมากที่ใช้ MyISAM

sudo su -c "echo -e '[mysqld]\nbinlog_format\t\t\t\t\t= mixed\ncharacter-set-client-handshake\t\t\t= FALSE\ncharacter-set-server\t\t\t\t= utf8mb4\ncollation-server\t\t\t\t= utf8mb4_unicode_ci\ndefault-time-zone\t\t\t\t= -05:00\nexpire_logs_days\t\t\t\t= 7\ninit_connect\t\t\t\t\t= 'SET collation_connection = utf8mb4_unicode_ci, NAMES utf8mb4'\ninnodb\t\t\t\t\t\t= FORCE\ninnodb_buffer_pool_instances\t\t\t= 1\ninnodb_buffer_pool_size\t\t\t\t= 256M\ninnodb_file_format\t\t\t\t= barracuda\ninnodb_flush_method\t\t\t\t= O_DIRECT\ninnodb_large_prefix\ninnodb-log-file-size\t\t\t\t= 32M\ninnodb-log-files-in-group\t\t\t= 2\ninnodb_io_capacity\t\t\t\t= 30720\ninnodb_io_capacity_max\t\t\t\t= 40960\ninnodb_lock_wait_timeout\t\t\t= 60\ninteractive_timeout\t\t\t\t= 60\nkey_buffer_size\t\t\t\t\t= 2M\nlc_messages\t\t\t\t\t= en_US\nlc_messages_dir\t\t\t\t\t= /usr/share/mysql\nlog_error\t\t\t\t\t= /var/log/mysql/mysql-error.log\nmax_connections\t\t\t\t\t= 16\nmyisam-recover-options\t\t\t\t= FORCE,BACKUP\nskip_external_locking\nskip-log-bin\nskip_name_resolve\nskip_networking\nslow_query_log\t\t\t\t\t= 1\nslow_query_log_file\t\t\t\t= /var/log/mysql/mysql-slow.log\nsync_binlog\t\t\t\t\t= 1\nsysdate-is-now\t\t\t\t\t= 1\nthread_cache_size\t\t\t\t= 4\nthread_pool_size\t\t\t\t= 2\ntmpdir\t\t\t\t\t\t= /tmp\nwait_timeout\t\t\t\t\t= 60' > /etc/my.cnf.d/server.cnf"

สร้างไดเรกทอรีที่มีชื่อmysqlใน/var/log/ไดเรกทอรีที่จะบันทึกเซิร์ฟเวอร์ฐานข้อมูล MariaDB เปลี่ยนความเป็นเจ้าของผู้ใช้และกลุ่มสำหรับ/var/log/mysqlไดเรกทอรีและไฟล์จากrootผู้ใช้ / กลุ่มเป็นmysqlผู้ใช้ / กลุ่ม

sudo mkdir /var/log/mysql && sudo chown mysql.mysql /var/log/mysql

รีสตาร์ทเซิร์ฟเวอร์ฐานข้อมูล MariaDB

sudo systemctl restart mysql

ตอนนี้เซิร์ฟเวอร์ฐานข้อมูล MariaDB ได้รับการตั้งค่าและพร้อมแล้ว

ติดตั้งรุ่นเซิร์ฟเวอร์ PHP-FPM 7.0.x & ส่วนขยาย PHP ที่จำเป็น

ในการประมวลผล PHP จะต้องติดตั้งและกำหนดค่า PHP-FPM 7.0 daemon เพื่อที่จะติดตั้ง PHP-FPM เวอร์ชันใหม่กว่าค่าเริ่มต้น 5.4.x, repi REMI จะต้องติดตั้งซึ่งมี PHP เวอร์ชั่น 5.6.x, 7.0.x และ 7.1.x

ติดตั้ง repo REMI และโมดูล PHP ที่จำเป็น

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y && sudo yum install php70-php-cli php70-php-pecl-imagick php70-php-fpm php70-php-mysql php70-php-opcache -y

สำรองข้อมูลเป็นphp-fpm.confแฟ้มในไดเรกทอรีโดยการเปลี่ยนชื่อไปยัง/etc/opt/remi/php70/php-fpm.conf.original

sudo mv /etc/opt/remi/php70/php-fpm.conf /etc/opt/remi/php70/php-fpm.conf.original

สร้างphp-fpm.confไฟล์ใหม่โดยใช้echoคำสั่ง

sudo su -c "echo -e 'include=/etc/opt/remi/php70/php-fpm.d/*.conf\n[global]\ndaemonize = yes\nemergency_restart_threshold = 2\nemergency_restart_interval = 1m\nerror_log = /var/log/php-fpm/php-fpm-7.0-error.log\npid = /var/run/php-fpm-7.0.pid\nprocess_control_timeout = 10s' > /etc/opt/remi/php70/php-fpm.conf"

สำรองข้อมูลเป็นwww.confแฟ้มในไดเรกทอรีโดยการเปลี่ยนชื่อไปยัง/etc/opt/remi/php70/php-fpm.d/www.conf.original

sudo mv /etc/opt/remi/php70/php-fpm.d/www.conf /etc/opt/remi/php70/php-fpm.d/www.conf.original

สร้างwww.confไฟล์ใหม่โดยใช้echoคำสั่ง

sudo su -c "echo -e '[www]\ngroup = apache\nlisten = /var/run/php-fpm-7.0.sock\nlisten.backlog = 65536\nlisten.owner = apache\nlisten.group = apache\npm = static\npm.max_children = 2\npm.max_requests = 10240\nuser = apache' > /etc/opt/remi/php70/php-fpm.d/www.conf"

สำรองข้อมูลเป็นphp.iniแฟ้มในไดเรกทอรีโดยการเปลี่ยนชื่อไปยัง/etc/opt/remi/php70/php.ini.original

sudo mv /etc/opt/remi/php70/php.ini /etc/opt/remi/php70/php.ini.original

สร้างphp.iniไฟล์ใหม่โดยใช้echoคำสั่ง เปลี่ยนmemory_limit, post_max_sizeและupload_max_filesizeจะมีขนาดใหญ่กว่าไฟล์ที่ใหญ่ที่สุดที่คุณตั้งใจจะอัพโหลดเล็กน้อย เปลี่ยนdate.timezoneเป็นเขตเวลาที่คุณเลือก ฉันแนะนำเขตเวลาทางภูมิศาสตร์ของอินสแตนซ์ VPS ของคุณ

sudo su -c "echo -e '[PHP]\nallow_url_fopen = On\nalways_populate_raw_post_data = -1\ndisplay_errors = Off\nerror_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT\nexpose_php = Off\nlog_errors = On\nmax_execution_time = 7201\nmemory_limit = 256M\noutput_buffering = 4096\npost_max_size = 256M\nregister_argc_argv = Off\nrequest_order = \"GP\"\nupload_max_filesize = 256M\nvariables_order = \"GPCS\"\n[Date]\ndate.timezone = America/New_York\n[Session]\nsession.cache_limiter =\nsession.gc_divisor = 1000\nsession.hash_bits_per_character = 5\nsession.save_handler = files\nsession.save_path = \"/var/opt/remi/php70/lib/php/session/\"\nurl_rewriter.tags = \"a=href,area=href,frame=src,input=src,form=fakeentry\"' > /etc/opt/remi/php70/php.ini"

สร้างphp-fpmไดเรกทอรีภายใน/var/log/ไดเรกทอรีที่มีการบันทึกเซิร์ฟเวอร์ PHP-FPM

sudo mkdir /var/log/php-fpm/

เปิดใช้งานและเริ่มต้นเซิร์ฟเวอร์ PHP-FPM

sudo systemctl enable php70-php-fpm && sudo systemctl start php70-php-fpm

ติดตั้งเว็บเซิร์ฟเวอร์ส่วนหน้าสำหรับ ClipBucket

ติดตั้งและกำหนดค่าเว็บเซิร์ฟเวอร์ Nginx

ติดตั้ง Nginx เว็บเซิร์ฟเวอร์เวอร์ชันล่าสุด

sudo yum install nginx -y

สำรองข้อมูลเป็นnginx.confแฟ้มในไดเรกทอรีโดยการเปลี่ยนชื่อไปยัง/etc/nginxnginx.conf.original

sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.original

สร้างnginx.confไฟล์ใหม่โดยใช้echoคำสั่ง

sudo su -c "echo -e 'error_log /var/log/nginx/error_log info;\nevents { multi_accept on; worker_connections 1024; }\nhttp {\n\taccess_log none;\n\tcharset utf-8;\n\tclient_body_timeout 10s;\n\tclient_header_timeout 10s;\n\tclient_max_body_size 256M;\n\tdefault_type application/octet-stream;\n\tgzip_comp_level 6;\n\tgzip on;\n\tgzip_proxied any;\n\tgzip_types application/json application/javascript application/x-javascript application/xml application/xml+rss text/css text/javascript text/plain text/xml;\n\tgzip_vary on;\n\tinclude /etc/nginx/mime.types;\n\tinclude /etc/nginx/conf.d/headers.conf;\n\tinclude /etc/nginx/sites-enabled/*.conf;\n\tindex index.html index.php;\n\tkeepalive_timeout 8 8;\n\treset_timedout_connection on;\n\tsend_timeout 2s;\n\tsendfile on;\n\tserver_tokens off;\n\ttcp_nopush on;\n\ttcp_nodelay on;\n\tupstream php-7.0 { server unix:/var/run/php-fpm-7.0.sock; }\n}\nuser apache apache;\nworker_processes auto;' > /etc/nginx/nginx.conf"

สร้างsite-availableและsite-enabledไดเรกทอรีใน/etc/nginx/ไดเรกทอรี

sudo mkdir /etc/nginx/{sites-available,sites-enabled}

สร้างdeny-log-not-found.conf, expires.confและheaders.confแฟ้มใน/etc/nginx/conf.d/ไดเรกทอรี deny-log-not-found.confไฟล์ห้ามการเข้าถึงไฟล์ที่ซ่อนอยู่ (เช่น.htaccess, .gitและอื่น ๆ ) expires.confไฟล์ชุด "หมดอายุ" และ "Cache-Control" ส่วนหัวของการตอบสนองต่อครั้งสูงสุดที่มีอยู่ส���หรับไฟล์แบบคงที่เหมือนกันเช่นภาพและข้อความ headers.confไฟล์ชุดหัวการตอบสนองเพื่อป้องกันไม่ให้ MIME ชนิดดมให้คลิกลิงก์และป้องกัน XSS (สคริปต์ข้ามไซต์) หาประโยชน์

sudo su -c "echo -e 'location ~ /\. { deny all; }\nlocation = /(favicon.ico|robots.txt) { log_not_found off; }' > /etc/nginx/conf.d/deny-log-not-found.conf" && sudo su -c "echo -e 'location ~* ^.+\.(atom|bmp|bz2|css|doc|eot|exe|gif|gz|ico|jpeg|jpg|js|mid|midi|mp4|ogg|ogv|otf|pdf|png|ppt|rss|rft|svg|svgz|tar|tgz|ttf|wav|woff|woff2|xls|zip)$ { expires max; log_not_found off; }' > /etc/nginx/conf.d/expires.conf" && sudo su -c "echo -e 'add_header X-Content-Type-Options \"nosniff\";\nadd_header X-Frame-Options \"SAMEORIGIN\";\nadd_header X-Robots-Tag \"noarchive,noodp,noydir\";\nadd_header X-Xss-Protection \"1; mode=block\";' > /etc/nginx/conf.d/headers.conf"

สร้างexample.com.confไฟล์ใน/etc/nginx/sites-available/ไดเรกทอรีซึ่งจะชี้ไปที่ไดเรกทอรีที่จะมี ClipBucket แทนที่ทุกกรณีของexample.comด้านล่างด้วย FQDN / ชื่อโดเมนจริงของคุณ

sudo su -c "echo -e 'server {\n\tinclude /etc/nginx/conf.d/deny-log-not-found.conf;\n\tinclude /etc/nginx/conf.d/expires.conf;\n\tindex index.php;\n\tlocation / {\n\t\ttry_files \$uri \$uri/ /index.php;\n\t\trewrite ^/(.*)v([0-9]+) /watchvideo.php?v=\$2&\$query_string;\n\t\trewrite ^/([a-zA-Z0-9-]+)/?\$ /view_channel.php?uid=\$1&seo_diret=yes;\n\t\t}\n\tlocation ~ \.php\$ { fastcgi_pass php-7.0; include /etc/nginx/fastcgi.conf; }\n\tlocation /categories {\n\t\trewrite ^/categories/?\$ /categories.php;\n\t\t}\n\tlocation /channel {\n\t\trewrite ^/channel/(.*) /view_channel.php?user=\$1;\n\t\t}\n\tlocation /channels {\n\t\trewrite ^/channels/(.)/(.)/(.)/(.)/(.*) /channels.php?cat=\$1&sort=\$3&time=\$4&page=\$5&seo_cat_name=\$2;\n\t\trewrite ^/channels/([0-9]+) /channels.php?page=\$1;\n\t\trewrite ^/channels/?\$ /channels.php;\n\t\t}\n\tlocation /collection {\n\t\trewrite ^/collection/(.)/(.)/(.*) /view_collection.php?cid=\$1&type=\$2&\$query_string;\n\t\t}\n\tlocation /collections {\n\t\trewrite ^/collections/(.)/(.)/(.)/(.)/(.*) /collections.php?cat=\$1&sort=\$3&time=\$4&page=\$5&seo_cat_name=\$2;\n\t\trewrite ^/collections/([0-9]+) /collections.php?page=\$1;\n\t\trewrite ^/collections/?\$ /collections.php;\n\t\t}\n\tlocation /contact {\n\t\trewrite ^/contact/?\$ /contact.php;\n\t\t}\n\tlocation /create_group {\n\t\trewrite ^/create_group /create_group.php;\n\t\t}\n\tlocation /group {\n\t\trewrite ^/group/([a-zA-Z0-9].+) /view_group.php?url=\$1&\$query_string;\n\t\t}\n\tlocation /groups {\n\t\trewrite ^/groups/(.)/(.)/(.)/(.)/(.*) /groups.php?cat=\$1&sort=\$3&time=\$4&page=\$5&seo_cat_name=\$2; rewrite ^/groups/([0-9]+) /groups.php?page=\$1;\n\t\trewrite ^/groups/?\$ /groups.php;\n\t\t}\n\tlocation /item {\n\t\trewrite ^/item/(.)/(.)/(.)/(.) /view_item.php?item=\$3&type=\$1&collection=\$2;\n\t\t}\n\tlocation /members {\n\t\trewrite ^/members/?\$ /channels.php;\n\t\t}\n\tlocation /my_account {\n\t\trewrite ^/my_account /myaccount.php;\n\t\t}\n\tlocation /page {\n\t\trewrite ^/page/([0-9]+)/(.*) /view_page.php?pid=\$1;\n\t\t}\n\tlocation /photo_upload {\n\t\trewrite ^/photo_upload/(.*) /photo_upload.php?collection=\$1;\n\t\trewrite ^/photo_upload/?\$ /photo_upload.php;\n\t\t}\n\tlocation /photos {\n\t\trewrite ^/photos/(.)/(.)/(.)/(.)/(.*) /photos.php?cat=\$1&sort=\$3&time=\$4&page=\$5&seo_cat_name=\$2;\n\t\trewrite ^/photos/([0-9]+) /photos.php?page=\$1;\n\t\trewrite ^/photos/?\$ /photos.php;\n\t\t}\n\tlocation = /rss {\n\t\trewrite ^(.*)\$ /rss.php;\n\t\t}\n\tlocation /rss {\n\t\trewrite ^/rss/([a-zA-Z0-9].+)\$ /rss.php?mode=\$1&\$query_string;\n\t\t}\n\tlocation /search {\n\t\trewrite ^/search/result/?\$ /search_result.php;\n\t\t}\n\tlocation /signup {\n\t\trewrite ^/signup/?\$ /signup.php;\n\t\t}\n\tlocation = /sitemap.xml {\n\t\trewrite ^(.*)\$ /sitemap.php;\n\t\t}\n\tlocation /upload {\n\t\trewrite ^/upload/?\$ /upload.php;\n\t\t}\n\tlocation /user {\n\t\trewrite ^/user/(.*) /view_channel.php?user=\$1;\n\t\t}\n\tlocation /users {\n\t\trewrite ^/users/?\$ /channels.php;\n\t\t}\n\tlocation /video {\n\t\trewrite ^/video/(.)/(.) /watch_video.php?v=\$1&\$query_string; rewrite ^/video/([0-9]+)(.*) /watchvideo.php?v=\$1&\$query_string;\n\t\t}\n\tlocation /videos {\n\t\trewrite ^/videos/(.)/(.)/(.)/(.)/(.*) /videos.php?cat=\$1&sort=\$3&time=\$4&page=\$5&seo_cat_name=\$2;\n\t\trewrite ^/videos/([0-9]+) /videos.php?page=\$1;\n\t\trewrite ^/videos/?\$ /videos.php?\$query_string;\n\t\t}\n\tlocation /view_topic {\n\t\trewrite ^/view_topic/([a-zA-Z0-9].+)tid([0-9]+) /view_topic.php?tid=\$2&\$query_string;\n\t\t}\n\tserver_name example.com www.example.com;\n\troot /var/www/html;\n}' > /etc/nginx/sites-available/example.com.conf"

สร้าง symlink สำหรับexample.com.confไฟล์ที่อยู่ใน/etc/nginx/sites-available/ไดเรกทอรีใน/etc/nginx/sites-enabled/ไดเรกทอรี แทนที่example.comด้านล่างด้วย FQDN / ชื่อโดเมนจริงของคุณ

sudo su -c "cd /etc/nginx/sites-enabled && ln -s ../sites-available/example.com.conf ."

เปิดใช้งานและเริ่มต้นเซิร์ฟเวอร์ PHP-FPM

sudo systemctl enable nginx && sudo systemctl start nginx

ตอนนี้ Nginx กำลังตั้งค่าและพร้อมที่จะแสดงหน้า

ติดตั้ง ClipBucket

ดาวน์โหลดเวอร์ชันล่าสุดของ ClipBucket และแยกเนื้อหาของuploadไดเรกทอรีภายในไฟล์ ClipBucket tar-gzipped ลงใน/var/www/htmlไดเรกทอรี

sudo su - apache -c "wget -N -P /tmp/ https://github.com/arslancb/clipbucket/archive/4881.tar.gz -q" -s /bin/bash && sudo mkdir -p /var/www/html && sudo chown -R apache.apache /var/www/html && sudo su - apache -c "tar -C /var/www/html -zxf /tmp/4881.tar.gz clipbucket-4881/upload/ --strip-components=2" -s /bin/bash && sudo rm /tmp/4881.tar.gz

สร้างฐานข้อมูลสำหรับ ClipBucket และผู้ใช้ที่มีSELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEXและALTERสิทธิ์การเปลี่ยนแปลง********ไปเป็นรหัสผ่านที่กำหนดเองสำหรับclipbucket_example_comผู้ใช้และรหัสผ่านเข้าสู่ราก MySQL เมื่อได้รับแจ้ง แทนที่ทุกอินสแตนซ์ของexample_comในคำสั่งด้านล่างด้วยชื่อจริงของคุณ FQDN / โดเมน

sudo mysql -u root -p -e "CREATE DATABASE clipbucket_example_com; GRANT ALTER,CREATE,DELETE,DROP,INDEX,INSERT,SELECT,UPDATE ON clipbucket_example_com.* TO clipbucket_example_com_admin@localhost IDENTIFIED BY '********'"

ตอนนี้ให้เปิดเบราว์เซอร์ของคุณแล้วป้อน URL เซิร์ฟเวอร์ ( http://www.example.com) สำหรับอินสแตนซ์ของคุณ หากคุณได้รับUnable to connectหรือThis site can’t be reachedข้อความนี้เป็นเพราะการตั้งค่าไฟร์วอลล์เริ่มต้นของ CentOS ปิดการเชื่อมต่อขาเข้ากับhttpพอร์ต คำสั่งต่อไปนี้จะเปิดขึ้นมา

sudo firewall-cmd --permanent --zone=public --add-service=http && sudo firewall-cmd --reload

รีเฟรชหน้าในเบราว์เซอร์ของคุณและคุณจะเห็นหน้าการติดตั้ง ClipBucket

คลิกOk, I agree, Now let me Continue!ปุ่มสีน้ำเงินเพื่อดำเนินการต่อในขั้นตอนที่ 2

คลิกContinue To Next Stepปุ่มสีน้ำเงินเพื่อดำเนินการต่อในขั้นตอนที่ 3

ก่อนที่จะดำเนินการขั้นตอนต่อไปของการติดตั้งตรวจสอบให้แน่ใจว่ามีการตรวจสอบสีเขียวกับทุกไดเรกทอรีในรายการ คลิกContinue To Next Stepปุ่มสีน้ำเงินเพื่อไปยังขั้นตอนที่ 4

ป้อนชื่อฐานข้อมูลจริงในDatabase Nameพื้นที่ข้อความ ในDatabase Userพื้นที่ข้อความให้ป้อนผู้ใช้ฐานข้อมูลจริง และในDatabase Passwordพื้นที่ข้อความรหัสผ่านฐานข้อมูลจริง คลิกสีน้ำเงินCheck Connectionเพื่อไปยังขั้นตอนที่ 5

การป้อนชื่อผู้ใช้ผู้ดูแลระบบรหัสผ่าน admin และอีเมลที่ถูกต้องในAdmin username, Admin PasswordและAdmin Emailสาขา คลิกSave and Continueปุ่มสีน้ำเงินเพื่อไปยังขั้นตอนที่ 6

แทนที่ชื่อเว็บไซต์เริ่มต้นสโลแกนเว็บไซต์และ URL เว็บไซต์ คลิกSave and Continueปุ่มสีน้ำเงินเพื่อไปยังขั้นตอนที่ 7

คลิกSkip & Finishปุ่มสีน้ำเงินหากคุณไม่ต้องการลงทะเบียนและไปยังขั้นตอนถัดไป

ในหน้าสุดท้ายตัวติดตั้งจะแนะนำให้คุณลบcb_installไดเรกทอรีบนเซิร์ฟเวอร์เพื่อทำการติดตั้งให้เสร็จสมบูรณ์

ลบ/var/www/html/cb_installไดเรกทอรีตามคำแนะนำในหน้าการติดตั้งล่าสุด นำทางกลับไปยังโปรแกรมไคลเอ็นต์ SSH และใช้คำสั่งด้านล่างเพื่อลบ/var/www/html/cb_install/ไดเรกทอรี

sudo rm -rf /var/www/html/cb_install

กลับไปที่เบราว์เซอร์คลิกContinue to Admin Areaปุ่มสีแดงเพื่อไปยังหน้าเข้าสู่ระบบ

ป้อนชื่อผู้ใช้และรหัสผ่านผู้ดูแลระบบของคุณเพื่อเข้าสู่ระบบ

หลังจากเข้าสู่ระบบคลิกที่Generalลิงค์ในเมนูด้านซ้ายเพื่อขยายหีบเพลง คลิกที่Website Configurationsลิงก์และคลิกที่Uploading and Conversion Settingsแท็บ เปลี่ยนเลือกสำหรับUse CronsการYesที่FFMPEG Pathพื้นที่ข้อความไป/usr/bin/ffmpegที่PHP Pathพื้นที่ข้อความไป/usr/bin/php70ที่MP4Box Pathพื้นที่การทดสอบ/usr/bin/MP4Boxและการป้อนข้อมูล/usr/bin/mplayerในMPlayer Pathพื้นที่ข้อความ คลิกUpdate Settingsปุ่มสีน้ำเงินเพื่อบันทึกการเปลี่ยนแปลง

หากต้องการตรวจสอบขนาดสูงสุดของไฟล์ที่สามารถอัปโหลดไปยัง ClipBucket ให้คลิกที่Tool Boxลิงก์ในเมนูด้านซ้ายเพื่อขยายหีบเพลง คลิกที่Server Modules Infoลิงค์ POST MAX SIZE, UPLOAD MAX FILESIZEและMEMORY LIMITทั้งหมดจะมีการตรวจสอบสีเขียวและตรงกับขนาดไฟล์ที่อัปโหลดสูงสุดที่คุณตั้งไว้ใน/etc/opt/remi/php70/php.iniไฟล์และclient_max_body_sizeตัวแปรใน/etc/nginx/nginx.confไฟล์

หากต้องการตรวจสอบว่าการเปลี่ยนแปลงที่คุณทำบนUploading and Conversion Settingsแท็บคลิกที่Server Conversion Infoลิงค์ คุณจะมีการตรวจสอบสีเขียวในฟิลด์สำหรับFFMPEG, PHP CLI, Media Info, MP4Box, และImageMagickFFProbe

นำทางกลับไปยังโปรแกรมไคลเอ็นต์ SSH เพื่อตั้งค่างาน cron ที่จำเป็นสำหรับ ClipBucket เพื่อแปลงวิดีโอในพื้นหลัง

sudo su -c "echo -e '* * * * * /usr/bin/php70 -q /var/www/html/actions/video_convert.php\n* * * * * /usr/bin/php70 -q /var/www/html/actions/verify_converted_videos.php\n0 0,12,13 * * * /usr/bin/php70 -q /var/www/html/actions/update_cb_stats.php' > /var/spool/cron/apache" -s /bin/bash && sudo chown apache.apache /var/spool/cron/apache

ClipBucket พร้อมสำหรับการอัปโหลดและการแปลงวิดีโอแล้ว หากคุณต้องการที่จะปรับแต่งเพิ่มเติมโปรดดูที่เอกสาร ClipBucket อย่างเป็นทางการ

ฝากความเห็น

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true