使用LAMP或LEMP在Ubuntu 16.04服务器上安装Wallabag

袋鼠 是用于保存网页的免费的可自我托管的应用程序。 这是一个 开源替代其他专有的稍后阅读应用程序,如Pocket和Instapaper,使您可以管理在互联网上偶然发现的文章列表,以供日后阅读。

Wallabag特点:

  1. Wallabag会从您的网页上剥离广告和无关的内容,并仅提供文章文本和相关图像,以便于阅读。 当您在智能手机或平板电脑上查看它们时,此功能特别有用。
  2. Wallabag将您的网页保存在数据库中,因此 即使原始网页消失了,您仍然可以在Wallabag中查看它
  3. 您可以轻松地将所有网页导出到TXT,HTML,CSV,EPUB,MOBI,PDF或JSON文件。
  4. 您还可以安装Wallabag浏览器扩展程序和智能手机应用程序,以轻松访问Wallabag。
  5. 能够从Firefox和Google Chrome(或Chromium)浏览器导入书签。

本教程介绍如何在自己的主机上托管Wallabag服务 Ubuntu 16.04 服务器或VPS。

先决条件

要安装wallabag,您需要访问以下用户 特权。

假设您已经设置了一个 堆叠或 麻风 在Ubuntu 16.04上堆叠。 Wallabag可以使用PHP> = 5.5(包括PHP 7)运行。如果尚未运行,请查看以下易于遵循的指南。

  • 在Ubuntu 16.04 LTS上安装Apache,MariaDB和PHP7(LAMP堆栈)
  • 在Ubuntu 16.04 LTS上安装Nginx,MariaDB和PHP7(LEMP Stack)

完成后,回到这里继续阅读。

通过SSH登录

以您通过SSH创建(或root)的新用户身份登录到服务器(在此处替换您的用户名和服务器IP地址):

ssh [email protected]_IP_address

回答密码提示以完成登录过程。

让我们开始安装Wallabag!

步骤1:为Wallabag创建数据库和用户

Wallabag需要一个数据库来存储您的网页,本教程中我们将使用MariaDB / MySQL数据库。 运行以下命令以root身份登录MariaDB / MySQL shell。 请注意,这是MariaDB / MySQL的根用户,而不是Ubuntu 16.04系统的根用户。

mysql -u root -p

如果你看到 Access denied for user 'root'@'localhost' 错误,那么您需要禁用UNIX套接字身份验证。

然后使用以下命令为Wallabag创建一个新数据库。 本教程将其命名为wallabag,您可以为数据库使用任何喜欢的名称。

create database wallabag;

接下来,使用以下命令在localhost上创建一个新的数据库用户。 同样,本教程将其命名为wallabaguser,您可以使用任何喜欢的名称。

create user [email protected];

为用户设置密码。 用您的首选密码替换您的密码。

set password for [email protected]= password("your-password");

然后将新数据库的所有权限授予新用户,以便以后在Wallabag上可以写入数据库。

grant all privileges on wallabag.* to [email protected] identified by 'your-password';

刷新特权表,以使更改生效。

flush privileges;

退出MariaDB Shell:

exit;

您的网页将存储在 wallabag_entry 完成本教程末尾的wallabag安装后的表格。

步骤2:安装php7.0-mysql套件

关于数据库,我们需要做的另一件事是安装php7.0-mysql软件包。

sudo apt install php7.0-mysql

php7.0-mysql 软件包提供了 pdo_mysql wallabag将使用该驱动程序连接到MariaDB / MySQL数据库,否则Wallabag无法连接到该驱动程序。 如果您将PHP作为Apache模块运行,则在安装该软件包之后,必须重新启动Apache Web服务器,以便启用该驱动程序。

sudo systemctl restart apache2

如果您使用php7.0-fpm运行PHP,则无需重新启动Apache或php7.0-fpm。 的 pdo_mysql 安装后,驱动程序将自动启用。

如果不确定是否正在使用 Apache module 要么 php7.0-fpm,然后创建一个 test.php 文件根目录下的文件(默认情况下 /var/www/html)。

sudo nano /var/www/html/test.php

然后将以下PHP代码粘贴到文件中。

<?php phpinfo(); ?>

Ctrl + O 保存文件,然后按 Ctrl + X 退出。 现在,在浏览器地址栏中,输入

server-ip-address/test.php

将sever-ip-address替换为您的实际IP。 您应该看到服务器的PHP信息。 如果值 Server APIApache 2.0 Handler,那么您将PHP7.0用作Apache模块。 如果值为 PHP7.0-FPM,然后PHP作为FPM服务运行。

步骤3:安装Wallabag

