Настройка веб-сервера Apache, для локального сервера Windows. Wordpress на apache


Настройка сервера (Apache + PHP) под WordPress.

Настройка модулей Apache и PHP.

Содержание:

Системные требования WordPress

Настройка Apache

Настройка PHP (php.ini)К сожалению, официальная информация по этой теме крайне скупа. Вся нижеприведенная информация получена опытным путем. Дополнения и комментарии приветствуются!Стоит отметить, что WordPress корректно работает и без многих приведенных ниже модулей, т.к. имеет функции дублеры на случай отсутствия некоторых расширений. Это, конечно, здорово, но такие функции обрабатываются медленнее по сравнению с уже скомпилированными.

Расширения php, которые WordPress может задействовать:

Также очень рекомендуется установка на сервер eAccelerator’a.

Также очень часто приходится изменять параметры отвечающие за загрузку файлов:upload_max_filesize = 32M (по умолчанию 2 Мб) — максимальный размер загружаемого файлаpost_max_size = 32M — максимальный размер переданных данных методом POST

Т.к. на загрузку бОльших файлов требуется больше времени стоит также поменять следующие параметры:max_input_time = 60 (секунды) — максимальное время отведенное скрипту для получения данныхmax_execution_time = 90 (секунды) — максимальное время выполнения скрипта

www.q2w3.ru

/home/redvi/: Установка Apache+Wordpress

Сегодня обсудим такую значимую для новоприбывших линуксоидов вещь, как установка web-сервера apache. Да к тому же ещё с Wordpress.Краткая терминология:Apache - HTTP-серверWordpress - CMS . Бесплатен. Написан на PHP.MySQL — свободная система управления базами данных

Люди, совсем не знакомые с CMS, могут обратиться к первой части дабы узнать подробности:ссылка на статью.

Шаг1.Устанавливаем MySQL

#sudo apt-get install mysql-server

Примечание: здесь и в дальнейшем значок # указывает на необходимость выполнения команды от имени суперпользователя

В Debian & Ubuntu существует проверка зависимости пакетов, так что всё необходимое установится автоматом, нужно лишь ввести на приглашение пароль суперпользователя и по мере необходимости подтверждать своё желание установить тот или иной пакет.

После установки потребуется перезагрузить mysql :

# sudo /etc/init.d/mysql restart

MySQL по умолчанию разрешает связь только с localhost (что нам, в общем-то, и нужно, поэтому базовые настройки можно не менять) Но если вы хотите открыть к нему общий доступ в интернете, придётся отредактировать файл /etc/mysql/my.cnf:

#gksudo gedit /etc/mysql/my.cnf

