Запуск typo3

Материал из ALT Linux Wiki

Запуск CMS typo3

Краткое руководство для тех, кто решил запустить у себя на компьютере CMS typo3. Это руководство не является полным и всеобъемлющем, и даже не является полностью корректным, ибо предлагает сделать вещи, которых делать не стоит. Но в качестве QuickStart, я надеюсь, оно может пригодиться.

Что необходимо для работы?

Собственно, необходима система typo3. На момент написания этой статьи в дистрибутиве (Сизифе) система представлена двумя пакетами: typo3_src и typo3-dummy. Для работы системы понадобятся сервер баз данных MySQL, веб-сервер Apache и дополнение PHP к нему.

Далее предполагается установка всего этого на чистую систему, где раньше этих пакетов еще не стояло. Очевидным образом предполагается, что система управления пакетами apt настроена и работает.

Установка MySQL

Нам потребуется работающий MySQL-сервер и клиент для обращения к нему. Установим их командой

apt-get install MySQL-server

По зависимостям будут автоматически установлены пакеты MySQL-client и libMySQL. После установки можно запустить сервер:

[root@host-15 ~]# service mysqld start
Installing all prepared tables
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root  password 'new-password'
/usr/bin/mysqladmin -u root -h host-15.localdomain  password 'new-password'
  
Alternatively you can run:
/usr/bin/mysql_secure_installation
 
which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.
...
...

Обратим внимание на то, что система нас просит немедленно установить пароль для администратора базы. Выполним эту просьбу:

[root@host-15 ~]# mysql_secure_installation

Вместо пароля root'а нажимем ввод, а далее следуем за скриптом, задаем новый пароль, удаляем анонимных пользователей и т.п. Короче говоря, на все пункты отвечаем 'Y'.

Создание пользователя MySQL

Для того, чтобы typo3 смогла нормально функционировать, нам понадобится пользователь БД MySQL. Подключимся к базе пользователем root и создадим еще одного пользователя:

[root@host-15 ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.0.83 ALT Linux MySQL RPM
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> grant all privileges on *.* to 'typo3'@'localhost' identified by '12345' with grant option;
Query OK, 0 rows affected (0.00 sec)
 
mysql> quit
Bye

В данном примере мы создаем юзера по имени typo3 с паролем 12345, который обладает полными правами творить что угодно на сервере БД. Внимание!!! Не делайте так на настоящем сервере!!! Изучите документацию на typo3 и создайте юзера с минимально необходимыми правами.

Установка пакетов typo3, Apache2, php

Теперь пришло время установить прочие нужные пакеты. Попытаемся установить пару пакетов, остальное подтянется по зависимостям.

[root@host-15 ~]# apt-get install typo3_src typo3-dummy
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  ImageMagick ImageMagick-doc ImageMagick-tools apache2 apache2-base
  apache2-cgi-bin apache2-cgi-bin-printenv apache2-cgi-bin-test-cgi
  apache2-common apache2-datadirs apache2-html apache2-httpd-prefork
  apache2-httpd-worker apache2-icons apache2-mod_php5 libapr1 libaprutil1
  libmm php-base php5 php5-curl php5-gd2 php5-libs php5-mbstring php5-mysql
  php5-suhosin typo3-apache2 webserver-cgi-bin-control webserver-common
The following NEW packages will be installed:
  ImageMagick ImageMagick-doc ImageMagick-tools apache2 apache2-base
  apache2-cgi-bin apache2-cgi-bin-printenv apache2-cgi-bin-test-cgi
  apache2-common apache2-datadirs apache2-html apache2-httpd-prefork
  apache2-httpd-worker apache2-icons apache2-mod_php5 libapr1 libaprutil1
  libmm php-base php5 php5-curl php5-gd2 php5-libs php5-mbstring php5-mysql
  php5-suhosin typo3-apache2 typo3-dummy typo3_src webserver-cgi-bin-control
  webserver-common
0 upgraded, 31 newly installed, 0 removed and 0 not upgraded.
Need to get 12.1MB of archives.
After unpacking 39.1MB of additional disk space will be used.
Do you want to continue? [Y/n] 

Как видно из приведенного лога, по зависимостям вытягиваются веб-сервер Apache2, язык php5, и несколько полезных библиотек :)

Настройка php

По умолчанию в АЛьТ настройки php таковы, что множество функций недоступно. Сделаем их доступными:

[root@host-15 ~]# control apache2-mod_php5 relaxed

Не делайте так на реальном сервере!!! Изучите, какие функции были включены этой командой (например, почитав содержимое файла /etc/control.d/facilities/apache2-mod_php5), и выберите только те, которые необходимы для typo3.

UPD для OVZ

Если

root@localhost ~ # control apache2-mod_php5 relaxed
PHP Warning:  PHP Startup: mm_create(0, /var/spool/apache2/sessions/session_mm_phpini0) failed, err mm:core: failed to acquire shared memory segment (No space left on device) in Unknown on line 0
PHP Warning:  PHP Startup: mm_create(0, /var/spool/apache2/sessions/session_mm_phpini0) failed, err mm:core: failed to acquire shared memory segment (No space left on device) in Unknown on line 0
PHP Warning:  PHP Startup: mm_create(0, /var/spool/apache2/sessions/session_mm_phpini0) failed, err mm:core: failed to acquire shared memory segment (No space left on device) in Unknown on line 0

то надо увеличить лимит по shmpages

Далее, нужно увеличить объем памяти, которые выделяется веб-сервером для php. Для этого найдите в файле /etc/php/5.2.9/apache2-mod_php/php.ini строку

memory_limit = 5M

и впишите другое значение лимита памяти, например

memory_limit = 32M

Настройка шаблона сайта typo3

Теперь необходимо перенести в рабочий каталог веб-сервера каркас сайта (из пакета typo3-dummy) и исходные тексты системы typo3 (из пакета typo3_src).

Первое осуществим копирование каркаса в каталог /var/www/html:

[root@host-15 ~]# cd /var/www/html/
[root@host-15 html]# mkdir site
[root@host-15 html]# chown root:apache2 ./site
[root@host-15 html]# chmod g+w,o-rwx ./site/
[root@host-15 html]# su -l apache2 -s /bin/sh -c 'cp -r /usr/share/typo3-dummy-4.2.8/* /var/www/html/site'
[root@host-15 html]# 
[root@host-15 html]# ln -s /usr/share/typo3_src-4.2.8/ ./

В данном примере мы создаем каталог, делаем его владельцем группу apache2, изменяем права (владельцу и группе все, остальным ничего), и копируем в него файлы от имени пользователя apache2. Эта хитрая подготовка нужна для того, чтобы в данный каталог мог писать пользователь, от имени которого запущен веб-сервер, а прочие не могли.

В последней строке мы "переносим" путем создания символьной ссылки исходные тексты typo3 в то место, где они должны быть.

Обратите внимание: группе apache2 и тем более пользователю, под которым запущен веб-сервер, запись в корневой каталог сайта также не требуется! (лишь на отдельные подкаталоги вроде fileadmin, typo3conf, typo3temp, uploads согласно документации проекта)

Запуск веб-сервера

(TODO: написать про Options и AllowOverride)

Все, можно запускать веб-сервер.

[root@host-15 ~]# service httpd2 start
Starting httpd2 service:                                                [ DONE ]

"Запуск" typo3

Открываем браузер, переходим по адресу http://localhost/site и попадаем на страницу настройки системы typo3:

Typo3 start.png

Вводим имя пользователя и пароль для доступа к базе данных, и продолжаем настройку. За подробностями настройки пройдите в документацию по typo3, которая доступна на официальном сайте.[1]