среда, июля 04, 2012

Установка php-fpm + mysql + phpMyAdmin

Все действия проводились на системе centos 5.8, с последними обновлениями:

# uname -a
Linux mska-ats-srv4 2.6.18-308.8.2.el5PAE #1 SMP Tue Jun 12 10:37:15 EDT 2012 i686 athlon i386 GNU/Linux

Предположим у вас уже есть настроенный и рабочий nginx.

# yum --enablerepo=remi install mysql-server php-fpm php-mysql php-mcrypt php-mbstring


mysql

Указываем чтоб mysqld запускался автоматически при загрузки системы:

# chkconfig mysqld on

При первом запуске:

# /etc/init.d/mysqld start

Выдается информация как прописать пароль root'а:

# mysqladmin -u root password


php-fpm

После установки php-fpm в конфигурационном файле /etc/php-fpm.d/www.conf изменить след. значения вот так:

user = nginx
group = nginx

Теперь php-fpm будет запускаться от имени пользователя nginx. Далее:

# chkconfig php-fpm on
# /etc/init.d/php-fpm start

Первая команда указывает, что нужно запускать php-fpm при запуске системы. Вторая стартует php-fpm.


nginx

Конфигурационный файл для сайта phpMyAdmin:

server {
    listen       80;
    server_name  db.domain.ru;
    root         /var/local/httpd/domain.ru/db/public_html;

    location / {
        index  index.php;
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;
    }

    location ~ /\.ht {
        deny  all;
    }
}

Рестартнем nginx:

# /etc/init.d/nginx restart


phpMyAdmin

Далее надо загрузить последную версию phpMyAdmin и распаковать:

# cd /var/local/httpd/domain.ru/db/public_html/
# wget http://citylan.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.5.1/phpMyAdmin-3.5.1-all-languages.tar.gz
# tar zxf phpMyAdmin-3.5.1-all-languages.tar.gz
# mv phpMyAdmin-3.5.1-all-languages/* ./
# rm -fr phpMyAdmin-3.5.1-all-languages*
# mv config.sample.inc.php config.inc.php

Рекомендуется в конфигурационном файле config.inc.php исправить значение параметра $cfg['blowfish_secret'] на свое. Что нить длиной на 16 - 20 цифр и букв.

Теперь пробуем зайти на db.domain.ru, должно появиться окно Welcome to phpMyAdmin с вводом логина и пароля.


Errors

Если при заходе на страницу показывается сообщение - file not found, добавить в /etc/nginx/fastcgi_params:

fastcgi_param   SCRIPT_FILENAME         $request_filename;

Или проверить есть ли такая запись. При заходе на странцу может появляется сообщение:

phpMyAdmin - Error
Cannot start session without errors, please check errors given
in your PHP and/or webserver log file and configure your PHP
installation properly.

Надо проверить в /etc/php.ini значение параметра session.save_path и передать права на каталог nginx:

# cat /etc/php.ini | grep session.save_path
;     session.save_path = "N;/path"
;     session.save_path = "N;MODE;/path"
session.save_path = "/var/lib/php/session"
;       (see session.save_path above), then garbage collection does *not*
# mkdir /var/lib/php/session
# chown nginx:nginx /var/lib/php/session

UP: 09/26/2012
phpMyAdmin
После захода в админку phpmyadmin, снизу будет красная надпись, что-то там про blowfish_secret. Это важный параметр, отвечающий за сохранность сессии. В каталоге с phpmyadmin надо найти файл config.sample.inc.php, открыть его и отредактировать параметр $cfg['blowfish_secret']:

$cfg['blowfish_secret'] = 'kdsfjffjl2j294h1o4hfiyf892';

Как-то так. И переименовать файл:

mv config.sample.inc.php config.inc.php

mysql

Можно немного обезопасить сервер mysql если повесить его на интерфейс lo:

# echo bind-address=127.0.0.1 >> /etc/my.cnf

Тогда запросы mysql будет обслуживать только от локальных приложений.

Комментариев нет:

Отправить комментарий