Підготування

Ви повинні виконати деякі кроки з підготування до встановлення Galette. Це залежить від того, чого ви хочете досягти.

Дозволи на доступ до файлів

Попередження

Часто використовувана кмітлина полягає в наданні всіх прав всім рекурсивно на каталог (chmod 777). Це дуже погана ідея з точки зору безпеки. Будь ласка, не використовуйте цю кмітлину, вас попередили ;)

Деякі каталоги Galette потребують певних прав. Застосункові потрібно буде записувати в деякі з них, ви повинні переконатися, що це буде можливо. Ось каталоги, які потребують доступу на запис:

  • config 1,

  • data/attachments,

  • data/cache,

  • data/exports,

  • data/files,

  • data/imports,

  • data/logs,

  • data/photos,

  • data/tempimages,

  • data/templates_c

1

доступ на запис у каталог config потрібен лише для встановлення Galette, ми порадимо вам видалити доступ до запису, щойно Galette буде встановлено :)

Створити базу даних

Примітка

Ніколи не використовуйте кореневого (root) користувача бази даних!

Задля безпеки настійно пораджено покладатися на конкретного користувача для бази даних Galette і надавати йому тільки запитуваний доступ до єдиної бази даних Galette.

Для прикладу ми використовуватимемо базу даних mygalette з користувачем mygaletteuser і mypass в якості пароля.

  • MariaDB

    $ mysql -u root -p
    mysql> CREATE DATABASE mygalette;
    mysql> GRANT ALL ON magalette.* to
        ->'mygaletteuser'@'localhost' IDENTIFIED BY 'mypass';
    
  • PostgreSQL

    $ su -
    # su - postgres
    $ createuser -P mygaletteuser
    $ createdb -O mygaletteuser mygalette
    

Ці команди можуть відрізнятися, будь ласка, зверніться до документації MariaDB чи PostgreSQL або використовуйте графічний засіб:

Експозиція каталогу вебсервера

Нове в версії 0.9.

Встановлення Galette може складатися з копіювання повного каталогу до місця, яке веб-сервер може читати. Цей метод може працювати, але він відкриває веб-файли та каталоги, які не повинні бути доступні таким чином.

Обмежити це можна, виставляючи лише каталог webroot. Усі інші каталоги є безпечнішими: неможливо зв’язатися з ними з вебсервера!

Попередження

Рекомендованим і єдиним захищеним способом є відкриття лише каталогу webroot.

Використання субдомену

Ось приклад конфігурації віртуального хосту, включно з приховуванням index.php:

<VirtualHost *:80>
    ServerName galette.localhost

    #https - add *:443 in the <VirtualHost>
    #SSLEngine on
    #SSLProtocol all -SSLv2 -SSLv3
    #Header always add Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"

    #SSLCertificateFile /etc/pki/tls/certs/galette.localhost.crt
    #SSLCertificateChainFile /etc/pki/tls/certs/galette.localhost.chain.crt
    #SSLCertificateKeyFile /etc/pki/tls/private/galette.localhost.key

    DocumentRoot /var/www/galette/galette/webroot/
    <Directory /var/www/galette/galette/webroot/>
        RewriteEngine On
        #You may need to set RewriteBase if you setup
        #rewritting in a .htaccess file for example.
        #RewriteBase /
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]
    </Directory>
</VirtualHost>

Nginx буде:

server {
    #http
    listen 80;
    listen [::]:80;

    # https
    #listen 443 ssl http2;
    #listen [::]:443 ssl http2;
    #ssl_certificate      /etc/ssl/certs/galette.localhost.pem;
    #ssl_certificate_key  /etc/ssl/private/galette.localhost.key;

    server_name galette.localhost;

    root /var/www/galette/galette/webroot;

    index index.html index.php;

    location / {
        try_files $uri $uri/ @galette;
    }

    location @galette {
        rewrite ^(.*)$ /index.php last;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        # You may have to adapt this path, depending on your distribution.
        fastcgi_pass unix:/var/run/php7.0-fpm.sock;
    }

    location ~ /(data|config|lib)/ {
        deny all;
    }
}

Використання псевдоніма