В открывшемся файле закомментируйте строку bind-address = 127.0.0.1 (то есть перед ней нужно поставить #) и сохраните.

Шаг2.Займёмся установкой php:

# sudo apt-get install php5 libapache2-mod-php5

И, конечно, установим сам веб-сервер либо командой #sudo apt-get install apache2, либо предварительно скачав его (отсюда)

Проверяем всё ли в порядке, вписав в браузере адрес http://localhostДолжно появиться что-то вроде этого:

Если всё так, значит вы успешно справились с поставленной задачей. Теперь нам, пожалуй, понадобится такая незаменимая вещь как PHPMyAdmin. Делается это так: # sudo apt-get install phpmyadmin Запросит пароль базы данных . Также надо будет создать пароль входа. Теперь, как и в случае с Joomla, создадим базу данных: впишите в строку браузера (не забываем, что Apache должен быть запущен): http://localhost/phpmyadmin/ , где нужно ввести логин/пароль, созданный при установке MySQL

Примечание:Если выдаёт ошибку "404: Not Found", введите команду: # sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadminНастройка базы:- создайте новую базу данных

- назначьте созданной базе пользователя и наделите его всем правами Что ж, с установкой веб-сервера закончили. Можно приниматься за Wordpress. Выполним знаменитую установку в пять минут: sudo apt-get install wordpress или же позаимствуйте c wordpress.org

Прикрутим базу к Wordpress'у:

Переименуйте файл wp-config-sample.php в wp-config.php#mv /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.phpОтредактируйте его в соответствии с вашими настройками:#gedit /var/www/wordpress/wp-config.php

'DB_NAME' 'имя базы данных''DB_USER' "имя пользователя базы"'DB_PASSWORD' 'пароль пользователя базы''DB_HOST' 'localhost'

Шаг3.Запуск установки Wordpress: Введите в строку браузера http://localhost/wordpress/wp-admin/install.php Начнётся установка, просто отвечайте на вопросы мастера После завершения установке введите в браузере http://localhost/wordpress и увидите следующее: Примечание: Если при запуске инсталляции возникает ошибка 404 Not Found, проверьте правильность пути расположения папки с установленным wordpress. В случае установки посредством команды apt-get нужная папка, скорее всего, будет находиться по адресу /usr/share/wordpress. Для использования стандартного пути достаточно просто скопировать её в var/www:

# cp -a /usr/share/wordpress /var/www

Стандартная тема установленного блога выглядит так:

Примечание: - вход в административную панель: http://localhost/wordpress/wp-admin/ - стандартный путь входа на блог: http://localhost/wordpress/ - вход в phpmyadmin: http://localhost/phpmyadmin - читаем о том, как  выложить сайт на хостинг

root-inform.blogspot.com

Очень легкий способ установить Wordpress на вашей домашней машине(XAMPP)

10 Авг 2008

http://michaelsync.net/2007/07/09/very-easy-way-of-installing-wordpress-on-your-windows-boxЭта статья написана для тех, кто хочет установить WordPress как резервную копию блогов на домашнем компьютере под управлением Windows. Это достигается установкой только одного пакета для всех необходимых программных компонентов вебсервера, таких как PHP, MySQL, Apache и т.д. без загрузки их по отдельности или ручного конфигурирования их.

Обычно, это не лёгкий путь вустановке и настройке PHP, MySQL, Apache на Windows. Иначе Вы должны будете загрузить каждый пакет отдельно. После этого вам нужно было бы конфигуроровать каждый пакет и попаться заставить работать всё это хозяйство вместе. Это настоящий геморрой. Поверьте!

Но,  способ, которым я показываю Вам, очень прост. Вы только должны загрузить один архив, и этот арахив устанавливит и сконфигурирует все программное обеспечение, в котором Вы нуждаетесь. Прочитав эту статью вы научитесь как устанавливать WordPress на вашем домашнем компьютере. Вы можете использовать эту статью как ссылку для того, чтобы  научиться устанавливать PHP, MySQL, Perl и Apache в Windows.

Хорошо. Давайте начнём!

Во-первых, Вы должны загрузить один полезный инструмент под названием XAMPP.

Что такое  XAMPP?

Как пишут разработчики:

Многие знают не по наслышке, что это так уж и просто Apache сервер, и ещё сложнее если Вы хотите добавить и заставить работать вместе MySQL, PHP и Perl.

XAMPP — простой в установке дистрибутив Apache, содержащий MySQL, PHP и Perl. XAMPP действительно очень прост в установке и использовании — только загрузите, извлеките и запустите.

XAMPP — инструмент, который помогает Вам устанавливать MySQL, PHP, Perl, Apache и некоторые полезные приложения PHP (например: phpMyAdmin) на Вашей OS очень простым способом, не конфигурируя ничего. Это работает на Windows, Mac, Linux и Solaris. Однако, эта статья описівает установку только для пользователей Windows, и все скриншоты зафиксированы на Windows Vista.

Установка XAMPP ver 1.6.2 (PHP 5.2.2 и 4.7.7, MySQL 5.0.41, Perl и Apache)

Внимание тех, у кого установлен IIS : перед установкой XAMPP, лучше будет если вы остановите IIS (Internet Information Service ) потому как Apache Web Server будет использовать порт 80 и если IIS запущен, т.е. использует порт, то Apache не сможет запуститься.

1. Загрузите последнюю версию XAMPP и после этого запустите установку его.

Установка xampp на wordpress

Установка xampp на wordpress

( Это сообщение покажется если у вас Windows Vista. Нажмите «OK»  но убедитесь что вы устанавливате  пакет в диреторию имеющую права на запись.  Если вы не уверены, то устанавливайте  в «C:\xampp\»)

Окно приветствия установки XAMPPОкно приветствия установки XAMPP

2. Нажмите «Дальше»

Выбор пути инсталляции XAMPP

Выбор пути инсталляции XAMPP

3. Нажмите «Дальше»

Выбор опций установки XAMPP

Выбор опций установки XAMPP

4. Выберите все три галочки напротив утасновки приложений как сервисов. И нажмите “Install”

Процесс установки XAMPP запущен.

Процесс установки XAMPP запущен.

(Подождите 1 или 2 минуты пока идет инсталляция )

Установка XAMPP закончена

Установка XAMPP закончена

5. Нажмите “Finish” чтобы закончить инсталляцию.

Это всё! Установка PHP, MySQL и Apache завершена. На картинке ниже показана структура директории XAMPP который вы только что установили на свой компьютер.

Структура диретории XAMPP

Структура диретории XAMPP

А теперь давайте установим WordPress на вашу машину.

Установка WordPress на локальный домашний компьютер

1. Загрузите zip файл из http://wordpress.org. Извлеките его. Затем скопируйте и вставьте его в папку htdocs. (например: C:\xampp\htdocs\)

2. Наберите в браузере “http://localhost/phpmyadmin/” .

3. Наберите “wordpress” в “Create New Database”(создание новой базы данных) и нажмите “Create”(Создать) . (Новая база данных будет названа как “wordpress” и создана в вашем MySQL сервере.)

phpmyadmin создание базы данныхphpmyadmin создание базы данных

4. Наберите “http://localhost/wordpress/” в бразуере (И вы увидете следуюю картинку в вашем браузере.) Нажмите “create a wp-config file through a web interface”(создать wp-config через вэб-интерфейс).

Начало установки ВордпрессаНачало установки Вордпресса

5. Нажмите “Lets go”(дальше)

Конфигурация установки WordPressКонфигурация установки WordPress

6. Нажмите “Submit”(дальше). (Обратите внимание, что по умолчанию пароль в MySQL сервере пустой и имя по умолчанию “root”. Если вы создали другого пользователя и пароль, то введите их. И убедитесь, что этот пользователь БД имеет права на запись файла wp-config и в папкуWordpress.)

Мастер установки WordPressМастер установки WordPress

7. Теперь, вы закончили конфигурирование wp-config файла и вы уже готовы начать инсталляцию WordPress на ваш компьютер.  Чтобы начать инсталляцию нажмите “run the install”(начать инсталляцию).

Установка WordPress законченаУстановка WordPress закончена

8. Заполните поле «имени вашего блога» и ваш Email адрес. Вы так же можете отметить будет ли ваш блог  виден для поисковых роботов. Эта опция не очень важна нам, так как мы ставим ВордПресс на локальную машину. Теперь нажмите “Continue to Second Step”(перейти ко второму шагу).

Первые шаги - название блога WordPressПервые шаги - название блога WordPress

9. Дальше вы увидите что ваша БД создана и заполнена стартовыми таблицами и данными. Вы получите имя администратора и сгенерированный пароль для него. (Я предлагаю вам заменить его на более читабельный, т.к. сгенерированный пароль достаточно сложно запомнить :).)