我们将使用git工具从Github克隆Wallabag存储库,然后使用Composer安装Wallabag。 因此,使用以下命令在Ubuntu 16.04上安装git:

sudo apt install git

然后克隆Wallabag存储库,并将您的工作目录更改为该存储库。

git clone https://github.com/wallabag/wallabag.git

cd wallabag

最新版本的Wallabag(2.1.2)于2016年10月17日发布。使用 git checkout 命令。

git checkout 2.1.2

在使用Composer安装Wallabag之前,我们需要确保在Ubuntu 16.04上安装了以下PHP扩展。

sudo apt install php7.0-bcmath php7.0-xml php7.0-zip php7.0-curl php7.0-mbstring php7.0-gd

接下来,我们需要安装Composer,它是PHP的依赖项管理器。 它将为我们下载并安装所有必需的Wallabag依赖项。

sudo apt install composer

现在设置Symfony变量,并使用以下命令安装Wallabag。 SYMFONY_ENV=prod 告诉symfony我们正在生产环境中安装Wallabag。 的 --no-dev 标志确保在生产环境中未安装任何开发包。

SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist

在安装过程中,composer将下载并安装所有需要的依赖项。

之后,系统会要求您提供缺少的参数,以便 app/config/parameters.yml 可以创建文件。 Composer已经提供了一些默认值,但是它们不能用于生产Wallabag服务。

为简单起见,让我们将问题分为两部分。 第一部分是关于数据库参数的。 这是本教程提供的问题和参数。

Creating the "app/config/parameters.yml" file
 Some parameters are missing. Please provide them.
 database_driver (pdo_sqlite): pdo_mysql
 database_host (127.0.0.1): 127.0.0.1
 database_port (null): 3306
 database_name (symfony): wallabag
 database_user (root): wallabaguser
 database_password (null): your-password
 database_path ('%kernel.root_dir%/../data/db/wallabag.sqlite'): /var/lib/mysql/wallabag
 database_table_prefix (wallabag_): wallabag_

第一个问题是什么数据库驱动程序,即,您要用于Wallabag的数据库。 默认驱动程序是 pdo_sqlite 这意味着将使用SQLite数据库存储网页。 本文将使用MariaDB / MySQL,因为它们速度很快,并且是最受欢迎的开源关系数据库管理系统。 我们已经启用了 pdo_mysql 本文开头的驱动程序。 所以输入 pdo_mysql 作为第一个问题的答案。

其他问题很容易回答。 输入 127.0.0.1 作为数据库主机,并且 3306 作为数据库端口,因为默认情况下,MariaDB / MySQL数据库将在127.0.0.1:3306上进行侦听。 然后输入您在步骤1中创建的数据库名称,数据库用户和数据库用户密码。MariaDB / MySQL的默认数据库路径为 /var/lib/mysql。 您所有的数据库和表都存储在此目录下。 数据库表前缀可帮助您识别这些表适用于Wallabag。

现在在第二部分中,您只需按Enter键即可使用默认值。

 mailer_transport (smtp):
 mailer_host (127.0.0.1): 
 mailer_user (null): 
 mailer_password (null):
 locale (en): 
 secret (ovmpmAWXRCabNlMgzlzFXDYmCFfzGv): 
 twofactor_auth (true): 
 twofactor_sender ([email protected]): 
 fosuser_confirmation (true): 
 from_email ([email protected]):

完成后,运行以下命令。

php bin/console wallabag:install --env=prod

它将检查系统要求并建立数据库。 当询问您是否要重置数据库时,请按 ñ 回答不。 然后将要求您创建一个管理员用户。

Installing Wallabag...

Step 1 of 5. Checking system requirements.
+-----------------+--------+----------------+
| Checked         | Status | Recommendation |
+-----------------+--------+----------------+
| PDO Driver      | OK!    |                |
| curl_exec       | OK!    |                |
| curl_multi_init | OK!    |                |
+-----------------+--------+----------------+
Success! Your system can run Wallabag properly.

Step 2 of 5. Setting up database.
It appears that your database already exists. Would you like to reset it? (y/N)n
Creating schema
Clearing the cache

Step 3 of 5. Administration setup.
Would you like to create a new admin user (recommended) ? (Y/n)y
Username (default: wallabag) : your-admin-username
Password (default: wallabag) : admin-pasword-here
Email: admin-email-here

Step 4 of 5. Config setup.

Step 5 of 5. Installing assets.

Wallabag has been successfully installed.
Just execute `php bin/console server:run --env=prod` for using wallabag: http://localhost:8000

第2步将创建wallabag数据库表。 完成后,我们将wallabag目录移至 /var/www/

