Raspberry Pi筆記(89):安裝內容管理系統 Joomla

Joomla 與 WordPress 都是知名的內容管理系統(Content Management System, 簡稱 CMS),能夠快速生成網頁內容,提供多用戶共同管理。Joomla 是開源的軟體,可讓您輕鬆發布 Web 內容,除了有專業級別的模版外,還可以設定最佳化網路搜尋 SEO (Search Engine Optimization),這點是比 WordPress 方便許多。
Photo by Alvaro Reyes on Unsplash

在 Raspberry Pi 安裝 Joomla 的過程蠻簡單的,因為它是基於 PHP 建構的,後端資料庫可使用 MariaDB,Web Server 則安裝容易管理的 Nginx。以下是我將 Nginx、PHP 和 MySQL 安裝到 Pi 4上的步驟與過程。安裝之前,先更新系統:
$ sudo apt update
$ sudo apt upgrade

[安裝Nginx]

Nginx 近幾年變的非常熱門,與 Apache 成為 web server 的兩大主流。Nginx 是一個免費的開源 Web Server,也可以作為反向代理、Http Cache、負載平衡器。安裝的方法很簡單,為了避免與 Apache 使用到相同的 80 Port,安裝前,建議先執行以下指令將 Apache 移除。
$ sudo apt remove apache2
執行以下指令安裝 Nginx:
$ sudo apt install nginx
安裝完成後,啟動 Nginx 服務:
$ sudo systemctl start nginx
查閱目前主機的IP,稍後要使用瀏覽器測試服務是否正常。
$ hostname -I
知道 IP 後,使用瀏覽器,輸入 http://ip_address,以我的樹莓派 IP 為例,輸入 http://192.168.0.108 即可。如果出現以下畫面,就表示安裝成功了。

[安裝PHP]

由於 Joomla 使用 PHP 語言,因此還要安裝 PHP 才能使用,執行以下指令進行安裝:
$ sudo apt install php7.4-fpm php7.4-mbstring php7.4-mysql php7.4-curl php7.4-gd php7.4-curl php7.4-zip php7.4-xml -y
安裝完成後,測試一下 PHP 是否正確安裝,修改設定啟動文件。
$ sudo nano /etc/nginx/sites-enabled/default
找到以下這行:
index index.html index.htm;
加上 index.php 在這行 index 的後面,讓 Nginx 讀取首頁時,將 index.php 當作是預設首頁。
index index.php index.html index.htm;
再按下 CTRL  +   X  ,然後  Y  再按 ENTER  儲存後離開文字編輯器。重新啟動並載入 nginx 服務:
$ sudo systemctl reload nginx
編輯首頁 index.php,顯示 PHP 相關的系統資訊。
$ sudo nano /var/www/html/index.php
將內容貼上以下這行,再按下 CTRL  +   X  ,然後  Y  再按 ENTER  鍵存檔並離開。 如果出現下圖,就表示安裝成功了。
<?php phpinfo(); ?>

[在Nginx建立Joomla虛擬機環境]

安裝好Nginx後,就可以開始設定Joomla的環境,先在 Nginx 建立虛擬網站,並新增一個 joomla.conf 檔案。
$ sudo nano /etc/nginx/sites-available/joomla.conf
將以下內容貼在 joomla.conf 檔案內。
server {
    listen 80;
    listen [::]:80;

    root /var/www/joomla;

    index index.php index.html index.htm;
    server_name _;

    client_max_body_size 100M;
    autoindex off;
    
    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # deny running scripts inside writable directories
    location ~* /(images|cache|media|logs|tmp)/.*.(php|pl|py|jsp|asp|sh|cgi)$ {
      return 403;
      error_page 403 /403_error.html;
    }

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # caching of files 
    location ~* \.(ico|pdf|flv)$ {
            expires 1y;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
            expires 14d;
    }
}
按下 CTRL  +   X  ,然後  Y  再按 ENTER  鍵儲存後離開文字編輯器。 並使用以下指令建立檔案的連結。
$ sudo ln -s /etc/nginx/sites-available/joomla.conf /etc/nginx/sites-enabled/joomla.conf
如果您不將其與其他網域名稱一起使用,可從「sites-enabled」目錄中刪除「default」虛擬主機設定檔。
$ sudo rm /etc/nginx/sites-enabled/default
重新啟動 Nginx 服務。
$ sudo systemctl reload nginx

[安裝MariaDB及環境設定]

