Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Установка (http://forum.typo3.ru/forumdisplay.php?f=13)
-   -   Решение проблем при установке/обновлении на TYPO3 6.2 (http://forum.typo3.ru/showthread.php?t=11260)

Андрей Аксенов 09.04.2014 15:45

Решение проблем при установке/обновлении на TYPO3 6.2
 
Решил создать новую тему в нужной ветке форума, а то много вопросов в совсем не подходящих для этого разделах.
Итак, предлагаю здесь обсуждать решение проблем при установке или миграции на версию TYPO3 6.2.

Сразу же расскажу про решение своих проблем. Об этом я отписался на официальном форуме TYPO3, но мало помогло.
Итак, при переходе с 6.1 на 6.2 получаю переадресацию на typo3/sysext/install/Start/Install.php и белый экран...
Замечу, что прежде чем ловить ошибки, нужно правильно настроить окружение для их ловли.
Итак, в typo3conf/LocalConfiguration.php делаем настройки:
PHP код:

'SYS' => array(
...
'devIPmask' => '*',
'displayErrors' => '2',
...
), 

или в версиях 4.x в localconf.php
PHP код:

// Рабочая настройка для обработки ошибок и исключений
$TYPO3_CONF_VARS['SYS']['displayErrors'] = '2';
$TYPO3_CONF_VARS['SYS']['devIPmask'] = '*'

В качестве значения devIPmask лучше бы забить внешний IP адрес вашего компьютера, иначе ошибки будут видны всем (узнать его можно хоть на Яндексе)...

Вообщем мне это не помогло, экран оставался белым. Ясно, что ошибки были, но какие?
Я пошел в лоб и в файле typo3/sysext/install/Start/Install.php для вывода ошибок добавил в самом начале строки:
PHP код:

ini_set('display_errors',1);
error_reporting(E_ALL); 

Возможно хватило бы и добавления в настройках:
$TYPO3_CONF_VARS['SYS']['syslogErrorReporting'] = E_ALL;
но что сделано, то сделано... И это помогло выяснить, что причина в расширении t3quixplorer:
PHP код:

Fatal errorUncaught exception 'TYPO3\Flow\Package\Exception\MissingPackageManifestException' with message 'No composer manifest file found at ".../typo3conf/ext/t3quixplorer//composer.json".' in ... 

После удаления папки с этим расширением и расширения из списка установленных, а также чистки папки typo3temp удалось загрузить привычный Install Tool.
А далее переход на новую версию прошел нормально - пришлось еще удалить пару старых и ненужных расширений.

Андрей Аксенов 09.04.2014 17:35

Еще одна неочевидная ошибка, с которой могут многие столкнуться - указаны неверные права, которые нужно устанавливать для папок. В результате чего могут неверно работать некоторые расширения, не выводиться рисунки и т. п. Это тем более справедливо для тех, кто использует веб сервер nginx - ему нужны права на чтение 0755 или 0664.
По умолчанию в install tool (TYPO3 6.2) в разделе Folder structure выводиться как ошибка (цифорки в красном кружочке, рядом с названием раздела), что-то вроде:
Цитата:

Default File permissions (BE/fileCreateMask)
Recommended: 0660. Currently configured as 0664 (readable by anyone on the server).
и
Цитата:

Default Directory permissions (BE/folderCreateMask)
Recommended: 2770. Currently configured as 2775 (readable by anyone on the server).
Не слушайте! Именно с этими рекомендуемыми параметрами и получаем ошибку доступа к файлам со стороны nginx. Проверить можно в модуле Install Tool > Test setup и далее - тестируем формирование изображений (Convert image formats to jpg и т. п.). Если всё нормально, то ничего трогать не надо, если же изображения не выводятся, то пробуем открыть ссылку на это пустое изображение в браузере (в хроме - щелкаем правой кнопкой мышки по пустому изображению и далее - открыть картинку в новой вкладке). Если видим что-то вроде
Цитата:

403 forbidden nginx
то это как раз то самое... Можно проверить, залезть в папку typo3temp/pics/ на сервере, и посмотреть, нет ли там файлов с названиями вроде installTool-read53452ec7d53d0-jpg.jpg?1397042887. Если есть, и они не нулевого размера, значит изображения наш сервер всё же формирует, но в браузер они не выводятся (ошибка 403 forbidden) - для сервера nginx не хватает разрешений на чтение этих изображений на сервере.
Исправляем:
в typo3conf/LocalConfiguration.php
ищем настройки fileCreateMask и folderCreateMask, исправляем их следующим образом:
PHP код:

return array(
    
'BE' => array(
...
        
'fileCreateMask' => '0664',
        
'folderCreateMask' => '2775',
...
    ),
); 

либо то же самое делаем через Insall Tool (раз уж мы там :). Идем в раздел All configuration, раскрываем $TYPO3_CONF_VARS['BE'], ищем fileCreateMask и folderCreateMask, ставим значения 0664 и 2775, соответственно. Жмем ниже кнопку "Write configuration".

После чего чистим папку typo3temp от старых временных файлов.
Может понадобиться также установить правильные права и для других папок на сервере при схожих симптомах (ошибка 403 forbidden):
Код:

chmod -R 775 folder_name

-=UncleByte=- 09.04.2014 21:24

Про nginx могу сказать только что и он и php-fpm у меня всегда работают как www-data и соответственно все права на файлы-папки стоят 755 и 644 для www-data и все работает нормальным образом. А сообщения про ошибки в Install Tool 6.2 относительно прав на файлы на самом деле врут, согласен.
В общем для установки нормальных прав команды следующие:
Код:

chown -hR www-data:www-data /path/to/site/public_html/
chmod -R ugoa= /path/to/site/public_html/
chmod -R ugoa+rX,u+w /path/to/site/public_html/

Таким образом владелец и группа у файлов и папок будут www-data и права на файлы и папки, соответственно, 644 и 755.

gabdullin 17.04.2014 01:08

Права на файлы и папки
 
Цитата:

Сообщение от -=UncleByte=- (Сообщение 38306)
Про nginx могу сказать только что и он и php-fpm у меня всегда работают как www-data и соответственно все права на файлы-папки стоят 755 и 644 для www-data и все работает нормальным образом. А сообщения про ошибки в Install Tool 6.2 относительно прав на файлы на самом деле врут, согласен.
В общем для установки нормальных прав команды следующие:
Код:

chown -hR www-data:www-data /path/to/site/public_html/
chmod -R ugoa= /path/to/site/public_html/
chmod -R ugoa+rX,u+w /path/to/site/public_html/

Таким образом владелец и группа у файлов и папок будут www-data и права на файлы и папки, соответственно, 644 и 755.

Из соображений безопасности php-fpm у меня запускается от имени пользователя, права на файлы и папки выставляются 640 и 750, а чтобы nginx имел доступ к этим файлам добавляем nginx в группу пользователя примерно так:
Код:

usermod -a -G nginx WebUser3

gabdullin 17.04.2014 01:15

Белый экран
 
Белый экран при обновлении лично у меня вылечился следующим образом:
  1. полностью очищаем папку typo3temp (со всеми папками);
  2. перезапускаем php-fpm (очищаем php-кэшер, в моем случае opcache);
  3. перезапускаем nginx (очищаем кэш веб-сервера);
  4. через InstallTool восстанавливаем структуру папок в typo3temp.
Насколько я понял проблема больше в php-кэше. К сожалению серверные логи на эту тему вежливо молчали.

P.S. Проверил при переходах 4.7.12 -> 6.1.3 -> 6.2.0alfa3 -> ... -> 6.2.0. Убил на поиск решения примерно часов 8, постоянно откатываясь на предыдущую версию, это к вопросу зачем нужны симлинки, кто-то раньше умничал на тему зачем они нужны.
P.P.S На этапе перехода 4.7.12 -> 6.1.3 отказался от TV в пользу Fluid
P.P.P.S. Кто-то раньше спрашивал по php 5.3.3, по крайней мере до 6.2.0beta3 у мена работало на 5.3.3, сейчас 5.3.28

-=UncleByte=- 17.04.2014 02:02

Цитата:

Сообщение от gabdullin (Сообщение 38346)
Из соображений безопасности php-fpm у меня запускается от имени пользователя, права на файлы и папки выставляются 640 и 750, а чтобы nginx имел доступ к этим файлам добавляем nginx в группу пользователя примерно так:
Код:

usermod -a -G nginx WebUser3

Ну так www-data это тоже пользователь и группа пользователей, причем локальных и даже без /home директории. Т.е. максимум что они могут - обмениваться данными между собой и выдавать результат по протоколу http клиентам сервера.

-=UncleByte=- 17.04.2014 02:11

Цитата:

Сообщение от gabdullin (Сообщение 38347)
Белый экран при обновлении лично у меня вылечился следующим образом:
  1. полностью очищаем папку typo3temp (со всеми папками);
  2. перезапускаем php-fpm (очищаем php-кэшер, в моем случае opcache);
  3. перезапускаем nginx (очищаем кэш веб-сервера);
  4. через InstallTool восстанавливаем структуру папок в typo3temp.
Насколько я понял проблема больше в php-кэше. К сожалению серверные логи на эту тему вежливо молчали.

P.S. Проверил при переходах 4.7.12 -> 6.1.3 -> 6.2.0alfa3 -> ... -> 6.2.0. Убил на поиск решения примерно часов 8, постоянно откатываясь на предыдущую версию, это к вопросу зачем нужны симлинки, кто-то раньше умничал на тему зачем они нужны.
P.P.S На этапе перехода 4.7.12 -> 6.1.3 отказался от TV в пользу Fluid
P.P.P.S. Кто-то раньше спрашивал по php 5.3.3, по крайней мере до 6.2.0beta3 у мена работало на 5.3.3, сейчас 5.3.28

У меня был белый экран исключительно из-за TV на старых сайтах. Форк с гитхаба этот вопрос решил.
В принципе вполне реален переход и с 4.5.х на 6.2.х - но надо понимать что не все расширения будут работать сразу же, поэтому первым делом надо обновить их по максимуму.
То, что любая версия typo3 может начать выдавать странное при подключенном кешере типа APC или Xcache я уже давно для себя отметил и на тестовой локальной виртуалке не включаю их вообще. В принципе для тестирования связки nginx + php-fpm 5.4.4 + mariadb 10 вполне хватает и работает оно и без кеширования довольно быстро. На продакшн, скорее всего, имеет смысл ставить рекомендованный командой typo3 APC, но под Debian Wheezy он довольно старый, а ради одного пакета подключать какой-нибудь dotdeb совсем не хочется. Наверное решу этот вопрос как-нибудь при помощи Xcache, он хотя тоже староват, но предсказуем, что радует.

Андрей Аксенов 18.04.2014 11:46

Еще одна часто возникающая (по крайней мере у меня) проблема - невозможность войти в админку. Виной этому принудительный перевод на шифрование RSA. Если вы уверены, что забиваете правильный пароль, но с нескольких раз не можете попасть в админку, то откройте файл с настройками typo3conf\LocalConfiguration.php, где TYPO3 6.2 упорно и принудительно прописывает следующее:
PHP код:

return array(
    
'BE' => array(
        ...
        
'loginSecurityLevel' => 'rsa',
        ... 

И измените на 'loginSecurityLevel' => 'normal'. После этого возможно проблема исчезнет, а может быть придется через Install tool создать дополнительного пользователя-администратора, через которого уже всё вернуть на место.
Кстати, то же самое возможно и для внешних пользователей, тогда исправляем по аналогии в другом месте:
PHP код:

[php]
return array(
    ...
    
'FE' => array(
        ...
        
'loginSecurityLevel' => 'normal',
        ... 

[/php]
Если у кого есть советы по исправлению этого пресловутого rsa, то пишите здесь.

-=UncleByte=- 18.04.2014 14:28

Так вроде же RSA вполне работает еще с 4.5.х? Сначала включить RSA, потом обновить пароли с помощью задачи в scheduler и все работает.

Андрей Аксенов 18.04.2014 15:13

Да, пробовал, потом почему-то всё перестало работать... Спасся только так.


Часовой пояс GMT +4, время: 03:37.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
Перевод: zCarot