cd ~

sudo mv ~/wallabag/ /var/www/

然后将Apache用户(www-data)设置为所有者。

sudo chown www-data:www-data /var/www/wallabag -R

步骤4:设置Apache虚拟主机

为Wallabag创建虚拟主机配置文件。

sudo nano /etc/apache2/sites-available/wallabag.conf

如果将PHP用作Apache模块,则将以下文本复制并粘贴到配置文件中。 更换 wallabag.example.com 用您自己的域名。 您还应该将域名指向DNS中Ubuntu 16.04服务器的IP地址。

<VirtualHost *:80>
    ServerName wallabag.exmaple.com
    ServerAlias wallabag.example.com

    DocumentRoot /var/www/wallabag/web
    <Directory /var/www/wallabag/web>
        AllowOverride None
        Order Allow,Deny
        Allow from All

        <IfModule mod_rewrite.c>
            Options -MultiViews
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ app.php [QSA,L]
        </IfModule>
    </Directory>

    # uncomment the following lines if you install assets as symlinks
    # or run into problems when compiling LESS/Sass/CoffeScript assets
    # <Directory /var/www/wallabag>
    #     Options FollowSymlinks
    # </Directory>

    # optionally disable the RewriteEngine for the asset directories
    # which will allow apache to simply reply with a 404 when files are
    # not found instead of passing the request into the full symfony stack
    <Directory /var/www/wallabag/web/bundles>
        <IfModule mod_rewrite.c>
            RewriteEngine Off
        </IfModule>
    </Directory>
    ErrorLog /var/log/apache2/wallabag_error.log
    CustomLog /var/log/apache2/wallabag_access.log combined
</VirtualHost>

上面的配置使用PHP作为Apache模块,如果您想使用php7.0-fpm运行PHP,请添加 ProxyPassMatch 以下规则 CustomLog

.....
CustomLog /var/log/apache2/wallabag_access.log combined
 ProxyPassMatch ^/(.*.php(/.*)?)$ unix:/run/php/php7.0-fpm.sock|fcgi://localhost/var/www/wallabag/web/
</VirtualHost>

保存并关闭文件。 在上述配置中,我们使用了Apache重写模块来重写URL。 我们需要确保 mod_rewrite 通过运行以下命令启用,以便可以进行URL重写并可以正确显示Wallabag前端。

sudo a2enmod rewrite

然后通过创建符号链接来启用此虚拟主机。

sudo ln -s /etc/apache2/sites-available/wallabag.conf /etc/apache2/sites-enabled/

为了使上述更改生效,请重新启动Apache。

sudo systemctl restart apache2

现在您应该可以在以下位置访问Wallabag Web界面 wallabag.example.com 并登录。

设置Nginx服务器阻止文件

创建文件。

sudo nano /etc/nginx/conf.d/wallabag.conf

将以下文本复制并粘贴到配置文件中。 用您自己的域名替换wallabag.example.com。 您还应该将域名指向DNS中Ubuntu 16.04服务器的IP地址。

server {
  server_name wallabag.example.com;
  root /var/www/wallabag/web;

  location / {
    # try to serve file directly, fallback to app.php
    try_files $uri /app.php$is_args$args;
  }
  location ~ ^/app.php(/|$) {
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    fastcgi_split_path_info ^(.+.php)(/.*)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    fastcgi_param DOCUMENT_ROOT $realpath_root;
    internal;
}

error_log /var/log/nginx/wallabag_error.log;
access_log /var/log/nginx/wallabag_access.log;
}

保存并关闭文件。 然后重新加载Nginx,以便可以启用服务器块。

sudo systemctl reload nginx

现在,您应该可以在以下位置访问wallabag Web界面 wallabag.example.com 并登录。

设置基本的SMTP服务器

请注意,为了注册新用户,您的Ubuntu 16.04服务器需要运行SMTP服务器,以向新用户发送确认电子邮件。 您可以为此使用Postfix。

sudo apt install postfix

在安装过程中,它将要求您为Postfix选择一种配置类型。 选择 Internet Site 这样Postfix可以将电子邮件发送到Internet上的其他SMTP服务器。

Selection_005

在系统邮件名称字段中,输入类似 wallabag.your-domain.com

Selection_006

现在我们终于完成了,可以开始保存网页了。 干杯!

在Ubuntu 16.04服务器上安装wallabag

我希望本教程可以帮助您在具有LAMP或LEMP的Ubuntu 16.04服务器上安装Wallabag。 与往常一样,如果您发现此帖子有用,请订阅我们的免费新闻通讯,或在Google +,Twitter或Facebook页面上关注我们。

Sidebar