пятница, 26 октября 2007 г.

Kubuntu 7.10 настройка LAMP.

Мне, как web-разработчику, нужна стандартная связка: Apache2, PHP, MySQL.
Естественно дектопный дистрибутив эти программы не ставит, т.к. это серверные заморочки.
Для установки программ я использую Synaptic. Вот что я обычно ставлю для LAMP:
  • mysql-server-5.0, mysql-client-5.0
  • apache2, apache2.2-common, apache2-mpm-prefork, apache2-utils, libapache-mod-php5
  • php5, php5-common, php5-curl, php5-gd, php5-imagick, php5-mcrypt, php5-mysql и при необходимости другие модули.
MySQL, как обычно, имеет дефолтной кодировкой буржуинскую. Мне нужна cp1251. Для этого нужно в файл конфигурации /etc/mysql/my.cnf внести нужные изменения. Я уже писал про настрройку MySQL, поэтому здесь приведу тоько нужные строки в конфиге:
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
default-character-set = cp1251

[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-external-locking
default-character-set = cp1251
character_set_server = cp1251
collation_server = cp1251_general_ci
skip-character-set-client-handshake

Настройка Apache2 сводится к активизации модулей ssl и rewrite и нужных виртуальных сайтов командами:

a2enmod ssl
a2enmod rewrite
a2ensite <виртуальный сайт>

PHP я обычно не настраивал - хватало дефолтной настройки дистрибутива. Но в Kubuntu 7.10 чего-то наворотили лишнего, поэтому пришлось править файл /etc/php5/apache2/php.ini. В нем я изменил значения двух переменных. Не знаю с какого будуна разработчики из Canonical решили включить magic_quotes? В любой литературе по PHP как раз советуют ее отключить и, при необходимости, контролировать из скрипта. Опять же, не понятно зачем включены register_long_arrays? Все вменяемые программисты пользуются глобальными массивами ($_SERVER, $_GET, $_PUT и т.д.). Я эти переменные отключаю:

magic_quotes_gpc = Off
register_long_arrays = Off

На этом основная настройка закончена.

2 комментария:

jetxee комментирует...

Мне кажется, что для базы данных лучше всё таки использовать уникодную кодировку, (например, UTF8). Всё таки многие нужные символы в CP1251 отсутствуют... Это значит, особенно в случае вебразработки, что в базе будет всякий мусор вместо нужных символов. Да и проблем с поддержкой других языков не возникнет.

klek комментирует...

У меня такая ситуация: есть корпоративная база (Mssql) из которой мне в MySQL кидают выборку для внешних сайтов банка и системы CONTACT. Там естественно все в cp1251. Перекодировать в процессе репликации никто не хочет. Конечно utf8 лучше.