Установка WordPress завершена! Установка WordPress завершена!

Тепень, инсталляция закончена. Вы можете пройти авторизацию в ваш wordpress.

На этом всё об установке php, mysql, apache иwordpress в Windows. Это слишком просто. Не правда ли?  Если у вас возникли сложности, то отписывайтесь в комментариях.  Спасибо за чтение…..

4wordpress.ru

Настройка https для wordpress сайта (apache)

Данная инструкция посвящена конфигурации необходимой для включения https на сервере с установленным apache.

Создание apache конфигурации

В зависимости от пользователя и настроек вашего сервера будет меняться место расположения файлов конфигурации. В моей конфигурации пользователь и его файлы находятся в директории /home/user/... (linux). Конфигурация сервера в таком случае я советую располагать в папке /home/user/conf/web/...

На этот раз я посоветую вам разделить файлы конфигурации на две части. Первый файл будет отвечать за 80 порт и отвечать по http, второй же будет содержать настройки для https и отвечать за 443 порт.Чтобы данный конфигурационный файл работал из данной папки его необходимо подключить его в основной конфиг файл apache в директории: /etc/apache2/apache2.conf.

В этом файле необходимо подключить наш будущий конфиг, делается это с помощью директивы Include путь_к_файлу:

Include /home/user/conf/web/apache2.conf Include /home/user/conf/web/sapache2.conf
Настройка apache2.conf

