在CentOS 7上安装ClipBucket和Nginx

ClipBucket是社区支持的开源视频共享站点和管理脚本。在ClipBuckets的第一个化身中,它类似于流行的视频管网站。但是,经过多年的发展,与付费视频/媒体共享网站相比,它已成为一个强大的媒体平台。ClipBucket具有以下功能:

  • 广告经理
  • 内容授权
  • HLS流
  • 与Windows Server Active Directory集成
  • 实时统计
  • 收入分成
  • 视频点播(VOD)

先决条件

  • 一个CentOS 7 x64最小ISO库服务器实例。
  • 一个sudo的用户。

更新系统

以具有使用sudo命令权限的普通用户身份登录。如下更新系统。

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

添加RPMFusion存储库

正式的CentOS 7 x64或EPEL存储库都不包含FFmpeg(包括FFProbe)和GPAC(包括MP4Box)的RPM。必须添加RPMFusion存储库,因为它包含最新的FFmpeg 2.8.x版本和最新的GPAC 0.6.x版本。使用下面的命令添加存储库。

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

安装ClipBucket所需的后端多媒体软件

为了使ClipBucket显示针对Web优化的视频,必须安装多个多媒体程序以在后台自动转换上载的视频。从REMI存储库安装FFmpeg和MP4Box(GPAC的一部分)。

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 gem。

sudo gem install flvtool2

还需要安装ImageMagick,MediaInfo和MPlayer / Mencoder程序。

sudo yum install ImageMagick mediainfo mplayer -y

安装ClipBucket的Web服务器后端

安装最新的MariaDB数据库服务器版本

CentOS 7的默认存储库附带了MariaDB 5.5.x版。为了安装MariaDB数据库服务器的最新可用版本(10.xx),必须添加MariaDB RPM存储库。

使用sed命令创建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数据库服务器。系统将提示您从MariaDB导入GPG。按“ 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的时区位置。如果您的数据库大小大于2GB innodb_buffer_pool_instances,请根据修改innodb_buffer_pool_size。例如:innodb_buffer_pool_size= 4GB,更改innodb_buffer_pool_instances为4,每片1GB。innodb_buffer_pool_size根据您的工作数据集进行修改。innodb_large_prefix用于错误1071解决方法innodb_io_capacityinnodb_io_capacity_max从自Vultr VPS固态硬盘驱动器,提供了幅度较高的IOPs的两个数量级的默认增加。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"

在MariaDB数据库服务器日志将驻留mysql/var/log/目录中创建一个目录。将/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守护程序。为了安装比默认5.4.x更高的PHP-FPM版本,必须安装REMI存储库,其中包含PHP 5.6.x,7.0.x和7.1.x版本。

安装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_limitpost_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服务器日志将驻留的php-fpm目录内创建目录/var/log/

sudo mkdir /var/log/php-fpm/

启用并启动PHP-FPM服务器。

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

安装ClipBucket的Web服务器前端

安装和配置Nginx Web服务器

安装最新版本的Nginx Web服务器。

sudo yum install nginx -y

通过将nginx.conf文件/etc/nginx重命名为来备份目录中的文件nginx.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.confexpires.confheaders.conf在文件/etc/nginx/conf.d/目录。该deny-log-not-found.conf文件禁止访问隐藏的文件(例如.htaccess.git和其他人)。该expires.conf文件将“ Expires”和“ 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"

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数据库和用户使用SELECTINSERTUPDATEDELETECREATEDROPINDEXALTER权限,改变********为自定义密码clipbucket_example_com用户,并出现提示时输入MySQL root密码。将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 '********'"

现在,打开浏览器并http://www.example.com为您的实例输入服务器URL()。如果收到Unable to connectThis 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 usernameAdmin PasswordAdmin 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 CronsYesFFMPEG Path文本区/usr/bin/ffmpeg,该PHP Path文本区/usr/bin/php70,该MP4Box Path试验区/usr/bin/MP4Box和输入/usr/bin/mplayerMPlayer Path文本区域。单击蓝色Update Settings按钮以保存更改。

要验证可以上传到ClipBucket的文件的最大大小,请单击Tool Box左侧菜单中的链接以展开手风琴。点击Server Modules Info链接。POST MAX SIZEUPLOAD 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链接。您将在该领域的绿色检��FFMPEGPHP CLIMedia InfoMP4BoxImageMagickFFProbe

导航回SSH客户端程序以设置ClipBucket在后台转换视频所需的cron作业。

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文档



Leave a Comment

如何在CentOS 7上安装Oxwall

