在這充滿網址的時代,每次傳訊息都是一長串網址貼到群裡,總會有一種洗頻的罪惡感爽,但每次都用別人家的卻又背部起來,這時候就該來自架啦~
簡介
Polr是一款開源的短網址平台,你可以自由的設定網域、託管自己的網址,主要是由 PHP 和 Lumen 所編寫出來的一套系統。
以下是安裝要求
- Apache, nginx, IIS, or lighttpd (Apache preferred)
- PHP >= 5.5.9
- MariaDB or MySQL >= 5.5, SQLite alternatively
- composer
- PHP requirements:
- OpenSSL PHP Extension
- PDO PHP Extension
- PDO MySQL Driver (php5-mysql on Debian & Ubuntu, php5x-pdo_mysql on FreeBSD)
- Mbstring PHP Extension
- Tokenizer PHP Extension
- JSON PHP Extension
- PHP curl extension
以下文章假設讀者沒有安裝過Apache、Mysql、PHP,所以會重安裝講起,有安裝過的可以跳過,這邊附上Github連結
Apache安裝
- 在安裝前一樣先進行更新
sudo apt-get update
2. 安裝Apache Webserver
sudo apt-get install apache2 -y
安裝 PHP 與 Composer
- 安裝PHP
sudo apt-get install php php-pdo php-mysql php-mbstring php-tokenizer php-json php-curl -y
2. 下載 Composer
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
3. 驗證檔案HASH值
看到 “Installer verified” 代表檔案驗過成功
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e5325b19b381bfd88ce90a5ddb7823406b2a38cff6bb704b0acc289a09c8128d4a8ce2bbafcd1fcbdc38666422fe2806') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
4. 全域安裝 Composer
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
當出現 Composer (version 1.10.9) successfully installed to: /usr/local/bin/composer
代表已經安裝成功
安裝Mysql
在這邊我們需要去安裝 Mysql 作為我們的資料庫
安裝 Mysql Server
sudo apt-get install mysql-server -y
sudo mysql_secure_installation
在安裝的過程中會出現以下選項,基本上就按照下面打得,跟著選就好,除非你有甚麼特殊需求,在密碼的地方,可以依據你的需求設定密碼難度,我通常選英文+特殊符號,
Would you like to setup VALIDATE PASSWORD plugin? [Y/N] N
New password: <Your Password>
Re-enter new password: <Your Password>
Remove anonymous users? [Y/N] Y
Disallow root login remotely? [Y/N] Y
Remove test database and access to it? [Y/N] Y
Reload privilege tables now? [Y/N] Y
安裝 Polr
接下來開始進入重頭戲,開始正式安裝 Polr ,前面都只是在設定基礎的環境。
下載並設定
- git clone 檔案
cd /var/www
sudo git clone https://github.com/cydrobolt/polr.git --depth=1
2. 設定權限
sudo chmod -R 755 polr
sudo chown -R www-data polr
3. 安裝 PHP 套件
cd polr
sudo composer install --no-dev -o
在這邊出現黃色的字,那是因為版本的問題,可以全部忽略掉,只要沒有出現紅底色的字,就代表安裝成功。
4. 讓 Polr 變成安裝環境
sudo cp .env.setup .env
sudo chown www-data .env
創建Database
在這邊我們要為了 Polr 去新增一個資料庫,以當作 Polr 儲存資料用,它裡面會存帳號、連結等等資料
- 登入 mysql
sudo mysql -u root -p
這時他會要你輸入你的密碼,以來進行登入。
2. 創建DB
我們要為了 ,並去新增一組帳號,來讓他管理 Polr 資料庫內的資訊
CREATE DATABASE polr;
GRANT ALL PRIVILEGES on polr.* to 'username'@'localhost' identified by 'password';
FLUSH PRIVILEGES;
exit
第一行為創建一個新的名為polr的資料庫,在第二行的地方為新增一個管理人員,在 username 的地方要替換成你想要的帳號名稱, password 則是更換成你的密碼,第三行則是更新 Mysql 的配置,接下來我們離開 Mysql
配置 Apache 文檔
在這邊我們需要去為了 Polr 設定專屬的 Apache 文檔
- 將預設的 Apache 網路配置給關閉並刪除index.html
sudo a2dissite 000-default.conf
sudo rm /var/www/html/index.html
2. 設置一個專屬於 Polr 的 Apache 設置
sudo vim /etc/apache2/sites-available/polr.conf
3. 將以下內容貼到上面新增的文檔中
這邊要將example.com替換成個人網域,DocumentRoot 的地方是稍後 clone Polr 的位置
<VirtualHost *:80>
ServerName example.com
ServerAlias example.com
DocumentRoot "/var/www/html/public"
<Directory "/var/www/html/public">
Require all granted
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
4. 將配置新增到 Apache2裡面
sudo a2ensite polr.conf
5. 啟動 Apache2 模組
sudo a2enmod rewrite
6. 重新啟動Apache2
sudo systemctl restart apache2.service
安裝 SSL 證書
大家都知道 http 是不太安全的一個協定,而在 Polr 中內建的協定便是 http ,這時候我們要去安裝 SSL 證書
- 安裝 certbot
sudo apt install certbot python-certbot-apache
2. 執行 certbot
sudo certbot
在第一次執行時,會要求你填寫 Email , 以及是否同意 Tos 和參與他們的計畫,再依據個人的想法來填寫即可。
在執行certbot後,他會要你選擇哪一個網址是要進行配置的,以下圖的情況,因為我只有一個網址所以選1就好
接下來會問你要不要證書相關的事情
最後問你要不要重新導向,我個人建議選2
這樣就配置完成了~
安裝 Polr
打開網站,然後打上你剛剛設定的網域+/setup,範例如下
example.com/setup
然後你會進入到下面的畫面中,在以下設定有幾個點需要特別注意一下
在這邊主要是設定你的資料庫,在帳號地方填寫你剛剛新設定的那一組Mysql帳號跟密碼,還有資料庫名稱
這邊從第一個填空依序是做應用名稱、應用協定、網域、是否提供分析跟是否公開與錯誤時該是否重導向。
應用協定部分,在剛才我們有設定了 SSl ,所以我們這邊要改成https:// ,然後網域則是填上剛剛設定的網域,其他部分則依據個人去進行設定
在 Default URL Ending Type 跟 URL Ending Base的地方則是選擇你的網址長度跟編碼形式,我個人是都選則62
在下一個設定則是管理者設定,在這部分填入你的信箱、帳號、密碼等資訊。
接下來是做SMTP Server , 這部分是在於伺服器有狀況或是要寄送郵件時所需要的,可設置可不設置都是可以的。
在最後面的其他設定這邊有一個坑,當你第一次設定的時候,如果選了關閉註冊,這時候系統就會莫名其妙地產生錯誤,所以在這邊需要先把他設定成有條件式的開放註冊。這可以在後面去修改設定檔把它關閉。
在後面的密碼回復等設定就看讀者想怎麼設定,都是可以的。
在最後可以去設定一下頁面的風格,可以按 Screenshots去挑選風格
當全部設定完成,按下提交後等他跑一下,如果成功會出現下面介面
當失敗時,可以去 polr 資料夾底下,那邊有一個.env
,文檔中找到APP_DEBUG=false
把false改成true然後就可以看到錯問訊息,當知道錯誤後,從文檔中找到POLR_SETUP_RAN=true
後,把true改成false就可以重新設定頁面。
而前面提到的申請帳號的權限問題,在這邊也可以直接修改,找到POLR_ALLOW_ACCT_CREATION=1
後把1改成0即可完成
功能運行
當完全設定都沒問題時,你可以在網頁中打上你剛剛填上的網域時,便會出現類似下面的網站,他會依據你剛剛的設定去給出不同的頁面。
而在登入之後,可以看到這個畫面,在這個時候你會發現右上角的位置出現你的帳號名稱,這時你就可以開始縮短網址了。
在縮短網址方面有兩種,第一種是貼上網址後直接按縮短,這時他會隨機產生一組網址給你,第二種是自由的去設定(Link options),在設定的地方你可以去填入你自己想要的文字,在按下縮短即可完成。啽Polr同時提供QRcode來讓手機方便進行掃碼
再新增成功後,前往後台便可以看到你剛剛設定的短網址了
而在網址下方可以看到Users,在這邊可以進行添加使用者與管理者權限
總結
這篇文章就到這邊告一個段落,文章從安裝Apache到Mysql、PHP 最後安裝polr縮網址服務。