В первом файле конфигурации будут настройки посвященные работе с http а так же стандартные настройки для нашего сайта.

<VirtualHost ip_адрес_сервера:8080> # слушаем стандартный 80 порт #Redirect permanent / https://exemple.ru/ редирект на https ServerName exemple.ru # домен сайта DocumentRoot /home/user/web/exemple.ru/public_html # путь до корня сайта ScriptAlias /cgi-bin/ /home/user/web/exemple.ru/cgi-bin/ # путь до папки с CGI сценариями # Логи сайта CustomLog /var/log/apache2/domains/exemple.ru.bytes bytes CustomLog /var/log/apache2/domains/exemple.ru.log combined ErrorLog /var/log/apache2/domains/exemple.ru.error.log <Directory /home/user/web/exemple.ru/public_html> # правила работы с папкой сайта AllowOverride All Options +Includes -Indexes +ExecCGI </Directory> </VirtualHost>
Настройка sapache2.conf

Во втором файле будут настройки посвященные ssl сертификатам и настройкам https. В нем нам необходимо указать путь до ssl сертификата и ключа к этому сертификату а так же в некоторых случаях путь до файла цепочки сертификатов (опционально). Их вы получили либо от let's encrypt, либо от вашего провайдера.

<VirtualHost ip_адрес_сервера:8443> # слушаем 443 порт ServerName exemple.ru # домен сайта SSLEngine on # включение ssl SSLVerifyClient none # отключение проверки клиента SSLCertificateFile /home/user/conf/web/ssl.exemple.ru.crt # файл сертификата SSLCertificateKeyFile /home/user/conf/web/ssl.exemple.ru.key # файл ключа сертификации SSLCertificateChainFile /home/user/conf/web/ssl.exemple.ru.ca # цепочка сертификатов DocumentRoot /home/user/web/exemple.ru/public_html # путь до корня сайта ScriptAlias /cgi-bin/ /home/user/web/exemple.ru/cgi-bin/ # путь до папки с CGI сценариями # Логи сайта CustomLog /var/log/apache2/domains/exemple.ru.bytes bytes CustomLog /var/log/apache2/domains/exemple.ru.log combined ErrorLog /var/log/apache2/domains/exemple.ru.error.log <Directory /home/user/web/exemple.ru/public_html> # правила работы с папкой сайта AllowOverride All SSLRequireSSL Options +Includes -Indexes +ExecCGI </Directory> </VirtualHost>

После сохранения изменений необходимо перезагрузить apache. В linux это делается следующей командой: service apache2 restart.На этом все. Вопросы и мнения оставляйте в комментариях. Удачи!

dmkweb.ru Права на контент защищены.

dmkweb.ru

Настройка веб-сервера Apache, для локального сервера Windows

Вступительная часть

Продолжаем собирать локальный сервер на своем компьютере, с осью Windows. После установки трех компонентов локального сервера AMP (Apache+MySQL+PHP) на свой компьютер, работающий под Windows, переходим к их настройке. В этой статье настроим веб-сервер, Apache.

Подготовка к настройке веб-сервера Apache

