Поиск по сайту:

Как установить TYPO3 7 с Nginx и MariaDB на Debian 8 (Джесси)


На этой странице

  1. Предварительное примечание
  2. Установка APCu
  3. Установка TYPO3
  4. Образ виртуальной машины
    1. SSH-вход
    2. Вход в MariaDB

    В этом руководстве показано, как установить и настроить веб-сайт TYPO3 (версия 7) на сервере Debian 8 (Jessie), на котором Nginx установлен в качестве веб-сервера, а MariaDB — в качестве сервера базы данных. Nginx — это быстрый веб-сервер, который заменяет стандартный веб-сервер «Apache» в этой настройке, MariaDB — это форк MySQl, который работает быстрее, чем MySQL и разработан первоначальным изобретателем MySQL Монти Видениусом.

    Typo3 — это система CMS корпоративного класса, написанная на PHP и имеющая большое сообщество пользователей и разработчиков.

    Предварительное примечание

    Я хочу установить TYPO3 на виртуальный хост с именем www.example.com с корневым каталогом документа /var/www/www.example.com/web. Мой сервер использует IP-адрес 192.168.1.100, замените этот IP-адрес во всех файлах конфигурации и командах на IP-адрес вашего сервера.

    В руководстве предполагается, что у вас уже есть работающая установка Nginx, если нет, то сначала следуйте этому руководству, чтобы установить Nginx, PHP и MariaDB.

    Войдите на сервер как пользователь root и перейдите к следующему шагу.

    Установка APCu

    APCu — это бесплатный и открытый кешировщик кода операции PHP для кэширования и оптимизации промежуточного кода PHP. Он добавляет функции, ранее предоставляемые APC, к теперь интегрированному операционному кэшу PHP. Он похож на другие кешировщики кода операции PHP, такие как eAccelerator и XCache. Настоятельно рекомендуется установить один из них, чтобы ускорить вашу PHP-страницу.

    APC можно установить следующим образом:

    apt-get install php5-apcu

    Если вы используете PHP-FPM в качестве демона FastCGI, перезапустите его следующим образом:

    systemctl restart php5-fpm.service

    Установка TYPO3

    Корень документа моего веб-сайта www.example.com — /var/www/www.example.com/web. Если он не существует, создайте его следующим образом:

    mkdir -p /var/www/www.example.com/web

    Затем мы загружаем TYPO3 7.6.4 в виде файла .tar.gz с https://typo3.org/download/ и помещаем его в корень нашего документа:

    cd /tmp
    wget http://downloads.sourceforge.net/project/typo3/TYPO3%20Source%20and%20Dummy/TYPO3%207.6.4/typo3_src-7.6.4.tar.gz
    tar xfz typo3_src-7.6.4.tar.gz
    mv typo3_src-7.6.4 /var/www/www.example.com/
    cd /var/www/www.example.com/web
    ln -s ../typo3_src-7.6.4 typo3_src
    ln -s typo3_src/index.php
    ln -s typo3_src/typo3

    Рекомендуется сделать корень документа и файлы TYPO3 в нем доступными для записи для демона nginx, работающего как пользовательские www-данные и групповые www-данные:

    chown -R www-data:www-data /var/www/www.example.com/web

    Если вы еще не создали базу данных MySQL для TYPO3 (включая пользователя MySQL TYPO3), вы можете сделать это следующим образом (в этом примере я называю базу данных typo3, а имя пользователя — typo3_admin, а его пароль — typo3_admin_password):

    mysqladmin --defaults-file=/etc/mysql/debian.cnf create typo3
    mysql --defaults-file=/etc/mysql/debian.cnf
    GRANT ALL PRIVILEGES ON typo3.* TO 'typo3_admin'@'localhost' IDENTIFIED BY 'typo3_admin_password';
    GRANT ALL PRIVILEGES ON typo3.* TO 'typo3_admin'@'localhost.localdomain' IDENTIFIED BY 'typo3_admin_password';
    FLUSH PRIVILEGES;
    quit;

    Затем мы создаем конфигурацию виртуального хоста nginx для нашего виртуального хоста www.example.com в каталоге /etc/nginx/sites-available/ следующим образом:

    nano /etc/nginx/sites-available/www.example.com.vhost
    server {
           listen 80;
           server_name www.example.com example.com;
           root /var/www/www.example.com/web;
    
           if ($http_host != "www.example.com") {
                     rewrite ^ http://www.example.com$request_uri permanent;
           }
    
           index index.php index.html;
    
           location = /favicon.ico {
                    log_not_found off;
                    access_log off;
           }
    
           location = /robots.txt {
                    allow all;
                    log_not_found off;
                    access_log off;
           }
    
           # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
           location ~ /\. {
                    deny all;
                    access_log off;
                    log_not_found off;
           }
    
            location ~ \.php$ {
                            try_files $uri =404;
                            include /etc/nginx/fastcgi_params;
                            fastcgi_pass unix:/var/run/php5-fpm.sock;
                            fastcgi_index index.php;
                            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                            fastcgi_intercept_errors on;
                            fastcgi_buffer_size 128k;
                            fastcgi_buffers 256 16k;
                            fastcgi_busy_buffers_size 256k;
                            fastcgi_temp_file_write_size 256k;
                            fastcgi_read_timeout 1200;
            }
    		
            client_max_body_size 100M;
    
            location ~ /\.(js|css)$ {
                    expires 604800s;
            }
    
            if (!-e $request_filename){
                    rewrite ^/(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ /$1.$3 last;
            }
    
            location ~* ^/fileadmin/(.*/)?_recycler_/ {
                    deny all;
            }
            location ~* ^/fileadmin/templates/.*(\.txt|\.ts)$ {
                    deny all;
            }
            location ~* ^/typo3conf/ext/[^/]+/Resources/Private/ {
                    deny all;
            }
            location ~* ^/(typo3/|fileadmin/|typo3conf/|typo3temp/|uploads/|favicon\.ico) {
            }
    
            location / {
                            if ($query_string ~ ".+") {
                                    return 405;
                            }
                            if ($http_cookie ~ 'nc_staticfilecache|be_typo_user|fe_typo_user' ) {
                                    return 405;
                            } # pass POST requests to PHP
                            if ($request_method !~ ^(GET|HEAD)$ ) {
                                    return 405;
                            }
                            if ($http_pragma = 'no-cache') {
                                    return 405;
                            }
                            if ($http_cache_control = 'no-cache') {
                                    return 405;
                            }
                            error_page 405 = @nocache;
    
                            try_files /typo3temp/tx_ncstaticfilecache/$host${request_uri}index.html @nocache;
            }
    
            location @nocache {
                            try_files $uri $uri/ /index.php$is_args$args;
            }
    
    }

    Эта конфигурация уже содержит все необходимое для чистых URL-адресов (из-за строки try_files $uri $uri/ /index.php$is_args$args; в расположении @nocache).

    Затем убедитесь, что в файле /etc/nginx/mime.types есть следующая строка:

    nano /etc/nginx/mime.types
    [...]
            text/x-component                        htc;
    [...]

    Чтобы включить виртуальный хост, мы создаем на него символическую ссылку из каталога /etc/nginx/sites-enabled/:

    cd /etc/nginx/sites-enabled/
    ln -s /etc/nginx/sites-available/www.example.com.vhost www.example.com.vhost

    Перезагрузите nginx, чтобы изменения вступили в силу:

    systemctl reload nginx.service

    Затем настройте некоторые значения в файле php.ini для TYPO3. Я использую php-fpm на этом сервере, поэтому файл /etc/php5/fpm/php.ini. Откройте файл в редакторе:

    nano /etc/php5/fpm/php.ini

    и настройте следующие параметры.

    [...]
    always_populate_raw_post_data=-1
    [...]
    max_execution_time=240
    [...]
    post_max_size = 20M
    [...]
    upload_max_filesize = 20M
    [...]
    max_input_vars=2000
    [...]

    Примените изменения с помощью:

    systemctl reload php5-fpm.service

    Теперь мы можем запустить веб-установщик TYPO3, перейдя по адресу http://www.example.com/ — вам будет предложено сначала создать файл FIRST_INSTALL в корне документа, чтобы установка могла продолжиться:

    cd /var/www/www.example.com/web/
    touch FIRST_INSTALL
    chown www-data:www-data FIRST_INSTALL

    Теперь перезагрузите страницу. Установщик проверяет, выполнены ли все предварительные условия — если есть другие предупреждения, попробуйте исправить их сейчас:

    Нажмите «Продолжить».

    Затем заполните данные базы данных (пользователь: typo3_admin; пароль: typo3_admin_password при создании базы данных typo3) и нажмите «Продолжить»:

    На следующей странице выберите «Использовать существующую пустую базу данных» и выберите «typo3» в раскрывающемся меню. Затем нажмите «Продолжить»:

    Затем укажите имя пользователя и пароль для администратора TYPO3 и имя для вашего сайта. Нажмите «Продолжить» после этого:

    Установка завершена. Если вы хотите начать с демонстрационного веб-сайта вместо полностью пустой системы, оставьте установленным флажок Да, загрузить список дистрибутивов (это не приведет к немедленной установке демонстрационных данных, а просто сделает демонстрационный веб-сайт доступным в бэкэнде, откуда вы можете выбрать установку). Вместо этого я предпочту начать с пустой страницы, чтобы я мог создать собственный веб-сайт. Затем нажмите «Открыть бэкэнд»:

    Область администрирования находится по адресу http://www.example.com/typo3/. Войдите в систему с именем пользователя admin и паролем, который вы определили во время установки:

    Теперь войдите в систему с именем пользователя и паролем, которые вы выбрали во время установки Typo3.

    Typo3 успешно установлен. Теперь вы можете приступить к созданию своего веб-сайта Typo3.

    Образ виртуальной машины

    Это руководство доступно как готовая к использованию виртуальная машина в формате OVA/OVF для подписчиков Howtoforge. Формат VM совместим с VMWare, Virtualbox и другими инструментами, которые могут импортировать этот формат. Вы можете найти ссылку для скачивания в правом меню вверху. Нажмите на имя файла, чтобы начать загрузку.

    Данные для входа в виртуальную машину:

    Typo3 Войти

    Имя пользователя: admin
    Пароль: howtoforge

    Вход по SSH

    Имя пользователя: root
    Пароль: howtoforge

    Войти

    Имя пользователя: root
    Пароль: howtoforge

    Пожалуйста, измените пароли после первой загрузки.

    ВМ настроена на статический IP 192.168.1.100, IP можно изменить в файле /etc/network/interfaces.

    Ссылки

    • TYPO3: http://typo3.org/
    • nginx: http://nginx.org/
    • Вики-сайт nginx: http://wiki.nginx.org/
    • Debian: http://www.debian.org/