如何在CentOS 7上安装Oxwall

Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,

如何在Ubuntu 16.10上安装Review Board

如何在Ubuntu 16.10上安装Review Board

使用其他系统?Review Board是一个免费且开源的工具,用于检查源代码,文档,图像等。这是基于网络的软件战

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

使用其他系统?October 1.0 CMS是基于Laravel框架构建的简单,可靠,免费和开源的内容管理系统(CMS)

如何使用Ubuntu 15.10在Vultr服务器上安装Xubuntu桌面

如何使用Ubuntu 15.10在Vultr服务器上安装Xubuntu桌面

Xubuntu是XFCE + Ubuntu!XFCE是Ubuntu的轻量级GUI /桌面。Vultr服务器需要其他依赖项,默认情况下未安装这些依赖项。

如何在Debian 9上安装Monica

如何在Debian 9上安装Monica

使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具

如何使用SSL和安全密码保护由Nginx驱动的网站

如何使用SSL和安全密码保护由Nginx驱动的网站

简介SSL(代表安全套接字层)及其后续版本TLS(代表传输层安全性)是需要加密的加密协议。

如何在Fedora 26 LAMP VPS上安装MODX Revolution

如何在Fedora 26 LAMP VPS上安装MODX Revolution

使用其他系统?MODX Revolution是一种快速,灵活,可扩展,免费和开源的企业级内容管理系统(CMS),由

如何在Ubuntu 17.04上安装JuliaLang

如何在Ubuntu 17.04上安装JuliaLang

朱莉娅(Julia)通常称为JuliaLang,是一种用于数值计算的编程语言。Julia的速度和C一样快,但是却不牺牲可读性

在Ubuntu 14.04上安装Ruby on Rails

在Ubuntu 14.04上安装Ruby on Rails

Ruby on Rails(RoR)是用Ruby编程语言编写的框架,可让您将Ruby与HTML,CSS和类似的程序结合使用。

在Fedora 28上安装Anchor CMS

在Fedora 28上安装Anchor CMS

使用其他系统?Anchor是用PHP编写的轻量级开源博客CMS。Anchors源代码托管在GitHub上。本指南将向您展示

将Debian 9升级到Debian 10

将Debian 9升级到Debian 10

简介Debian 10(Buster)是Debian 9(Stretch)的后继产品。它于2019年7月6日发布。在本教程中,我们将升级一个existin

如何管理Linux服务器时区设置

如何管理Linux服务器时区设置

在Linux服务器上正确设置日期和时间非常重要。您的服务器日志和其他重要信息都将反映时区

如何在Ubuntu 16.04上安装Taiga项目管理工具

如何在Ubuntu 16.04上安装Taiga项目管理工具

使用其他系统?Taiga是用于项目管理的免费和开源应用程序。与其他项目管理工具不同,Taiga使用增量

在Ubuntu上配置Nagios:第1部分-Nagios服务器

在Ubuntu上配置Nagios:第1部分-Nagios服务器

本文是有关在Ubuntu 14.04上安装和配置Nagios的2部分系列文章的一部分。第1部分:Nagios服务器第2部分:远程主机概述Nagio

如何访问Vultr VPS

如何访问Vultr VPS

Vultr提供了几种不同的方式来访问VPS以进行配置,安装和使用。访问凭据VPS ar的默认访问凭据

如何在Debian 9上安装Grav CMS

如何在Debian 9上安装Grav CMS

使用其他系统?Grav是用PHP编写的开源平面文件CMS。Grav源代码公开托管在GitHub上。本指南将向您展示如何

如何在Fedora 26 LAMP VPS上安装Pagekit 1.0 CMS

如何在Fedora 26 LAMP VPS上安装Pagekit 1.0 CMS

使用其他系统?Pagekit 1.0 CMS是一个美观,模块化,可扩展,轻量级,免费和开源的内容管理系统(CMS),具有

如何在Ubuntu 16.04 LAMP VPS上安装BigTree CMS

如何在Ubuntu 16.04 LAMP VPS上安装BigTree CMS

使用其他系统?BigTree CMS 4.2是一种快速,轻量级,免费和开源的企业级内容管理系统(CMS),具有广泛的功能。

如何在CentOS 7上设置vsFTPd

如何在CentOS 7上设置vsFTPd

FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o

在Debian / Ubuntu中使用Rsync设置文件镜像

在Debian / Ubuntu中使用Rsync设置文件镜像

简介如果您经营一个重要的网站,则最好将文件镜像到辅助服务器。如果您的主服务器有网络

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息