понедельник, 8 февраля 2010 г.
Установка CMS системы TYPO3 на SuSE Linux
11:08 |
Автор:
Вадим Гиркало |
Изменить сообщение
Вступление
Данная статья не претендует на оригинальность, т.к. собраный в ней материал уже есть в сети, но он собран воедино, так чтобы админу приходилось минимально гуглить и переводить. Заниматься установкой TYPO3 приходится не каждый день и с течением времени кое-какие вещи забываются, поэтому материал задумывался как "склерозник" для личного пользования, но вполне может быть полезен и другим людям занимающимися CMS-системой TYPO3, особенно новичкам.
Для установки TYPO3 нам понадобится SSH доступ к веб серверу и соответственно SSH клиент. Я рекомендую использовать WinSCP.
Раньше, как только я получал заказ на разработку нового сайта на базе TYPO3, я делал следующее - создавал на веб-сервере папку типа site1.com и устанавливал внутри ее ядро системы и файловый шаблон нового сайта (source и dummy site). Причем, каждый раз, устанавливаемая версия ядра была более свежей, чем предудущая. И выходило так, что весенние сайты работают на версии ядра 4.2.6, а осенние на версии 4.2.10 и т.д. Одним словом - зоопарк, со всеми вытекающими последствиями.
Со временем я поумнел и задался вопросом: "А почему я всегда так делаю? Ведь можно же сделать более изящно и оптимально?". И действительно можно! При этом ядро системы устанавливается всего один раз и на его базе работает сколько угодно сайтов. Таким образом и с версиями ядра порядок, и экономится дисковое пространство, и обновляться затем значительно проще.
При таких раскладах дерево директорий должно выглядеть примерно так:
typo3_src - директория с ядром системы
site1.com - файлы и настройки 1-го сайта
site2.com.ua - файлы и настройки 2-го сайта
site3.biz.ua - файлы и настройки 3-го сайта
А теперь распишу все подробно по шагам...
1. Установка ядра системы TYPO3 4.3.1
а) Логинимся пользователем root и cоздаем директорию для установки ядра (исходников) TYPO3. В моем случае это директория - /usr/www/
б) Скачиваем архив с ядром с сайта http://typo3.org/download/packages/
или с помощью команды:
wget http://prdownloads.sourceforge.net/typo3/typo3_src-4.3.1.tar.gz?download
в) Распаковываем только что полученный архив внутри нашей директории /usr/www/
tar -xzvf typo3_src-4.3.1.tar.gz
После распаковки архива получим следующую файловую структуру:
г) Веб-сервер Apache в SUSE Linux работает под именем пользователя - wwwrun, который является членом группы пользователей - www. Этому пользователю и группе необходимо дать полные права на папку с ядром TYPO3, т.е. - typo3_src-4.3.1. Если мы по-прежнему находимся в папке /usr/www/, то выполняем команду:
chown -R wwwrun:www ./typo3_src-4.3.1
которая делает пользователя wwwrun и группу www собственником (владельцем)
директории typo3_src-4.3.1
д) На папку в которую мы будем устанавливать все наши расширения TYPO3 (плагины, extensions), предоставим веб серверу полный доступ:
chmod -R 775 ./typo3_src-4.3.1/typo3/ext
е) Для нормальной работы системы TYPO3 на сервере должен быть установлен пакет ImageMagick, который отвечает за все манипуляции с картинками. Чтобы проверить стоит ли у вас на сервере ImageMagick, попробуйте выполнить команду identify, если получите, то же, что и у меня на картинке, значить все в порядке. В противном случае займитесь его установкой (для этого зайдите на сайт http://www.imagemagick.org).
Чтобы найти этот файл по имени используйте команду:
find / -name "identify*"
2. Установка нового сайта TYPO3
a) Создаем папку в которой будет находится наш сайт, например - mydomain.com:
mkdir mydomain.com
переходим в нее с помощью команды
cd mydomain.com
б) Скачиваем шаблон сайта с помощью знакомой уже команды:
wget http://prdownloads.sourceforge.net/typo3/dummy-4.3.1.tar.gz?download
и распаковываем этот архив командой:
tar -xzvf dummy-4.3.1.tar.gz
следующей командой:
mv ./dummy-4.3.1/* ./
данные из папки dummy-4.3.1 переносим в папку /usr/www/mydomain.com (на уровень выше)
получаем следующую структуру папок
Теперь можно удалить файл dummy-4.3.1.tar.gz и папку dummy-4.3.1
в) Делаем символическую ссылку typo_src, которая будет "говорить" нашему сайту где находится текущая рабочая версия ядра TYPO3. В дальнейшем, это поможет нам обновлять ядро системы.
Итак, возвращаемся в нашу папку /usr/www/, для этого можно использовать команду:
cd /usr/www/
Для перестраховки удаляем предыдущую символическую ссылку typo_src:
rm -rf ./typo3_src
Создаем новую символическую ссылку:
ln -s /usr/www/typo3_src-4.3.1 typo3_src
Внимание! Не нужно менять имя символической ссылки, оно должно быть именно typo3_src!
В результате получим еще одну папку в нашем дереве каталогов
Все, с ядром мы закончили. Все настройки ядра выполняются только один раз - при создании самого первого сайта!
г) Теперь вернемся к нашему сайту, а точнее к шаблонной структуре директорий, которые за него будут отвечать. Веб серверу нужен полный доступ к следующим папкам:
fileadmin
typo3conf
typo3temp
uploads
Это делается следующими 2-мя командами:
chown -R wwwrun:www fileadmin typo3conf typo3temp uploads
chmod -R 775 fileadmin typo3conf typo3temp uploads
д) Т.к. наш веб каталог (/usr/www/mydomain.com) содержит символьный линк, то для его обслуживания необходимо в настройках Apache прописать:
<Directory "/usr/www/mydomain.com">
Options +FollowSymlinks +Indexes +Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
e) TYPO3 как и любая CMS система хранит все свои данные и настройки в базе данных MySQL. Желательно создать новую базу данных еще до начала дальнейшего конфигурирования сайта. И хотя установка TYPO3 может это сделать самостоятельно, я это делаю вручную - чтобы перестраховать себя от сюрпризов связанных с кодовыми страницами. Поэтому, заходим в командную строку MySQL:
mysql -u root -p и вводим пароль пользователя root для mysql
и выполняем следующие SQL команды:
CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON db_name.* TO username@localhost IDENTIFIED BY 'password';
Здесь мы создали БД в нужной нам кодировке, создали пользователя и дали ему все права на неё.
ж) Теперь можно перейти к заключительной стадии подготовки нового сайта к работе. Это делается с помощью так называемого режима установки - 1-2-3. Но чтобы этот автоматический режим стал доступен необходимо в директории typo3conf создать специальный файл с именем - ENABLE_INSTALL_TOOL, который является своеобразным флагом (семафором). Создадим этот файл с помощью команд Linux:
cd typo3conf
touch ENABLE_INSTALL_TOOL
Условный флаг взведен, можно пробовать. В строке браузера набираем:
http://www.mydomain.com/typo3
Увидим следующую страницу:
Вводим имя и пароль нашего нового пользователя MySql (username) и жмем кнопку Continue.
Внимание! На данном этапе возможны побочные явления такого рода:
1. Если вводить имя и пароль нового пользователя нашей БД - невозможно сделать конект к базе данных.
2. Если вводить имя и пароль root (mysql)- невозможно выбрать БД (Error: No database selected).
Я не понял, что это такое, возможно какие-то накладки или глюки... Но лечится это довольно просто. В директории typo3conf находится главный конфигурационный файл TYPO3 - localconf.php. В нем нужно прописать следующие строки:
$typo_db_username = 'root'; // Modified or inserted by TYPO3 Install Tool.
$typo_db_password = 'парольрута'; // Modified or inserted by TYPO3 Install Tool.
$typo_db_host = 'localhost'; // Modified or inserted by TYPO3 Install Tool.
$typo_db = 'имя базы'; // Modified or inserted by TYPO3 Install Tool.
После этого в URL браузера можно сменить номер инсталляционного шага на цифру 2, например, http://mydomain.com/typo3/install/index.php?TYPO3_INSTALL[type]=config&mode=123&step=2
Т.е. мы прошли первый шаг установки вручную, указав имя и пароль пользователя под которым наша система будет работать со своей базой данных.
На втором шаге выбираем в выпадающем списке нашу предварительно созданную БД и опять жмем кнопку Continue:
На последнем 3-м этапе нажимаем кнопку Import database:
И хотя фраза "Import database" подразумевает под собой импорт каких-то данных в БД, на самом деле TYPO3 создаст свой репозиторий - набор служебных таблиц со служебными данными.
3. Конфигурация системы TYPO3 4.3.1
Теперь можно смело заходить в админку TYPO3 и делать базовые настройки самой CMS системы.
В строке браузера набираем: http://www.mydomain.com/typo3 и вводим имя пользователя - admin, а в качестве пароля слово - password.
Переходим в раздел Admin Tools\Install и кликаем по пункту 5: All Configuration. В дальнейшем, вход в данный раздел потребует ввода отдельного пароля (не пользователя admin). По умолчанию пароль для All Configuration - joh316.
Здесь можно произвести множество настроек, но самое главное это "заставить" систему нормально работать с кодировкой UTF-8. За что отвечают следующие параметры и их значения:
[setDBinit]
String (textarea): Commands to send to database right after connecting, separated by newline. Ignored by the DBAL extension except for the 'native' type!
[SYS][setDBinit] = SET NAMES utf8 SET SESSION character_set_server=utf8
[forceCharset]
String. Normally the charset of the backend users language selection is used. If you set this value to a charset found in t3lib/csconvtbl/ (or "utf-8") the backend (and database) will ALWAYS use this charset. Always use a lowercase value.
[BE][forceCharset] = utf-8
После этого, по совету Дмитрия Дулепова (для новичков поясню, это известный разработчик сообщества TYPO3) необходимо установить такие параметры системы:
[enable_typo3temp_db_tracking]
Boolean. If set, then all files in typo3temp will be logged in a database table. In addition to being a log of the files with original filenames, it also serves to secure that the same image is not rendered simultaneously by two different processes.
[GFX][enable_typo3temp_db_tracking] = 1
[devIPmask]
Defines a list of IP addresses which will allow development-output to display. The debug() function will use this as a filter. See the function t3lib_div::cmpIP() for details on syntax. Setting this to blank value will deny all. Setting to "*" will allow all.
[SYS][devIPmask] = ВАШ IP АДРЕС,127.0.0.1,::1
[sqlDebug]
Boolean. If set, then database queries that fails are outputted in browser. For development.
[SYS][sqlDebug] = 1
[curlUse]
Boolean: If set, try to use Curl to fetch external URLs
[SYS][curlUse] = 1
[t3lib_cs_convMethod]
String (values: "iconv", "recode", "mbstring", default is homemade PHP-code). Defines which of these PHP-features to use for various charset conversion functions in t3lib_cs. Will speed up charset conversion radically.
[SYS][t3lib_cs_convMethod] = mbstring
[t3lib_cs_utils]
String (values: "iconv", "mbstring", default is homemade PHP-code). Defines which of these PHP-features to use for various charset processing functions in t3lib_cs. Will speed up charset functions radically.
[SYS][t3lib_cs_utils] = mbstring
[no_pconnect]
Boolean: If true, "connect" is used instead of "pconnect" when connecting to the database!
[SYS][no_pconnect] = 1
[multiplyDBfieldSize]
Double: 1-5: Amount used to multiply the DB field size when the install tool is evaluating the database size (eg. "2.5"). This is only useful e.g. if your database is iso-8859-1 encoded but you want to use utf-8 for your site. For Western European sites using utf-8 the need should not be for more than twice the normal single-byte size (2) and for Chinese / Asian languages 3 should suffice. NOTICE: It is recommended to change the native database charset instead! (see http://wiki.typo3.org/index.php/UTF-8_support for more information)
[SYS][multiplyDBfieldSize] = 1
[displayErrors]
Integer: -1,0,1,2. Configures whether PHP errors should be displayed. 0 = Do not display any PHP error messages. Overrides the value of "exceptionalErrors" and sets it to 0 (= no errors are turned into exceptions), the configured "productionExceptionHandler" is used as exception handler, 1 = Display error messages with the registered errorhandler. The configured "debugExceptionHandler" is used as exception handler. 2 = Display errors only if client matches TYPO3_CONF_VARS[SYS][devIPmask]. If devIPmask matches the users IP address the configured "debugExceptionHandler" is used for exceptions, if not "productionExceptionHandler" will be used. -1 = Default setting. With this option, you can override the PHP setting "display_errors". If devIPmask matches the users IP address the configured "debugExceptionHandler" is used for exceptions, if not "productionExceptionHandler" will be used.
[SYS][displayErrors] = 2
[compressionLevel]
Determines output compression of BE output. Makes output smaller but slows down the page generation depending on the compression level. Requires zlib in your PHP installation. Range 1-9, where 1 is least compression and 9 is greatest compression. 'true' as value will set the compression based on the PHP default settings (usually 5). Suggested and most optimal value is 5.
[BE][compressionLevel] = 5
А теперь пройдитесь по следующим разделам админки как показано на скриншотах ниже:
Ну и напоследок необходимо позаботиться о безопасности системы:
1. Сменить пароль пользователя admin, это делается в разделе User settings как показано ниже.
2. Вывести систему из режима настройки, путем удаления семафорного флажка - ENABLE_INSTALL_TOOL
Подписаться на:
Комментарии к сообщению (Atom)
О себе
- Вадим Гиркало
- Фрилансер, веб-разработчик сайтов на базе бесплатной, мощнейшей и очень гибкой CMS системы - TYPO3.
Мой сайт
Позвонить мне в Skype
TOP - 3
-
Как я уже писал в одной своей заметке ( SEO и общие рекомендации ), для сайта очень важно, чтобы при обращении к заведомо несуществующей ст...
-
Дорабатывая очередной свой сайт столкнулся с такой проблемкой. В шапке сайта есть две флэш вставки - банер, который вставлен через конструкц...
-
Несмотря на то, что материала по данной тематике вроде бы и достаточно, но весь он носит кусочно-латочно-разрозненный характер, что мешает б...
0 коммент.:
Отправить комментарий