Разьяснения о процессе миграции на нашем видео.
Представляем вашему вниманию новый курс от команды The Codeby - "Тестирование Веб-Приложений на проникновение с нуля". Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.
(Шутка с Баша)
Хотелось бы начать с того, что на днях вышел Apache 2.4.3, в котором наконец-то убран баг с AcceptFilter https none и ресурс Apache Haus теперь официально рекомендует обновиться с 2.2 до 2.4. Важно отметить, что на Apache 2.4 (правда, только на 32-битную версию) портрирован модуль поддержки PHP.
Пара полезных ссылок:
Обновление Apache с 2.2 до 2.4 не вызывает каких либо особых трудностей. Тем не менее,
на некоторые моменты следует обратить внимание.
Изменения компиляционных настроек
Процесс компиляции очень схож с таковым для версии 2.2. Ваша старая строка параметров конфигурации (которая расположена в папке build/config.nice установленного сервера) может быть использована в большинстве случаев. Присутствует всего несколько изменений в настройках по умолчанию. Рассмотрим их:
- Три модуля были удалены: mod_authn_default, mod_authz_default, mod_mem_cache. Если вы пользовались mod_mem_cache в 2.2, обратите внимание на mod_cache_disk в 2.4.
- Все балансировочные реализации были перемещены в индивидуальные, автономные mod_proxy submodules, например mod_lbmethod_bybusyness. Вы можете встраивать и загружать их по отдельности.
- Из поддерживаемых платформ были удалены: BeOS, TPF, и ещё более старые платформы, такие как A/UX, Next и Tandem. В любом случае, кажется Apache там всё равно не работал.
- конфигурация: динамические модули (DSO) встроены по умолчанию
- конфигурация: по умолчанию загружаются только базовые настройки модулей. Другие дерективы LoadModule закомментированы.
- конфигурация: настройки модуля «most» встроены по умолчанию
- конфигурация: настройки модуля «reallyall» добавлены к модулям разработчика в настройки «all»
Изменение рабочих настроек
Были сделаны значительные изменения в настройках конфигурации авторизации и другие небольшие конфигурационные изменения, которые требуют внесения правок в ваш конфигурационный файл 2.2 перед использованием его в 2.4.
Все конфигурационные файлы, использующие механизм авторизации, вероятно, придётся править.
Вам следует просмотреть Справочную информацию по Идентификации, Авторизации и Контролю доступа , особенно секцию Сразу после авторизации , которая объясняет новый механизм для контроля порядка в котором применяются директивы авторизации.
Директивы, контролирующие как модуль авторизации отвечает, когда авторизация не удалась, были удалены: а именно управляющие команды AuthzLDAPAuthoritative, AuthzDBDAuthoritative, AuthzDBMAuthoritative, AuthzGroupFileAuthoritative, AuthzUserAuthoritative и AuthzOwnerAuthoritative. Они были заменены более выразительными RequireAny, RequireNone и RequireAall.
Контроль доступа
В 2.2 контроль доступа базировался на клиентском имени компьютера, IP адресе и других характеристиках клиента, которые сравнивались с правилами установленными директивами Order, Allow, Deny и Satisfy.
В 2.4 такой контроль доступа выполнен в том же духе, что и проверки авторизации, т.е. с использованием модуля mod_authz_host. Старые идиомы следует заменить новым идентификационным механизмом, хотя сохранена совместимость старых настроек с новым модулем mod_access_compat .
Здесь несколько примеров нового и старого способов установления одинаковых правил доступа.
В этом примере все запросы отклоняются
2.2 конфигурация:
Order deny, allow Deny from all2.4 конфигурация:
Require all deniedВ этом примере все запросы разрешены
2.2 конфигурация:
Order allow, deny Allow from all2.4 конфигурация:
Require all grantedВ этом примере, все хосты для домена example.org разрешены, ко всем другим хостам – доступ закрыт.
2.2 конфигурация:
Order Deny , Allow Deny from all Allow from example. org2.4 конфигурация:
Require host example. orgДругие конфигурационные изменения
Некоторые маленькие корректировки могут быть необходимыми для особых случаев, описанных ниже.
- MaxRequestsPerChild был переименован MaxConnectionsPerChild, это более точно отражает суть. Старое имя всё ещё поддерживается.
- MaxClients был переименован в MaxRequestWorkers, это более точно отражает суть. Для асинхронных MPMs, как например событие, максимальное количество клиентов не является эквивалентом количества рабочих процессов. Старое имя всё ещё поддерживается.
- Деректива DefaultType больше не имеет какого либо эффекта, разве что показывает предупреждение, если она используется с любой величиной, кроме none. Вам следует использовать другие конфигурационные настройки для замены в 2.4.
- EnableSendfile сейчас по умолчанию установлена на Off.
- FileETag по умолчанию сейчас «MTime Size» (без INode).
- mod_log_config: ${cookie}C соответствует полному имени cookie. Ранее, любая подстрока соответствовала.
- mod_dav_fs: Формат файла DavLockDB изменён для систем с дескрипторами. Старый файл DavLockDB должен быть удалён или обновлён.
- KeepAlive принимает только значения On или Off. Раньше любые значения, отличные от «Off» или «0» были интерпретированы как «On».
- Директивы AcceptMutex, LockFile, RewriteLock, SSLMutex, SSLStaplingMutex и WatchdogMutexPath были заменены единственной дерективой Mutex. В каждом отдельном случае следует определять, следует ли эти директивы просто удалить из файла настроек 2.2 или вместо них должна использоваться Mutex.
- mod_cache: CacheIgnoreURLSessionIdentifiers сейчас сравнивает на точное совпадение, вместо частичного совпадения. Если ваша конфигурация использовала конкретную строку, например sessionid для определения совпадения в /someapplication/image.gif;jsessionid=123456789, то вы будете должны заменить sessionid на полную строку, т.е. jsessionid.
- mod_ldap: LDAPTrustedClientCert сейчас является только последовательной покаталоговой настройкой. Если вы используете эту директорию, пересмотрите вашу конфигурацию, чтобы убедиться, что она представлена во всех необходимых папках.
- mod_filter: FilterProvider синтакс изменился и сейчас используется логическое (булевое) выражение для определения применим ли фильтр.
- mod_include:
- выражение #if expr сейчас использует новый парсер. Старый синтакс может быть восстановлен директивой SSILegacyExprParser.
- конфигурация директивы SSI* больше не приводит к тому, что все SSI* директивы в подкаталогах сбрасываются к их дефолтным значениям.
- mod_charset_lite: Опция DebugLevel была удалена в пользу настройки в модуле LogLevel.
- mod_ext_filter: Опция DebugLevel была удалена в пользу настройки в модуле LogLevel.
- mod_ssl: основанные на CRL отмены проверок сейчас должны быть явно настроены в SSLCARevocationCheck.
- mod_substitute: Максимальная длина строки теперь ограничена 1MB.
- mod_reqtimeout: Если модуль загружен, теперь он будет устанавливать несколько таймаутов по умолчанию.
Разные изменения
- mod_autoindex: теперь точно называет и отображает описание для файлов.xhtml, которые раньше игнорировались.
- mod_ssl: дефолтный формат величин *_DN изменён. Старый формат может всё ещё использоваться с новым аргументом LegacyDNStringFormat в to SSLOptions. Протокол SSLv2 больше не поддерживается. SSLProxyCheckPeerCN и SSLProxyCheckPeerExpire сейчас по умолчанию установлены в On, что при прокси запросах к HTTPS хосту с плохими или устаревшими сертификатами будет приводить к ошибке 502 (Bad gateway).
- htpasswd теперь использует MD5 хэш по умолчанию для всех платформ.
- Деректива NameVirtualHost больше не имеет какого-либо эффекта, кроме отображения предупреждения. Любые комбинации адрес/пор появляющиеся во множественных виртуальных хостах безоговорочно трактуются как имя виртуального хоста.
- mod_deflate сейчас пропускает сжатие, если известно, что размер добавляемых метаданных (заголовков) больше, чем размер сжимаемых данных.
- Многоязычные документы ошибок из 2.2.x могут не работать, если они не приведены к новому синтаксу элементов mod_include’s #if expr= или если директива SSILegacyExprParser не включена для каталогов, содержащих документы ошибок.
- Функциональность, обеспечиваемая mod_authn_alias в предыдущих версиях (например директивой AuthnProviderAlias) перемещена mod_authn_core.
Сторонние модули
Все модули должны быть перекомпилированы для 2.4 перед загрузкой.
Много сторонних модулей созданных для версии 2.2 будут работать без внесения дополнительных изменений с сервером Apache HTTP версии 2.4. Некоторые могут потребовать изменений, обратитесь к обзору обновлений в API .
Общие проблемы при обновлении
- Ошибки запуска:
- Invalid command ‘User’, perhaps misspelled or defined by a module not included in the server configuration – загрузите модуль mod_unixd
- Invalid command ‘Require’, perhaps misspelled or defined by a module not included in the server configuration, or Invalid command ‘Order’, perhaps misspelled or defined by a module not included in the server configuration – загрузите модуль mod_access_compat, или обновите конфигурации в соответствии с синтаксисом директив авторизации версии 2.4.
- Ignoring deprecated use of DefaultType in line NN of /path/to/httpd.conf — удалите DefaultType и заменить другими конфигурационными настройками.
- Ошибки обработки запросов:
- configuration error: couldn’t check user: /path – загрузите модуль mod_authn_core.
Для описания всех изменений обратитесь к странице Новые функции .
Данная статья является переводом Upgrading to 2.4 from 2.2 .
Следующим шагом, после настройки и тестирования сайта на локалхосте, является выбор качественного и дешёвого интернет хостинга. Я перебрал довольно много решений и нашёл очень хороший вариант - 100 рублей в месяц! За эти деньги даётся профессиональный хостинг, с отличным аптаймом, с бесплатным доменом второго уровня в подарок (!) , с 2 гигабайтами места на SSD диске, с неограниченным количеством баз данных, с возможностью подключать неограниченное количество новых доменов (платить придётся только за каждый новый домен - 139 рублей). Вообще, всего хорошего так много, что проще всего посмотреть это .
Кстати, а ведь как здорово иметь собственное доменное имя! Хотя бы для того, чтобы сделать для себя красивый почтовый ящик, вместо чего-нибудь вроде [email protected]. Вот можно найти свой собственный домен. Например, я получил бесплатно домен сайт, я могу делать почтовые ящики: admin@сайт, alex@сайт, al@сайт и так далее - количество ящиков ничем не ограничено!
Посмотрите, я уверен, это предложение заинтересует любого администратора сайта (хоть начинающего, хоть продвинутого), поскольку это хостинг с настоящим качеством от профессионалов. Кстати, у меня есть промокод , дающий бесплатный месяц, если хотите, можете воспользоваться.
Гарант является доверенным посредником между Участниками при проведении сделки.
Поставим PHP 5.1.2. Где его достать? Здрасте, естественно на PHP.net. Выбираем самое близкое к себе зеркало и качаем себе ZIP. Пока качает сделаем соответствующий каталог под всё это дело по адресу /webservices/php/5/ — это делается специально, что-бы (на всякий случай) мы в любой момент могли поставить другую версию PHP и между ними переключиться.
Итак, в каталог /webservices/php/5/ мы разархивируем все файлы. Ничего сложного. Все более мение нормальные люди, знающие английский язык читают install.txt, и следуя инструкциям для соответствующих версий операционной системы и HTTP сервера. Нам актуален Apache 2.0.x on Microsoft Windows. Там есть пометка, что возможно, свеженький Apache 2 с MPM не будет нормально работать с PHP 5. У меня работает, но если у вас будут проблемы, можете отрубить всю эту красоту при помощи директивы Win32DisableAcceptEx.
PHP 5 я предпочитаю ставить как модуль для Apache 2 — оно немного безопасней.
Согласно рекомендациям, мы добавим путь до нашей инсталляции PHP в системный PATH. Для Windows XP идём в Control Panel и запускаем System, в закладке Advanced выбираем Environment Variables. Там,в разделе System variables выбираем в режиме редакции системную переменную Path, добавляем туда /webservices/php/5/ (с нужным символом диска и нужными слешами). Осталась мелочь — перезапустить систему.
Теперь нам нужно выбрать конфигурацию для PHP. С собой PHP приносит 2 версии конфигурации php.ini-dist и php.ini-recommended. Создатели рекомендуют использовать php.ini-recommended — он сконфигурирован для безопастности и скорости работы. Очень советую пересмотреть его и комментарии в нём. Я же предпочитаю php.ini-dist, с мелкими изменениями. Оба конфигурационных файла очень хорошо документированы, и настойчиво рекомендую вам со всем этим делом ознакомиться. Во первый я его ложу в директорию /webservices/apache/Apache2/conf — я разделяю конфигурации связанные с модулем и остальными случаями.
Мелкие изменения в php.ini (в php.ini я использую "/" слеши — оно прекрасно понимает):
error_reporting с E_ALL & ~E_NOTICE на E_ALL — разрабатываете проекты что бы в таком режиме небыло никаких сообщений об ошибок.
include_path делаю так, что бы оно могло брать PEAR — include_path = “.;/webservices/php/5/PEAR/” (незабудьте исправить слеши и символ диска).
upload_tmp_dir надо указать директорию для временный файлов, которые закачивают пользователи. Там они будут лежать, пока вы их не обработаете с move_uploaded_file или unlink. Для всего этого сделаем каталог /tmp и укажем его для ключа upload_tmp_dir.
extension_dir указываю путь до каталога с модулями PHP “/webservices/php/5/ext/”.
В разделе указываем SMTP сервер провайдера для ключа SMTP и адрес своей электронной почты для ключа sendmail_from.
В разделе для session.save_path укажем туже директорию /tmp — нам этого хватит для разработки.
В известном нам httpd.conf добавим (вполне можем сделать это в кoнце файла) сточки:
LoadModule php5_module "/webservices/php/5/php5apache2.dll" — Подгружаем модуль
AddType application/x-httpd-php .php — улазываем что.php файлы обрабатывает PHP процессор
и
PHPIniDir "/webservices/apache/Apache2/conf" — указываем где лежит php.ini
Сделаем apache.exe -t и видим Syntax OK. Пробуем запустить наш сервер. В какой-либо из наших каталогов, доступных через HTTP протокол, ложим файл phpinfo.php с таким содержанием (скорее всего мы положим его в наш www.example.com или default виртуальный сервер/хост):
и видим всю информацию о PHP. Это чистый, только со встроенными модулями, PHP 5.
Но, для разработки нам нужно на много больше — подключим несколько модулей: php_mbstring, php_curl, php_exif, php_gd2, php_mysql, php_pgsql, php_sqlite, php_mysqli. Вот только, проверьте, есть ли такие DLL в директории /webservices/php/5/ext/, а если нет, скачайте Collection of PECL modules и разархивируйте их в директорию /webservices/php/5/ext/.
С версией PHP 5.1 сразу идёт и модуль PDO, и тем, кто любит или хочет им пользоваться или ознакомиться, может себе его легко включить, достаточно подключить: php_pdo и соответствующие к нему библиотеки (к примеру, php_pdo_mysql для поддержки MySQL). Я лично, делаю большую ставку на PDO в будущем. Рестартуем наш Apache и вновь смотрим на phpinfo.php — видим что нами выбранные модули уже загрузились.
Вот и всё — у нас стоит PHP как модуль Apache 2. Более подробно обо всём вы можете прочесть на сайте PHP.net, а также советую запомнить вот это прекрасное место.
Хорошо Плохо
06 мая 2012Страница 1 из 2
Это руководство описывает, как можно установить Apache2 с mod_fcgid и PHP5 на Ubuntu 11.10. mod_fcgid является совместимой альтернативой старшего mod_fastcgi. Это позволяет выполнять скрипты с разрешения их владельцев, а не пользователь Apache.
Я не даю никаких гарантий, что это будет работать у Вас!
Предварительные замечания
В этой статье я использую Ubuntu server 11.10 с именем хоста server1.example.com и IP адресом 192.168.0.100 . В этом учебнике я создаю 2 виртуальных хоста Apache, www.example1.com и www.example2.com , чтобы продемонстрировать использование mod_fcgid.
Убедитесь, что вы вошли в систему с правами администратора:
Install dash as /bin/sh? - NoВ дополнение к этому, мы должны отключить AppArmor:
Если Apache2 уже был установлен с PHP5 в виде модуля Apache, отключить модуль PHP5 сейчас:
И откройте /etc/php5/cgi/php.ini :
|
Раскомментируйте строку cgi.fix_pathinfo = 1 :
[...] ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP"s ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo cgi.fix_pathinfo=1 [...]
Открыто /etc/apache2/mods-available/fcgid.conf
... ... и добавьте строку PHP_Fix_Pathinfo_Enable 1
(эта строка не должна идти в
Затем мы создаем корневой документ и сделаем их принадлежащими пользователям / группе web1 соответственно web2:
root@server1:~# /usr/lib/apache2/suexec -V -D AP_DOC_ROOT="/var/www" -D AP_GID_MIN=100 -D AP_HTTPD_USER="www-data" -D AP_LOG_EXEC="/var/log/apache2/suexec.log" -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin" -D AP_UID_MIN=100 -D AP_USERDIR_SUFFIX="public_html" root@server1:~#Поэтому мы не можем назвать бинарный PHP (/usr/lib/cgi-bin/php ), непосредственно, поскольку он находится за пределами корня Suexec. Suexec не принимает символические ссылки, единственный способ решить проблему заключается в создании сценария для каждого веб-сайта в подкаталоге /var/www ; скриптом будет называть бинарный /usr/lib/cgi-bin/php . Скрипт должен принадлежать пользователю и группе каждого веб-сайта, поэтому нам нужен сценарий для каждого веб-сайта. Я собираюсь создать оболочку скриптов в поддиректории /var/www/php-fcgi-scripts , например, /var/www/php-fcgi-scripts/web1 и /var/www/php-fcgi-scripts/web2 .
|
|
PHPRC строка содержит каталог, в котором находится файл php.ini (например, /etc/php5/cgi/ переводится /etc/php5/cgi/php.ini ). PHP_FCGI_MAX_REQUESTS максимальное количество запросов до остановки fcgid процесса и его нового запуска. PHP_FCGI_CHILDREN определяет количество children, PHP, который будут запущены.
php-fcgi-starter скрипты должены быть исполняемым, и они (и на их каталогов) должны принадлежать пользователю веб-сайта и группы:
|
|
Убедитесь, что Вы заполните правильные пути (и правильное пользователей и групп в SuexecUserGroup линия). Впоследствии перезагрузить Apache.
Начиная с этого года (с 1 января 2015 г.) все владельцы сайтов, работающих под управлением CMS Joomla! 2.5, столкнулись с большой проблемой - официально прекращена поддержка данной линейки! Это значит, что доступный на сегодня релиз Joomla 2.5.28 является последним и больше обновлений не будет. Это, в свою очередь, ничем не грозит, а с другой стороны - не будет обновлений касающихся безопасности системы. Поэтому на оффициальном сайте Joomla! и в панели у правления (если вы обновились к последней версии 2.5.28) есть информация, согласно которой вам рекомендуется пройти обновление (мигрировать) с Joomla! 2.5.28 на Joomla! 3.
(последний доступный релиз для обновления на сегодня) весьма не прост, если у вас большой веб-сайт, использующий огромное количество сторонних расширений. Если же у вас небольшой, использующий минимум, расширений (компонентов, модулей, плагинов...) веб-сайт, то тогда процесс миграции для вас не будет затруднительным. Более сложным процессом окажется процесс обновления сайтов работающих на Joomla 1.5 (имеется возможность обновления и для них).
Как пример такой миграции, с Joomla 2.5.28 на Joomla 3.3.6, послужит видео, где вы увидите пример обновления небольшого сайта с минимум установленных расширений. К тому же более подробно процесс миграции описан ниже.
Процесс миграции с Joomla 2.5 на Joomla 3.x
Если же вы решились пойти на этот шаг, тогда, первым делом, что вам нужно сделать , это:
- Обновиться до последней доступной версии в линейке Joomla 2.5, а это Joomla 2.5.28.
- Удостовериться в соответствии программного обеспечения вашего сервера (хостинга) минимальным требованиям для работы Joomla 3.x. Версия PHP должна быть не ниже 5.3.10 (рекомендуется 5.4 +), а баз данных (MySQL) 5.1 +.
- Создать рерервную копию вашего сайта (файлов и баз данных).
- Определиться со списком всех установленных сторонних расширений, которые вам необходимы для дальнейшей работы и те, которые вы готовы удалить.
Сторонними расширениями считаются все расширения, в которых в столбце "автор" указано не "Joomla! Project", но есть и те которые имеют другого автора, но вы не сможете их удалить, поскольку они являются системными расширениями и защищены от удаления (стоит значок замка).
Вам потребуется зайти в "Менеджер расширений" > "Обновление" и проверить, нажав на соответствующую кнопку, наличие новых версий для ваших установленных расширений и обновить их в случае такой возможности. Далее перейти на вкладку "Управление" и выбрать там тип "Пакет", поскольку, при удалении все связанные с этим пакетом дополнения (компоненты, модули, плагины) будут автоматически деинсталированы. Далее по очереди удалите все ненужные расширения выбирая другой "тип". С оставшимися (нужными для работы сайта) вам придется определиться будут ли они совместимы с Joomla 3. У некоторых из них вы увидите информационный значок возле их версии, который проинформирует вас о доступной на сегодня версии (если она отличается, тогда вам придется вручную скачивать и устанавливать новую версию, поскольку в по началу, во вкладке "Обновление" не было обновлений для этого расширения). С другими расширениями, которые не имеют такого "информационного значка", придется разбираться вручную, узнавая на сайте разработчика о новых доступных версиях.
Имеются два варианта развития: 1) ваши расширения имеют пакет совместимый как с Joomla! 2.5 так и с Joomla! 3 - тогда вы смело можете обновлять это расширение; 2) ваши расширения имеют один пакет для Joomla! 2.5 и другой для Joomla! 3 - тогда вам нужно будет деинсталлировать их (расширения) и после обновления до Joomla 3 установить новый пакет (внимание! после удаления некоторых расширений вы можете потерять имеющиеся данные).
Не забудьте также и про ваш шаблон ! Если у него разные пакеты, тогда вам нужно его удалить, назначив по-умолчанию другой, желательно, родной шаблон (как и в нашем случае на видео). - После того как вы удалили все расширения не совместимые с Joomla 3 вам необходимо зайти в "Общие настройки" на вкладку "Сервер" и выставить там значение параметра "Сообщение об ошибках" на "Максимум".
- Теперь зайдите в "Менеджер плагинов" и отключите там плагин "Система - Запомнить меня".
- Перейдите в меню "Компоненты" > "Обновление Joomla!" и кликнув на "Настройки" измените сервер обновлений на "Дистрибутивы Joomla с краткосрочной поддержкой". Сразу после сохранения настроек у вас должно появится сообщение о доступном обновлении до версии 3.3.6. Установите его! После успешной установки очистите кэш.
- Далее перейдите в "Менеджер расширений" и выберите слева подменю "База данных". Нажмите кнопку исправить.
- Далее перейдите в подменю "Поиск". Нажмите кнопку найти и обновите доступные для обновления новые версии расширений.
- Включите обратно плагин "Система - Запомнить меня".
- Перейдите в "Менеджер материалов", кликните на "Настройки" и выберите вкладку "Форма редактирования", где необходимо включить параметр "Save History".
- Установите свои новые расширения, включая новый шаблон, если это необходимо.
- Для завершения процедуры миграции необходимо удалить старый языковой пакет и установить новый, соответствующий новой версии Joomla! 3.3.6.
Всё! Надеемся, что и ваш процесс прошел также удачно!
Разьяснения о процессе миграции на нашем видео
Процесс проходил в точности как описано выше. Были удалены не нужные (не использующиеся и не совместимые с Joomla 3) расширения: Socbuttons, Xmap (был скачан новый пакет и установлен после перехода на Joomla 3), а также два плагина Core Design с которыми было решено прекратить работать.
А также был удален (требовалось по инструкции разработчика) и установлен еще на Joomla 2.5 новый пакет для JComments, поскольку новая версия компонента была совместима как с Joomla 2.5 так и с Joomla 3.
Хотелось бы рассказать как я устанавливал apache2 c php5 и mysql, а так же phpmyadmin на Debian, Ubuntu и Linux Mint в своей статье «Установка Apache2 с PHP5 и MySQL + phpmyadmin для Debian/Ubuntu/Mint». У меня установлен Debian, работать будет так же на Ubuntu и Linux Mint.
Я использую my_server.example.net — это доменное имя с 192.168.16.66- это его айпишник. Они будут отличны от ваших, и их можно настроить под себя. А посмотреть можно вот так:
# vim /etc/hosts [...] 192.168.16.66 my_server.example.net [...]
Я буду запускать все команды с привилегиями суперюзера, поэтому убедитесь, что вы вошли в вашу систему как администратор (root):
Установка Mysql
Когда я начал писать эту статью, то последняя версия mysql была 5, сейчас установим:
# apt-get install mysql-server mysql-client
В ходе установки, попросят ввести пароль для MySQL (для полного доступа, для рута) — это пароль будет одинаков как для root@localhost, так и для root@my_server.example.net. Его нужно ввести 2 раза.
Еще полезные статьи по теме:
1. 2. 3.
4.
5.
Установка apache2
Apache2 содержится в репозитории Ubuntu, как пакет, по этому я могу установить следующим образом:
# apt-get install apache2
После того как завершится установка, нужно перейти в свой браузер на http://ip_server_or-IP (у меня это http://my_server.example.net), и вы должны увидеть страницу приветствия Apache2 (Это работает!), на английском «It’s works!». По этому если вы это увидели, то сервер работает нормально.
Домашняя директория с apache-м, по умолчанию, находится в /var/www на Debian, и файл конфигурации лежит в /etc/apache2/apache2.conf. Дополнительные конфигурации хранятся в подкаталогах, в таких как /etc/apache2/mods-enabled (для модулей Apache), /etc/apache2/sites-enabled (для виртуальных хостов), и /etc/apache2/conf.d.
Установка PhP5
Мы можем установить пхп и модуль для работы вот так:
# apt-get install php5 libapache2-mod-php5
Перезапускаем веб сервер чтобы все что установили вступило в силу:
Для того чтобы убедится что все хорошо работает у нас, нужно создать файл в домашней директории апача (если вы не меняли то он находится по пути /var/www) и добавим php код который будет выводить полезную информацию о установленных приложения (php, apache, модули и тд):
# vim /var/www/php_info.php
Открываем браузер и переходим на этот файл:
http://your_ip/php_info.php
Вы должны увидеть некоторые данные на экране. Чтобы была поддержка MySQL в PHP,нужно установить php5-mysql пакет. Сейчас я установлю полезные модули, по этому, если нужны они вам, то устанавливайте (они не помешают), так же можно выбрать самое необходимое и не ставить все что я ставлю себе.
# apt-cache search php5
Выберите те, которые вам нужны, и установить их так:
# apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-suhosin
Я установлю все перечисленное, оно не помешает мне. В этой установке содержатся модули для работы с шифрованием + для работы с кешем (улучшение работы пхп) + поддержка sqlite и еще много чего. Я не буду описывать каждый из них, если уж очень нужно будет, то напишите и я добавлю описание каждого из них и вам станет понятно, но гугл еще работает =)
Теперь перезагрузите сервер:
# /etc/init.d/apache2 restart
XCache — модуль для кэширования и оптимизации промежуточного кода PHP. У него есть пару аналогов, таких как Eaccelerator и APC. Я рекомендую, чтобы хотя бы один из них был установлен у вас он должен ускорить работу ваших страниц которые написаны на PHP.
XCache можно установить следующим образом:
# apt-get install php5-xcache
Перезапускаем апач:
# /etc/init.d/apache2 restart
Чтобы посмотреть весь список установленных модулей, выполните:
# php -m
Теперь перезагрузите страничку с нашим php_info в вашем браузере и прокручиваем вниз до раздела модулей. Теперь вы должны найти много новых модулей там, в том числе модуля MySQL.
Установка phpmyadmin
Если нужно установить именно phpmyadmin для работы с вашими базами, то сейчас мы это сделаем:
# apt-get install phpmyadmin
Мастер установки спросит какой веб -сервер вы используете (Web server to reconfigure automatically ): выбираем apache2, есть так же еще lighttpd. На следующий вопрос «Configure database for phpmyadmin with dbconfig-common ?» — отвечаем No. Хотя можно нажать и Yes, тогда установщик спросит пароль для пользователя admin (нужен для входа в phpmyadmin).
Чтобы начать пользоваться phpmyadmin, нужно открыть в браузере:
http://yourIP_or_server/phpmyadmin/
Вводим в поле логин «root», пароль вводим такой как вы создали для mysql.
Настройка mysql
попозже будет(через пару дней)
Настройка apache2
Тут я буду рассказывать основные настройки веб-сервера апач, но по мере возможности. Я с каждым разом редактирую данную статью и добавляю что — то новое в описание.
Виртуальные хосты (Virtualhosts).
Хочу начать я свою настройку с создания и настройки Virtualhosts (виртуальных хостов). Есть много разных способов чтобы создать виртуальные хосты, но я бы посоветовал данный метод (поискав и перебрал много вариантов и литературы, я выбрал именно его).
По умолчанию, веб-сервер апач «слушает» все IP-адреса которые доступны для виртуального сервера. Это не есть хорошо, по этому нужно подредактировать и настроить его на прослушивание только определенного ИП-адреса. Даже если Вы имеете только один IP адрес!
Делаем изменение в файле ports.conf:
# vim /etc/apache2/ports.conf [...] NameVirtualHost 192.168.16.66:80 [...]
Измените данный ИП-адрес на свой!
Делаем изменение в файле default:
# vim /etc/apache2/sites-available/default
Теперь я создам 1 виртуальный хост в качестве примера:
# vim /etc/apache2/sites-available/test
Создадим папки которых нет:
# mkdir -p /var/www/192.168.16.66/ # mkdir -p /var/www/192.168.16.66/public_html # mkdir -p /var/www/192.168.16.66/logs
После всех изменений, нужно подключить данный домен в apache:
# a2ensite test
И перезагрузить веб-сервер:
# /etc/init.d/apache2 reload
Можно отключить данный сайт (виртуальный хост test)следующей командой:
# a2dissite test
Чтобы проверить работает ли все нормально, я скопирую файл (php_info):
# cp /var/www/php_info.php /var/www/192.168.16.66/public_html/
Можно открыть браузер и перейти:
http://192.168.16.66/php_info.php
Настройка PHP5
Все изменения нужно проводить в конфигурационном файле php.ini, сейчас мы его немного поправим:
# vim /etc/php5/apache2/php.ini [...] max_execution_time = 30 memory_limit = 64M error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR display_errors = Off log_errors = On error_log = /var/log/php.log register_globals = Off [...]
Вот и все, данная тема «Установка Apache2 с PHP5 и MySQL + phpmyadmin для Debian/Ubuntu/Mint» полностью раскрыта, можно использовать наш установленный LAMP.