Альтернативна захищена конфігурація, якщо у вас немає конкретного субдомену для Galette, полягає у використанні псевдоніма у вашому існуючому віртуальному хості:

<VirtualHost *:80>
    ServerName mydomain.tld

    DocumentRoot /var/www/mydomain.tld

    Alias /mygalette/ /var/www/galette/galette/webroot/
    <Directory /var/www/galette/galette/webroot/>
        RewriteEngine On
        #You need to set RewriteBase to Alias path
        RewriteBase /mygalette/
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]
    </Directory>
</VirtualHost>

Не забувайте, що з цим рішенням ви повинні правильно налаштувати свою директиву RewriteBase.

Linux/Unix

Установлення Galette на Linux означає, що у вас є доступ до терміналу на сервері та необхідні списки контролю доступу в каталогах.

Як приклад, на Fedora, ви працюватимете (з кореневим доступом):

# cd /var/www/galette/
# chown -R apache:apache config data

На Debian, ми замінимо apache:apache з www-data:www-data.

У системах з підтримкою SELinux ми також додамо:

# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/galette/config(/.*)?'
# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/galette/data(/.*)?'
# restorecon -R -v /var/www/html/galette/

Вам також доведеться дозволити вебсерверу під’єднуватися до мережі за допомогою логічного значення SELinux:

# setsebool httpd_can_network_connect on

FTP

Попередження

Деякі програми архівування або FTP можуть пошкоджувати файли … Радимо, якщо ви використовуєте Windows, використовувати 7zip для витягнення та`FileZilla <https://filezilla-project.org/>`_ для FTP передавань.

Після того, як джерельний код було відновлено локально, використовуйте команду tar xjvf galette.tar.bz2 під Linux / Unix / MacOS або графічний засіб під Windows.

Просто скопіюйте отриманий нестиснутий каталог та всі його підкаталоги та файли за допомогою вашого FTP-клієнта.

../_images/filezilla.jpg

Конкретні випадки

Хостинг Ionos

Якщо ви розміщуєтеся на Ionos; і хочете використовувати спеціальний піддомен для Galette, ви повинні створити свій піддомен в їх інтерфейсі, і зробити його вказівним на каталог webroot. Ви також повинні редагувати файл .htaccess що це містить, та розкоментувати директиву RewriteBase /.

Хостинг OVH

Цей хостинг пропонує змінити версію PHP, яку ви використовуєте з вашого облікового запису клієнта.

Додаткові відомості доступні тут: https://docs.ovh.com/fr/fr/web/hosting/configurer-le-php-sur-son-hebergement-web-mutu-2014/

Попередження

Багато користувачів стикаються з проблемами відображення зображень або списку розширень на хостах OVH. Розв’язанням цієї проблеми є створення файлу .ovhconfig на вашому маршруті з наступним вмістом:

app.engine=phpcgi

Nginx

Конфігурація вебсервера Nginx відрізняється від Apache One (див. Документацію Nginx для більш повного пояснення).

Тому ви повинні перетворити файли обмеження доступу в конфігурації Nginx, як, наприклад:

location ~ /(data|config|lib)/ {
    deny all;
}

Windows

Описане тут установлення міститься на XAMPP; інші способи установлення існують, але не перелічені тут.

Перш за все, завантажте XAMPP на своєму комп’ютері. Встановімо його в C:\xampp.

../_images/xampp_directory.jpg

Запустіть виконуваний файл xampp-control (ви можете знайти його в C:\xampp), таким чином, ви можете запустити служби Apache та MySQL.

../_images/xampp_control.jpg

Після того, як виконано ці кроки, завантажте Galette і перемістіть його у C:\wampp\htdocs\galette, вебзастосунок буде доступний за посиланням http://127.0.0.1/galette/. Просто відвідайте цю URL-адресу, щоб почати процес установлення.

Примітка

Увімкнення модулів PHP під XAMPP виконується в xampp/php/php.ini. Більшість необхідних розширень вже присутні, але закоментовані (рядок починається з «;»), просто розкоментуйте їх у коді та перезапустіть XAMPP.

Розширення openssl відсутнє у файлі, щоб задіяти його просто додайте до вашого php.ini: extension=php_openssl.dll