使用LAMP或LEMP在Ubuntu 16.04服務器上安裝Wallabag
袋鼠 是用於保存網頁的免費的可自我託管的應用程序。 這是一個 開源替代其他專有的稍後閱讀應用程序,如Pocket和Instapaper,使您可以管理在互聯網上偶然發現的文章列表,以供日後閱讀。
Wallabag特點:
- Wallabag會從您的網頁上剝離廣告和無關的內容,並僅提供文章文本和相關圖像,以便於閱讀。 當您在智能手機或平板電腦上查看它們時,此功能特別有用。
- Wallabag將您的網頁保存在數據庫中,因此 即使原始網頁消失了,您仍然可以在Wallabag中查看它。
- 您可以輕鬆地將所有網頁導出到TXT,HTML,CSV,EPUB,MOBI,PDF或JSON文件。
- 您還可以安裝Wallabag瀏覽器擴展程序和智能手機應用程序,以輕鬆訪問Wallabag。
- 能夠從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 API
是 Apache 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服務器。
在系統郵件名稱字段中,輸入類似 wallabag.your-domain.com
。
現在我們終於完成了,可以開始保存網頁了。 乾杯!
我希望本教程可以幫助您在具有LAMP或LEMP的Ubuntu 16.04服務器上安裝Wallabag。 與往常一樣,如果您發現此帖子有用,請訂閱我們的免費新聞通訊,或在Google +,Twitter或Facebook頁面上關注我們。