Если вы делаете установку локального сервера без временных пауз, вам достаточно легко, будет вспомнить, куда вы установили компоненты сервера Apache; MySQL; PHP.

Общая задача настроек Apache; MySQL; PHP это связать их воедино, указав в каждом из них, расположение других серверов. А также, нужно выставить наиболее приемлемые настройки параметров этих компонентов.

Задача этой статьи, понять, где у сервера Apache, лежит «золотой ключик» настроек. Настройки можно менять в зависимости от встающих задач, ведь глобальная задача, не установить локальный сервер на локальный компьютер, а пользоваться им.

Настройка веб-сервера Apache по шагам

Идем в директорию установки Apache. В прошлых статьях я ставил Apache в папки c:/www (установка Apache MSI) и c:/Apache24;

В папке c:/www/conf нам нужен файл конфигурации веб-сервера, httpd.php;

Настройка веб-сервера Apache (редактирование файла) делаем в удобном редакторе Notepad++.

Примечание: Термин раскомментировать (uncomment), означает открыть доступ к функционально строке файла для системы. По факту. Раскомментировать в файлах Apache, значит убрать в начале строке знак решетка (#).

1. uncomment: #LoadModule rewrite_module modules/mod_rewrite.so

(включаем загрузку для модуля  mod_rewrite)

Настройка веб-сервера Apache включаем загрузку для модуля mod_rewriteНастройка веб-сервера Apache включаем загрузку для модуля mod_rewriteвключаем загрузку для модуля mod_rewrite2. В конце группы директорий LoadModule, прописываем расположение вашего уже установленного сервера PHP и этим, подключаем PHP к Apache (расположение пишите свои). LoadModule php5_module "C:/php/php5apache2_2.dll" AddType application/x-httpd-php .php PHPIniDir "c:/php/" 3. uncomment [#ServerName localhost:80]

Порт 80 ApacheПорт 80 Apache

4. Проверьте правильность директивы (проверяем путь): DocumentRoot «C:/www/htdocs»

DoccumentRootDoccumentRoot

5 Для управление Apache на сайтах создаются файлы .htaccess. Чтобы включить в работу этот файл в блоке директив: <Directory /> Options FollowSymLinks AllowOverride None </Directory>

Меняем [None] на команду [All]

поменять none на allпоменять none на all

6. В строку [DirectoryIndex:] вписываем максимальное количество разрешенных расширений [index.html index.shtml  index.htm index.php index.phtml]

Строка 322Строка 322

7. uncomment: (816)#AddType text/html .shtml (817)#AddOutputFilter INCLUDES .shtml

раскомментирование строкраскомментирование строк

Дополняем их двумя строками:

AddType application/x-httpd-php-source .phps AddType application/x-httpd-php .php

(тем самым, включаем SSL на Apache)поддержка SSLподдержка SSL

8. По всему файлу проверяем правильность адреса расположения Apache 9. В всем файле httpd.php должен использоваться только слеш (/), а не бекслеш (\). 10. Сохраняем отредакnированный файл httpd.php.

Проверка работы файла httpd.php

Для проверки правильности настройки идем через меню «Пуск» во все программы, далее Apache HTTP  файл «TestConfiguration». Если есть ошибки они отразятся на экране.

Вывод

Настройка веб-сервера Apache завершена. В завершении замечу, что в файле httpd.php сервера Apache, все директории и блоки директорий снабжены подробными комментариями на английском языке. Для глубоко понимания настроек их нужно почитать.

Скачать файл httpd.php сервера Apache можно тут configs (на сайте). Обратите внимание, что в нем другое место расположения Apache.

©www.wordpress-abc.ru

Еще статьи

Статьи связанные по теме:

www.wordpress-abc.ru

Установка WordPress на Apache HTTP Server — dvsav.ru

В этой заметке я собираюсь установить движок WordPress на свой игрушечный сайт, который размещен на моем домашнем ПК, чтобы потренироваться в ведении блога. В предыдущем посте я установил на свой ПК СУБД MySQL. WordPress — это так называемая Content Management System (CMS) — программное обеспечение, написанное на языке PHP, которое придает сайту приличный внешний вид и функциональность. Без CMS сайт скорее всего будет состоять лишь из статических страниц.

Установка WordPress

  1. WordPress хранит посты, комментарии, аккаунты пользователей нашего блога и пр. в базе данных. Поэтому специально для WordPress мы должны эту базу данных создать а также создать имя пользователя и пароль для WordPress, а затем предоставить этому пользователю все права для работы с созданной нами базой данных. Чтобы все это сделать, нам надо из командной строки запустить утилиту mysql:

    Утилита попросит ввести пароль. Пароль мы задавали, когда устанавливали MySQL.Далее выполняем следующие SQL-команды:

    CREATE DATABASE 'wordpress' DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;CREATE USER 'wpadmin'@'localhost' IDENTIFIED BY 'wp_password';CREATE USER 'wpadmin'@'%' IDENTIFIED BY 'wp_password';GRANT ALL ON 'wordpress' . * TO 'wpadmin'@'localhost';GRANT ALL ON 'wordpress' . * TO 'wpadmin'@'%';

    Здесь wordpress — имя базы данных, wpadmin — имя пользователя, wp_password — пароль. Вы можете придумать свои варианты того, другого и третьего.Я заметил, что в зависимости неизвестно от чего mysql ругается либо не ругается на ошибку синтаксиса в слове 'wordpress' — ему не нравятся одинарные кавычки. Если в вышеприведенных командах ваш mysql ругнулся на ошибку синтаксиса, попробуйте убрать кавычки в слове 'wordpress'.Теперь можно выйти из утилиты mysql (команда exit).

  2. Скачиваем WordPress в виде zip-архива и распаковываем его в корневую папку нашего сайта (C:\Apache24\htdocs\). Внимание: в архиве wordpress.zip находится папка wordpress. Так вот: нужно скопировать в C:\Apache24\htdocs\ не саму папку wordpress, а только ее содержимое (убедитесь, что в папке C:\Apache24\htdocs\ в результате окажется файл index.php).
  3. Если они еще не запущены запускаем веб-сервер Apache и сервер MySQL. Открываем веб-браузер и вводим адрес сайта (в нашем случае — localhost). Отобразится диалог установки WordPress. Следуем инструкциям по установке. В процессе установки вы создадите аккаунт администратора сайта (не забудьте записать пароль). WordPress также попросит вас сообщить имя базы данных, имя пользователя и пароль, которые вы создавали на 1-ом шаге.
  4. Всё, сайт уже работает. Вы можете просмотреть его в веб-браузере, написав в адресной строке localhost. Далее вы можете управлять внешним видом сайта и его содержимым, а также аккаунтами пользователей. Для этого надо будет войти в панель управления (dashboard). Введите в адресной строке веб-браузера localhost/wp-admin. Вам понадобится имя пользователя и пароль, которые вы вводили при установке WordPress.

Экспорт содержимого сайта

Вы всегда можете экспортировать содержимое сайта (главным образом — посты и комментарии к ним) в файл XML и позднее импортировать его например на другой хост. Для этого в WordPress Dasboard выберите Инструменты->Экспорт или используйте URL localhost/wp-admin/export.phpЭтот инструмент однако не экспортирует медиа-файлы (изображения, аудио, видео), плагины и темы. Их вам придется скачать вручную: надо просто скопировать папки

\wp-content\uploads\wp-content\plugins\wp-content\themes

Папка wp-content расположена в корневой папке вашего сайта (C:\Apache24\htdocs\).

Создание резервной копии базы данных

Иногда полезно делать резервную копию базы данных, которую использует WordPress. Для этого можно воспользоваться утилитой mysqldump, которая находится в подпапке bin папки установки MySQL:

mysqldump -u wpadmin -p wordpress > wordpress_database_dump.txt

Здесь wpadmin — имя пользователя, wordpress — имя базы данных.После ввода вами пароля утилита создаст текстовый файл wordpress_database_dump.txt, куда поместит SQL-команды, которые создают интересующую нас базу данных. Чтобы восстановить состояние базы данных, нужно просто выполнить эти инструкции утилитой mysql.

Обновление WordPress

WordPress автоматически проверяет обновления и предлагает их установить (вкладка Консоль->Обновления в dashboard).При первой попытке обновить WordPress из dashboard у меня возник экран с ошибкой:

Обновить WordPressСкачивание обновления из http://downloads.wordpress.org/release/ru_RU/wordpress-4.9.2.zip…Загрузка не удалась.: No working transports foundУстановка не удалась

Проблема решилась путем редактированием файла php.ini — надо раскомментировать строку

Затем перезапустить сервер Apache.

При повторной попытке обновить WordPress возник экран с ошибкой:

Fatal error: Maximum execution time of 30 seconds exceeded in C:\Apache24\htdocs\wp-includes\Requests\Transport\cURL.php on line 463

Проблема снова решилась редактированием файла php.ini — надо было увеличить параметр max_execution_time например так:

Затем надо перезапустить сервер Apache.

При следующей попытке обновить WordPress возник экран с сообщением:

В настоящий момент выполняется другое обновление.

Это, как оказалось, происходит всякий раз когда в процессе обновления возникает ошибка. WordPress устанавливает т. н. блокировку, которая в течение некоторого времени (15 минут) не позволяет выполнять обновления. Поэтому надо просто подождать 15 минут и снова запустить обновление.

В следующем посте будет несколько слов о безопасности, после чего перейдем собственно к написанию постов.

Литература

  1. Lisa Sabin-Wilson — WordPress All-in-One For Dummies, 3rd Edition — 2017 (Book 2, Chapter 4 — Installing WordPress on Your Web Server)

dvsav.ru

Владение Apache и разрешения для wordpress Flip Linux

Ноэль, пользователь www-data – пользователь, от имени которого Apache запускает ваш код WordPress (и любой другой код, создавая веб-страницы для ваших пользователей, например, код Django – движок веб-сайта python).

www-data создан, чтобы иметь минимальные разрешения, потому что он может запускать вредоносный код и принимать как можно больше контроля над вашей системой, так как это разрешено. Предположим, что механизм WordPress содержит уязвимость. Скажем, он позволяет пользователю конвертировать файл изображения с .jpg в формат .gif , запустив convert из Imagemagick. Уязвимость заключается в том, что она не проверяет, что имя файла содержит имя файла и только имя файла.

Если злобный взломщик поставляет «image.png; ldd image.png», а WordPress выполняет convert image.png; ldd image.png convert image.png; ldd image.png в оболочке без фильтрации части "; ldd image.png" (эта часть была добавлена ​​в имя файла взломщиком, чтобы быть обнаруженным в оболочке), ваш apache будет запускать ldd image.png в дополнение к преобразованию образ. Если image.png на самом деле является исполняемым файлом с именем image.png, который предоставил вам взломщик (если вы разрешаете другим пользователям публиковать на вашем сайте, используя механизм WordPress), ldd image.png может привести к произвольному выполнению кода, используя уязвимость «ldd», как описано здесь: http://www.catonmat.net/blog/ldd-arbitrary-code-execution/ .

Очевидно, что если этот код запускается как пользователь root, он может заразить все программы в вашей системе и полностью контролировать его. Затем вы ввернуты (ваш виртуальный хостинг может начать рассылку спама, пытаясь заразить всех вирусами, съесть весь ваш бюджет хостинга и т. Д.).

Таким образом, WordPress должен запускаться с минимальными привилегиями, чтобы минимизировать ущерб от потенциальной уязвимости. Таким образом, любой файл, который могут записывать www-data , должен рассматриваться как скомпрометированный.

Почему бы вам не запустить WordPress в качестве пользователя foo ? Предположим, у вас есть пользовательская установка программ (например, в /home/foo/bin ) и запуск WordPress в качестве пользователя foo . Тогда уязвимость в WordPress может заразить эти программы. Если вы позже запускаете одну из этих программ с помощью sudo , вы будете ввернуты – это потребует полного контроля над системой. Если вы храните любой пароль или закрытый ключ, и пользователь foo может его прочитать, тогда взломщик, который взломал ваш WordPress, тоже сможет его прочитать.

Что касается общего механизма функционирования Apache, вот краткий обзор:

введите описание изображения здесь

1) На вашем компьютере VPS есть один процесс Apache2, который работает как корень. Он должен запускаться как корень, потому что ему нужны привилегии root, чтобы попросить ядро ​​Linux создать сокет на TCP-порту 80.

Socket (см. Berkley Sockets ) представляет собой абстракцию программирования операционных систем, используемую современными ядрами операционных систем (ОС) для представления сетевых подключений к приложениям. Разработчики WordPress могут рассматривать сокет как файл. Когда 2 программы, клиент и сервер на двух разных компьютерах разговаривают друг с другом по сети, используя протокол TCP / IP, ядра ОС обрабатывают данные TCP / IP сами по себе, и программы просто думают, что у них есть файл-подобный объект – разъем. Когда программа клиента (например, Mozilla) что-то пишет в свой сокет, ядро ​​ОС клиентского компьютера доставляет эти данные в ядро ​​ОС сервера сервера, используя протокол TCP / IP. Затем серверная программа (Apache2 от имени WordPress) может считывать эти данные из своего сокета.

Как клиент находит сервер и как сервер отличает клиентов? И сервер, и клиент идентифицируются парой (IP-адрес, номер порта TCP). Существуют известные порты для известных протоколов, таких как 80 для http, 443 для https, 22 для ssh и т. Д. Известные порты используются серверными компьютерами для ожидания соединений на них. ВАЖНО, только пользователь root может создавать сокеты на хорошо известных портах. Вот почему первый экземпляр Apache2 запускается как root.

Когда сервер (Apache2) хочет начать прослушивание порта, он создает так называемый passive сокет на порту 80 с несколькими system calls (socket (), bind (), listen () и accept ()). Системный вызов – это запрос от программы к ее ядру ОС. Чтобы прочитать о системных вызовах, используйте, например, man 2 socket (здесь 2 означает раздел 2 справочных страниц – системные вызовы, см. man man для номеров разделов). Passive розетка не может действительно передавать данные. Единственное, что он делает, это установить соединение с клиентом – вкладку Mozilla.

2) Клиент (вкладка Mozilla) хочет установить TCP / IP-соединение с вашим сервером. Он создает сокет на NON-WELL KNOWN порт 14369, который не нуждается в привилегиях root. Затем он обменивается тремя сообщениями с Apache через пассивный сокет на 80-м порту вашего компьютерного компьютера. Этот процесс (установление соединения TCP / IP с 3 сообщениями) называется трехсторонним рукопожатием, см.

введите описание изображения здесь

3) Когда соединение TCP / IP успешно установлено, Apache2 (запускается от имени пользователя root) вызывает системный вызов accept() а ядро ​​Linux создает active сокет на 80-м порту сервера, соответствующий соединению с вкладкой Mozilla. Через этот активный сокет приложение WordPress будет разговаривать с клиентом.

4) Apache2 (запускается как root) открывает еще один экземпляр Apache2 для запуска кода WordPress с более низкими привилегиями. Этот экземпляр будет запускать ваш код WordPress как пользователь www-data .

5) Mozilla и Apache2, запускающие код WordPress в качестве пользователя www-data начинают обмениваться http-данными по установленному соединению, записывать и считывать их соответствующие сокеты через системные вызовы send()/recv() .

В принципе, WordPress – это просто программа, выход которой является html-страницей, поэтому Apache2, работающий как www-data просто запускает эту программу и записывает свой вывод (html-страницу) в активный сокет, а Mozilla на стороне клиента получает это страницы и показывает это.

fliplinux.com


Смотрите также

Prostoy-Site | Все права защищены © 2018 | Карта сайта