joomla 4.x 版支援的資料庫有 MySQL 及 PostgreSQL,而 MariaDB 與 MySQL 相容,這裡我們就用開源的 MariaDB 當作 joomla 的資料庫,安裝的方法,可參考我的另一篇部落格文章:Raspberry Pi 筆記(61):安裝MySQL(MariaDB)資料庫及管理工具Adminer

使用 root 登入 MariaDB,這時會出現輸入密碼的畫面,需輸入在建立 MariaDB 時的密碼。
$ sudo mysql -u root -p
登入後,使用以下指令建立 joomla 資料庫。
MariaDB [(none)]> CREATE DATABASE joomladb;
建立 joomla 使用者,名為 joomlausr。
MariaDB [(none)]> CREATE USER 'joomlausr'@'localhost' IDENTIFIED BY '[PASSWORD]';
將 joomladb 資料庫權限授與使用者 joomlausr。
MariaDB [(none)]> GRANT ALL PRIVILEGES ON joomladb.* TO 'joomlausr'@'localhost';
將記憶體內的資料寫入資料庫。
MariaDB [(none)]> FLUSH PRIVILEGES;
離開 MariaDB。
MariaDB [(none)]> quit;

[下載安裝joomla]

joomla下載的檔案,解壓縮後直接放到 Nginx 虛擬站台的目錄即可,首先先建立存放檔案的目錄,並切換目錄至 /var/www/joomla 路徑下。
$ sudo mkdir -p /var/www/joomla
$ cd /var/www/joomla
目前 joomla 官網最新的版本是 4.1.0,您可以到 官方下載網站 查看最新的版本。如果不知道如何取得檔案名稱,可以到以下網頁,找到 .gz 的下載點,按右鍵,複製連結,即可使用 wget 進行下載:
$ sudo wget https://downloads.joomla.org/cms/joomla4/4-1-0/Joomla_4-1-0-Stable-Full_Package.tar.gz
對下載的檔案解壓縮:
$ sudo tar -xvf Joomla_4-1-0-Stable-Full_Package.tar.gz
解壓縮成功後,刪除剛剛下載的壓縮檔:
$ sudo rm Joomla_4-1-0-Stable-Full_Package.tar.gz
joomla 目錄及其內容需要有「www-data」用戶和群組權限,因為 PHP 會讀取該目錄內的程式,我們可以使用「chown」命令來更正這些權限。
$ sudo chown -R www-data:www-data /var/www/joomla*
到這裡就已經完成 Joomla 的安裝了,接著就要進入 Joomla 進行初次設定。


[初次設定joomla]

使用瀏覽器,輸入 http://ip_address,以我的IP為例,輸入 http://192.168.0.108 即可。如果出現以下畫面,就表示安裝成功了。接著輸入使用語言及站台名稱。
按下「設定登入資訊」後,繼續填寫登入者的資料,包括名稱、密碼及 Email。
按下「設定資料庫連線」後,選擇與資料庫連線的類型(MySQLi)、主機(localhost)、帳號(joomlausr)、密碼及Joomla資料庫名稱(joomladb)等資訊。
按下「安裝Joomla >」後,開始進行安裝,稍後一下出現以下畫面,表示安裝完成。
如果按下「網站安裝完成 & 開啟網站首頁」,會出現以下畫面:
當按下「網站安裝完成 & 開啟網站後台」,會出現以下登入管理者畫面,或是在瀏覽器輸入以下網址:
http://192.168.0.108/administrator/
輸入帳號密碼後,就可以看到管理站台的畫面:

[為Joomla設定PHP參數]

以下是調整 PHP 的參數,包括設定緩衝及調整上傳檔案大小等,讓使用 Joomla 的感受更好些。執行文字編輯器開啟 php.ini設定檔:
$ sudo nano /etc/php/7.4/fpm/php.ini
找到以下這行,將 4096 改為 off:
output_buffering = 4096
更改成以下這行,禁用輸出緩衝:
output_buffering = Off


如要上傳大圖像時,POST檔案的大小僅 8MB,可以調整為 64MB,如果不夠還可以再調大些:
post_max_size = 8M
更改成以下這行:
post_max_size = 64M


將上傳文件的大小從 2MB 調整為 64MB,如果不夠還可以再調大些:
upload_max_filesize = 2M
更改成以下這行:
upload_max_filesize = 64M
編輯結束,按下 CTRL  +   X  ,然後  Y  再按 ENTER  鍵存檔並離開。
到這裡就全部安裝設定完成,接著要做的是充實站台內容,再由各位自行參考文件。

[參考資料]


Post a Comment

較新的 較舊