使用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