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

Как установить TYPO3 8.1 с Nginx (LEMP) на Ubuntu 16.04


Это руководство существует для этих версий ОС

  • Ubuntu 16.04 (Xenial Xerus)
  • Ubuntu 13.10 (дерзкая Саламандра)

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

  1. 1 Предварительное примечание
  2. 2 Установка TYPO3
  3. 3 Загрузка образа виртуальной машины для этого руководства
  4. 4 ссылки

В этом руководстве показано, как установить и запустить веб-сайт TYPO3 (версия 8.1) в системе Ubuntu 16.04, в которой вместо Apache установлен веб-сервер Nginx. Этот тип установки часто называют LEMP=Linux + Nginx (произносится как «engine x») + MySQL + PHP). Nginx — это быстрый и эффективный HTTP-сервер, который использует меньше ресурсов, чем Apache, и намного быстрее доставляет страницы, особенно статические файлы.

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

Я хочу установить TYPO3 на виртуальный хост с именем www.example.com с корневым каталогом документа /var/www/www.example.com/web.

У вас должен быть работающий стек LEMP. Если у вас еще нет установки LEMP, воспользуйтесь этим руководством: Сервер Ubuntu LEMP.

Поскольку мы должны выполнять все шаги из этого руководства с привилегиями root, мы можем либо добавить перед всеми командами в этом руководстве строку sudo, либо стать пользователем root прямо сейчас, набрав

sudo su

Я буду использовать редактор nano для редактирования файлов конфигурации в оболочке, nano можно установить с помощью этой команды:

apt-get install nano 

2 Установка TYPO3

Сначала мы установим некоторые дополнительные модули PHP, необходимые Typo3:

apt-get install php7.0-soap php7.0-zip

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

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

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

cd /var/www/www.example.com
wget get.typo3.org/8.1 -O typo3_src-8.1.2.tar.gz
tar xfz typo3_src-8.1.2.tar.gz
rm typo3_src-8.1.2.tar.gz
cd web
ln -s ../typo3_src-8.1.2 typo3_src
ln -s typo3_src/index.php index.php
ln -s typo3_src/typo3 typo3

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

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

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

mysql --defaults-file=/etc/mysql/debian.cnf
CREATE DATABASE typo3;
ALTER DATABASE typo3 CHARACTER SET utf8 COLLATE utf8_general_ci;
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/php/php7.0-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, чтобы изменения вступили в силу:

service nginx reload

Создайте файл FIRST_INSTALL в корне сайта, чтобы активировать установщик TYPO3.

touch /var/www/www.example.com/web/FIRST_INSTALL

И измените владельца на www-data, чтобы сценарий установки TYPO3 мог удалить файл после завершения установки.

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

Нам нужно настроить несколько значений php.ini, чтобы они соответствовали требованиям TYPO3. Откройте файл php.ini:

nano /etc/php/7.0/fpm/php.ini

И настройте следующие параметры конфигурации, чтобы они имели следующие значения:

[....]
max_execution_time=240
[....]
post_max_size = 20M
[....]
upload_max_filesize = 20M
[....]
max_input_vars=1500
[....]
memory_limit = 256M
[....]

Затем сохраните файл и перезапустите PHP-FPM, чтобы загрузить новую конфигурацию:

service php7.0-fpm restart

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

Нажмите кнопку «Система выглядит хорошо. Продолжить», чтобы начать процесс установки. Если на этой странице отображается сообщение о том, что не все предварительные условия выполнены, сначала настройте конфигурацию, чтобы она соответствовала требованиям, прежде чем продолжить установку:

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

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

Затем укажите имя пользователя и пароль для администратора TYPO3 и введите имя для своего веб-сайта TYPO3. Нажмите Продолжить, затем:

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

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

И войдите в систему с помощью пользователя-администратора TYPO3, которого вы создали выше.

И начните создавать свой сайт на TYPO3. Во внешнем интерфейсе будет отображаться ошибка типа \Сервис недоступен (503) На корневом уровне не найдено страниц!\, пока вы не добавите корневую страницу в бэкэнд. Я рекомендую ознакомиться с отличной документацией по TYPO3 о том, как создать свой первый веб-сайт в TYPO3, если вы еще не знакомы с этой CMS.

3 Загрузка образа виртуальной машины из этого руководства

Это руководство доступно в виде готового к использованию образа виртуальной машины в формате ovf/ova для подписчиков Howtoforge. Формат виртуальной машины совместим с VMWare и Virtualbox. Образ виртуальной машины использует следующие данные для входа:

Вход по SSH/оболочке

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

У этого пользователя есть права sudo.

Логин MySQL/MariaDB

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

IP виртуальной машины 192.168.1.100, его можно изменить в файле /etc/network/interfaces.

TYPO3 Войти

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

Пожалуйста, измените все указанные выше пароли, чтобы защитить виртуальную машину.

4 ссылки

  • TYPO3: http://typo3.org/
  • Nginx: http://nginx.org/
  • Вики Nginx: http://wiki.nginx.org/
  • Убунту: http://www.ubuntu.com/