CentOS — Установка Apache, PHP, MySQL, ProFTPD, Webmin, Bind, phpMyAdmin, IonCube
Шпаргалка по установке Apache, PHP, MySQL, ProFTPD, Webmin, Bind, phpMyAdmin, IonCube в CentOS. Данная инструкция подойдет для VDS, DS и для системы которая, используется для тестов при разработке скриптов и т.д.
Итак приступим. Начнем с того что удалим yum-updatesd, который проверяет наличие обновлений, пользы от него мало, а вот cpu он использовать может наоборот много.
Обновим пакеты:
Вместо yum-updatesd установим yum-cron:
Установим и настроим firewall:
запускаем и настраиваем:
Выставляем — security levels (*), далее Custumize — и открываем порты — ssh, http, https, ftp в строке Custom ports — откроем порты для webmin — 10000:tcp, dns — 53:tcp 53:udp, и 60000-65000:tcp.
PHP
Удалим старый php 5.2 и установим новый 5.3. Для этого подключим нужные репозитории:
Удалим старый php и его модули:
Установим новый php 5.3:
Apache
Установим Apache:
Настроим авто-запуск Apache:
Включим VirtualHosts в Apache (перед этим установим редактор nano):
Разкаментим строку убрав впереди неё #
NameVirtualHost *:80 |
Запустим Apache:
MySQL
Установим MySQL:
Настроим авто-запуск MySQL:
Запустим MySQL:
Зададим root пароль для MySQL:
Отредактируем конфиг файл MySQL:
Заменим содержимое конфиг файла на следующее:
[client] port = 3306 socket = /var/lib/mysql/mysql.sock [mysqld_safe] socket = /var/lib/mysql/mysql.sock nice = 0 pid-file = /var/run/mysqld/mysqld.pid [mysqld] user = mysql socket = /var/lib/mysql/mysql.sock port = 3306 datadir = /var/lib/mysql tmpdir = /tmp skip-external-locking bind-address = 127.0.0.1 key_buffer = 16M max_allowed_packet = 16M thread_stack = 192K thread_cache_size = 8 myisam-recover = BACKUP query_cache_limit = 1M query_cache_size = 16M log_error = /var/log/mysql/error.log expire_logs_days = 10 max_binlog_size = 100M [mysqldump] quick quote-names max_allowed_packet = 16M [isamchk] key_buffer = 16M |
Перезапустим MySQL:
BIND (DNS)
Установим BIND:
Настроим его авто-запуск:
ProFTPD
Удалим установленный VsFTPD:
Установим пакеты которые понадобятся для сборки и установки ProFTPD:
Скачаем, соберем и установим ProFTPD:
Создадим файл для авто-запуска ProFTPD:
#!/bin/sh # $Id: proftpd.init,v 1.1 2004/02/26 17:54:30 thias Exp $ # # proftpd This shell script takes care of starting and stopping # proftpd. # # chkconfig: - 80 30 # description: ProFTPD is an enhanced FTP server with a focus towards \ # simplicity, security, and ease of configuration. \ # It features a very Apache-like configuration syntax, \ # and a highly customizable server infrastructure, \ # including support for multiple 'virtual' FTP servers, \ # anonymous FTP, and permission-based directory visibility. # processname: proftpd # config: /etc/proftp.conf # pidfile: /var/run/proftpd.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 [ -x /usr/sbin/proftpd ] || exit 0 RETVAL=0 prog="proftpd" start() { echo -n $"Starting $prog: " daemon proftpd RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/proftpd } stop() { echo -n $"Shutting down $prog: " killproc proftpd RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/proftpd } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status proftpd RETVAL=$? ;; restart) stop start ;; condrestart) if [ -f /var/lock/subsys/proftpd ]; then stop start fi ;; reload) echo -n $"Re-reading $prog configuration: " killproc proftpd -HUP RETVAL=$? echo ;; *) echo "Usage: $prog {start|stop|restart|reload|condrestart|status}" exit 1 esac exit $RETVAL |
Выставим права на файл:
Отредактируем конфиг файл:
Изменим строки в конфиг файле на эти:
Group nobody |
PassivePorts 60000 65000 |
И в конец файла добавим следующие строки для входа по FTP от пользователя root:
<Global> RootLogin on </Global> |
Настроим авто-запуск ProFTPD:
Запустим ProFTPD:
Webmin
Установим модули необходимые для работы Webmin:
Скачаем последнюю версию Webmin:
Установим Webmin:
phpMyAdmin
Установим phpMyAdmin:
Отредактируем конфиг файл:
Приведем его к виду:
# phpMyAdmin - Web based MySQL browser written in php
#
# Allows only localhost by default
#
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
<Directory /usr/share/phpMyAdmin/>
order deny,allow
Allow from all
# deny from all
# allow from 127.0.0.1
# allow from ::1
</Directory>
# This directory does not require access over HTTP - taken from the original
# phpMyAdmin upstream tarball
#
<Directory /usr/share/phpMyAdmin/libraries>
Order Deny,Allow
Deny from All
Allow from None
</Directory>
# This configuration prevents mod_security at phpMyAdmin directories from
# filtering SQL etc. This may break your mod_security implementation.
#
#<IfModule mod_security.c>
# <Directory /usr/share/phpMyAdmin>
# SecRuleInheritance Off
# </Directory>
#</IfModule> |
Настроим авторизацию в phpMyAdmin:
Найдем строку:
$cfg['Servers'][$i]['auth_type'] = ‘cookies‘; |
И приведем её к виду:
$cfg['Servers'][$i]['auth_type'] = ‘http‘; |
Перезапустим Apache чтобы изменения вступили в силу:
IonCube
Качаем и разархивируем IonCube:
Добавим IonCube в конфиг PHP:
В конец файла добавим следующую строку:
zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.3.so |
Для работы IonCube необходимо отключить повышенный уровень безопасности в CentOS:
Изменим конфиг файл:
SELINUX=disabled |
Перезапустим Apache для применения изменений:
Всё установлено можно перезапустить систему, для проверки нормального старта всех модулей: