WonderCMS to lekki, bezbazowy system CMS napisany w PHP. Ten poradnik pokazuje jak zainstalować go na Debianie 12 z certyfikatem SSL od Letsencrypt na trzy różne sposoby.
Wymagania wstępne
- Serwer z Debianem 12
- Dostęp do konta root lub użytkownika z uprawnieniami sudo
- Zarejestrowana domena wskazująca na IP serwera
1. Instalacja manualna
1.1. Aktualizacja systemu i instalacja wymaganych pakietów
sudo apt update && sudo apt upgrade -y
sudo apt install -y apache2 php php-curl php-zip unzip certbot python3-certbot-apache
1.2. Pobranie i rozpakowanie WonderCMS
wget https://github.com/robiso/wondercms/releases/latest/download/WonderCMS.zip
unzip WonderCMS.zip -d /var/www/wondercms
sudo chown -R www-data:www-data /var/www/wondercms
sudo chmod -R 755 /var/www/wondercms
1.3. Konfiguracja Apache
Utwórz plik konfiguracyjny:
sudo nano /etc/apache2/sites-available/wondercms.conf
Dodaj następującą zawartość (zamień twojadomena.pl
na swoją domenę):
<VirtualHost *:80>
ServerName twojadomena.pl
ServerAlias www.twojadomena.pl
DocumentRoot /var/www/wondercms
<Directory /var/www/wondercms>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Aktywuj konfigurację:
sudo a2ensite wondercms.conf
sudo a2enmod rewrite
sudo systemctl restart apache2
1.4. Instalacja certyfikatu SSL z Letsencrypt
sudo certbot --apache -d twojadomena.pl -d www.twojadomena.pl
Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie. Certybot automatycznie zaktualizuje konfigurację Apache.
1.5. Zakończenie instalacji
Otwórz w przeglądarce swoją domenę (https://twojadomena.pl) i postępuj zgodnie z instrukcjami instalacyjnymi WonderCMS.
2. Instalacja za pomocą Dockera
2.1. Instalacja Dockera
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
2.2. Pobranie obrazu WonderCMS
sudo docker pull wondercms/wondercms
2.3. Uruchomienie kontenera
sudo docker run -d \
--name wondercms \
-p 8080:80 \
-v /var/wondercms:/var/www/html \
-e APACHE_RUN_USER=#1000 \
-e APACHE_RUN_GROUP=#1000 \
wondercms/wondercms
2.4. Konfiguracja reverse proxy z Nginx i Letsencrypt
Instalacja Nginx i Certbota:
sudo apt install -y nginx certbot python3-certbot-nginx
Konfiguracja Nginx (utwórz plik /etc/nginx/sites-available/wondercms
):
server {
listen 80;
server_name twojadomena.pl www.twojadomena.pl;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Aktywuj konfigurację i uzyskaj certyfikat:
sudo ln -s /etc/nginx/sites-available/wondercms /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
sudo certbot --nginx -d twojadomena.pl -d www.twojadomena.pl
3. Instalacja za pomocą Ansible
3.1. Instalacja Ansible
sudo apt update
sudo apt install -y ansible
3.2. Przygotowanie playbooka
Utwórz plik wondercms.yml
:
---
- hosts: all
become: yes
vars:
domain: "twojadomena.pl"
www_root: "/var/www/wondercms"
tasks:
- name: Update system
apt:
update_cache: yes
upgrade: dist
- name: Install required packages
apt:
name: "{{ item }}"
state: present
loop:
- apache2
- php
- php-curl
- php-zip
- unzip
- certbot
- python3-certbot-apache
- name: Download WonderCMS
get_url:
url: https://github.com/robiso/wondercms/releases/latest/download/WonderCMS.zip
dest: /tmp/WonderCMS.zip
- name: Create web directory
file:
path: "{{ www_root }}"
state: directory
mode: '0755'
- name: Unzip WonderCMS
unarchive:
src: /tmp/WonderCMS.zip
dest: "{{ www_root }}"
remote_src: yes
- name: Set permissions
file:
path: "{{ www_root }}"
owner: www-data
group: www-data
recurse: yes
- name: Configure Apache
template:
src: wondercms.conf.j2
dest: /etc/apache2/sites-available/wondercms.conf
notify:
- restart apache
- name: Enable site and mod_rewrite
shell: |
a2ensite wondercms.conf
a2enmod rewrite
- name: Get SSL certificate
command: certbot --apache --non-interactive --agree-tos --email admin@{{ domain }} -d {{ domain }} -d www.{{ domain }}
handlers:
- name: restart apache
service:
name: apache2
state: restarted
Utwórz plik szablonu wondercms.conf.j2
:
<VirtualHost *:80>
ServerName {{ domain }}
ServerAlias www.{{ domain }}
DocumentRoot {{ www_root }}
<Directory {{ www_root }}>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
3.3. Uruchomienie playbooka
ansible-playbook -i "localhost," -c local wondercms.yml
Powyższy playbook można również uruchomić na zdalnym hoście, modyfikując odpowiednio inventory.
Podsumowanie
WonderCMS to doskonały wybór dla osób poszukujących lekkiego, łatwego w obsłudze systemu CMS. Dzięki temu poradnikowi masz trzy różne metody instalacji na Debianie 12 z certyfikatem SSL od Letsencrypt:
- Instalacja manualna – dobra do nauki i pełnej kontroli
- Docker – idealny dla środowisk konteneryzowanych
- Ansible – doskonały do automatyzacji i zarządzania konfiguracją
Ważne: Po instalacji pamiętaj o:
- Zmianie domyślnego hasła administratora
- Regularnym tworzeniu kopii zapasowych
- Aktualizacji WonderCMS do najnowszej wersji