Как подключить php к apache linux

Обновлено: 04.07.2024

В общем, рекомендуется использовать популярный и хорошо поддерживаемый дистрибутив Linux, 32-битный (x86) либо 64-битный (amd64). 64-битная версия дает большую производительность, но доставляет больше проблем (таких как совместимость с драйверами). 32-битные системы существуют большее количество времени и имеют меньше проблем, что важно для начинающих пользователей.

Существуют два больших семейства Linux: Debian и Red Hat. Debian - это бесплатный open-source проект, который имеет несколько ветвей, наиболее популярная из которых Linux Ubuntu. Red Hat - это коммерчески распространяемая ОС, чьи "бесплатные" ветви называются Linux CentOS и Linux Fedora.

Red Hat Linux разрабатывается компанией Red Hat Inc. Red Hat Linux (либо ее "бесплатная" модификация CentOS) известна как "корпоративная" операционная система. Ее основное преимущество - "стабильность" (низкая доля системных ошибок). Однако эта стабильность достигается тщательным отбором ПО, которое устанавливается из коробки. Когда вы устанавливаете такую ОС для целей разработки на языке PHP, эта "стабильность" может стать проблемой, так как вы имеете доступ к некой старой (но "стабильной") версии PHP и другого ПО. В такую ОС не включают новое ПО, так что если вам нужно будет установить его, вам придется загрузить его откуда-нибудь, прочитать мануал, и вероятно (если вам не повезло) скомпилировать его самостоятельно.

Есть еще один дистрибутив Linux, который, по-мнению автора, больше подходит для нужд PHP разработки. Его название - Linux Ubuntu. Ubuntu разрабатывается компанией Canonical Ltd. Linux Ubuntu имеет две редакции: Desktop edition и Server edition. Ubuntu Desktop - это дистрибутив, содержащий графическую среду, в то время как Ubuntu Server edition позволяет работать лишь в консольном терминале. Для целей разработки на PHP рекомендуется использовать Desktop edition.

Canonical обычно выпускает новую версию Linux Ubuntu каждые 6 месяцев, в апреле и в октябре, а также LTS (long term support) версию каждые 2 года. Например, на момент написания данного текста последняя версия - Ubuntu 16.04 Xenial Xerus LTS (выпущенная в апреле 2016).

Не-LTS выпуски имеют короткий период поддержки (около 9 месяцев), но также имеют новейшую версию PHP из коробки. С другой стороны, LTS выпуски имеют более длинный период поддержки (5 лет), но несколько устаревшую версию PHP из коробки.

Для целей PHP разработки автор бы порекомендовал использовать последний выпуск Ubuntu Desktop, потому что он имеет последнюю версию PHP. Недостаток использования такого выпуска - это то, что вам придется обновлять Linux каждые 9 месяцев (когда истекает период поддержки). Если вам не нравится перспектива обновления каждые 9 месяцев, выберите выпуск LTS.

Для справки, таблица A.1 перечисляет версии PHP, доступные для установки из репозитария в различных дистрибутивах Linux:

Таблица A.1. Доступные для установки версии PHP в различных выпусках Linux
Выпуск Linux Версия PHP
Linux Ubuntu 16.04 Xenial Xerus LTS 7.0
Linux Ubuntu 15.10 Wily Werewolf 5.6
Linux Ubuntu 15.04 Vivid Vervet 5.6
Linux Ubuntu 14.10 Utopic Unicorn 5.5
Linux Ubuntu 14.04 Trusty Tahr 5.5

Как вы можете увидеть из таблицы выше, для целей разработки на ZF3, вам нужно будет установить Ubuntu 15.04 или выше.

В процессе выбора между 32-битной и 64-битной версиями системы, помните, что 64-битная версия Linux Ubuntu будет иметь больше проблем с совместимостью, чем 32-битная версия. Недостаток поддержки драйверов также может вызвать проблемы на 64-битной платформе.

Установка Apache и PHP

В современных дистрибутивах Linux вы можете запросто загрузить и установить ПО из централизованного репозитария. Репозитарий содержит так называемые пакеты. Пакет имеет имя (например, php , apache2 ), а также версию.

В общем, вы можете установить пакет одной командой. Однако эта команда (и название пакета) могут различаться в разных дистрибутивах Linux. Например, чтобы загрузить и установить пакеты в Debian-дистрибутивах Linux (например Ubuntu Linux), вы используете Advanced Packaging Tool (APT). В дистрибутивах от Red Hat (например Fedora или CentOS) вы используете YUM (менеджер пакетов RPM). Ниже приводятся детальные инструкции для этих операционных систем.

Debian или Linux Ubuntu

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

Команды выше запускают APT и устанавливают новейшие обновления системных пакетов. Команда sudo (расшифровывается как "Super User DO") позволяет запускать другую команду, apt-get в нашем случае, как системный администратор (root). Вы обычно используете sudo , когда вам нужно повысить привилегии, чтобы установить пакет или редактировать какой-нибудь файл конфигурации.

Команда sudo может запросить у вас пароль. Когда она запросит пароль, введите пароль, с которым вы вошли в систему, и нажмите Enter.

Далее, введите следующие команды:

Команды выше могут запросить ваше разрешение, когда вы устанавливаете пакет. Рекомендуется ответить Yes (нажать "y" и затем нажать Enter).

Fedora, CentOS или Red Hat Linux

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

Команда выше запускает инструмент YUM и устанавливает новейшие обновления системных пакетов.

Далее, из командной строки запустите следующие команды:

Проверка установки веб-сервера

Корневая директория документов - это директория, где вы можете (по-умолчанию) хранить веб-файлы. Обычно корневая директория для документов имеет путь /var/www/html.

Чтобы удобно перемещаться по структуре директория и редактировать файлы, рекомендуется установить Midnight Commander (файл-менеджер и текстовый редактор). Чтобы установить Midnight Commander в Debian или Linux Ubuntu, запустите следующую команду:

sudo apt-get install mc

Следующая команда установит Midnight Commander в Fedora, CentOS или Red Hat Linux:

sudo yum install mc

После установки, запустите Midnight Commander командой mc . Вы также сможете редактировать текстовые файлы следующей командой:

mcedit /path/to/file

Если вам нужны административные привилегии, чтобы редактировать файл, припишите команду sudo к команде выше.

В файо phpinfo.php добавьте вызов PHP метода phpinfo() следующим образом:

Откройте файл в веб браузере. Стандартная страница с информацией о PHP должна появиться (см. рис. A.1 для примера).

Рис A.1. Информационная страница PHP

Рис A.1. Информационная страница PHP

Редактирование конфигурации PHP

В разных дистрибутивах Linux файлы конфигурации PHP могут находиться в разных путях. Чтобы редактировать файл конфигурации PHP в Debian или Linux Ubuntu, напечатайте следующее:

sudo mcedit /etc/php/7.0/apache2/php.ini

Запустите следующую команду, чтобы редактировать файл php.ini в Fedora, CentOS или Red Hat Linux:

sudo mcedit /etc/php.ini

Чтобы удобно искать внутри этого файла, нажмите F7 в окне редактора Midnight Commander и введите строку поиска (название параметра, который нужно найти).

Установите настройки часовой зоны (замените <your_time_zone> названием вашей часовой зоны, например, UTC или America/New_York ):

Установите параметры max_execution_time , upload_max_filesize и post_max_size , чтобы разрешить выгрузку на сервер файлов большого размера посредством POST. Например, установив для параметра upload_max_filesize значение 128M , вы разрешите выгрузку файлов размером до 128 мегабайт. Установив max_execution_time в нуль, вы разрешите PHP скрипту выполняться бесконечно долго.

Когда вы готовы, сохраните ваши изменения, нажав клавишу F2, а затем нажмите F10, чтобы выйти из редактора Midnight Commander.

Перезапуск Apache Web Server

sudo service apache2 restart

либо такой (в Fedora, CentOS или Red Hat):

Включение модуля mod_rewrite

Zend Framework 3 требует включенного модуля Apache mod_rewrite. Этот модуль используется для перезаписи запрашиваемых URL согласно некоторым правилам, перенаправляя пользователей сайта к другим URL.

В Debian или Ubuntu Linux

Для включения модуля mod_rewrite воспользуйтесь следующей командой:

Затем перезапустите веб-сервер Apache, чтобы применить изменения.

В Fedora, CentOS или Red Hat Linux

В этих дистрибутивах Linux mod_rewrite включен по умолчанию, так что никаких дополнительных действий не требуется.

Создание виртуального хоста Apache

Также Zend Framework 3 требует наличия виртуального хоста для вашего сайта. Термин "виртуальный хост" означает, что вы можете держать несколько веб-сайтов на одной машине.

Обратите внимание, что на данный момент вам не нужно создавать виртуальный хост, мы сделаем это в главе Zend Skeleton Application. Пока что вам нужно просто иметь представление о том, как создаются виртуальные хосты в различных дистрибутивах Linux.

В Debian или Ubuntu Linux

У вас есть образец виртуального хоста в /etc/apache2/sites-available/000-default.conf (см. ниже).

Вам нужно всего лишь изменить файл этого виртуального хоста и перезапустить Apache для применения изменений.

Вы также можете скопировать этот файл и создать другой виртуальный хост, если хотите, чтобы несколько веб-сайтов работали на одной машине. Например, чтобы создать файл виртуального хоста 001-vhost2.conf, напишите в командной строке следующее:

sudo cp 000-default.conf 001-vhost2.conf

В Fedora, CentOS или Red Hat Linux

Установка PHP-расширения XDebug

Чтобы иметь возможность отладки сайта, рекомендуем установить расширение XDebug. Это расширение позволяет заглянуть внутрь работающей программы, посмотреть переменные, переданные от клиента, пройтись по стеку вызовов и профилировать ваш PHP-код.

В Debian или Ubuntu Linux

Чтобы установить XDebug, воспользуйтесь следующей командой:

sudo apt-get install php-xdebug

Затем измените файл /etc/php/7.0/mods-available/xdebug.ini , добавив строчку:

sudo mcedit /etc/php/7.0/mods-available/xdebug.ini

Если вы планируете отлаживать ваш сайт с другого хоста, добавьте эти строки в конце файла:

Перезапустите сервер Apache для применения изменений. Затем откройте phpinfo.php в вашем браузере и найдите раздел XDebug (он должен выглядеть как на рисунке A.2)

Рисунок A.2. Данные XDebug

Рисунок A.2. Данные XDebug

В Fedora, CentOS или Red Hat Linux

В этих дистрибутивах Linux установка XDebug немного сложнее. Сначала установите пакет Xdebug следующей командой:

yum install php-pecl-xdebug

После установки нужно создать файл xdebug.ini в каталоге /etc/php.d:

В этом файле добавьте такую строчку:

Измените файл php.ini:

и, если вы планируете отладку с другого хоста, добавьте эти строки:

Перезапустите веб-сервев Apache для применения изменений. Затем проверьте phpinfo.php в вашем браузере. Если установка прошла успешно, вы увидите информацию, касающуюся XDebug.

Установка сервера баз данных MySQL

MySQL - это свободная реляционная система управления базами данных (СУБД), разрабатываемая компанией Oracle. MySQL является самой популярной СУБД среди используемых с PHP. В этой книге мы будем использовать именно ее.

Debian или Linux Ubuntu

Чтобы установить СУБД MySQL, наберите:

Команды выше установят соответственно серверный компонент MySQL, ее клиентный компонент и расширение MYSQL для PHP.

Fedora, CentOS или Red Hat Linux

Чтобы установить СУБД MySQL, наберите:

Команды выше установят соответственно серверный компонент MySQL, ее клиентный компонент и расширение MYSQL для PHP.

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

Настройка сервера БД MySQL

Во время установки сервера MySQL создается пользователь root. По умолчанию пользователь root не имеет пароля, вам нужно установить его вручную. Вам понадобится этот пароль для создания других пользователей БД MySQL.

Для подключения к серверу MySQL используйте следующую команду:

Вы увидите командную строку MySQL. Наберите в ней следующую команду и нажмите Enter (в команде ниже замените <your_password> выбранным вами паролем):

Query OK, 0 rows affected (0.00 sec)

Теперь необходимо создать новую БД, которая будет хранить таблицы. Для этого наберите:

Эта команда также создает пустую схему, которую мы заполним позднее.

Далее мы хотим создать еще одного пользователя БД с именем test_user , который будет использоваться сайтом для соединения с базой. Чтобы создать пользователя, воспользуйтесь следующей командой (не забудьте заменить <insert_your_password> выбранным паролем):

Эта команда создает пользователя 'test_user' и наделяет его всеми привилегиями на БД 'test_db'.

Эта инструкция расскажет вам о том, как установить одну из самых часто используемых связок в веб-разработке: LAMP (Linux, Apache, MySQL/MariaDB и PHP/PhpMyAdmin). Кроме подробной пошаговой инструкции по настройке сервера вам также будут представлены несколько замечательных возможностей (быстрых и грязных Bash скриптов), которые отсутствуют в системе Arch Linux, но которые могут облегчить работу по созданию множества виртуальных хостов, генерации SSL сертификатов и ключей, необходимых для безопасных транзакций HTTS.

Шаг 1: Установка базового программного обеспечения LAMP

1. Обновим нашу систему с помощью утилиты pacman.

2. Когда процесс обновления завершиться, установим LAMP по частям, начнём с установки веб-сервера Apache Web Server и запустим/проверим демон каждого серверного процесса.


3. Установим динамический скриптовый язык на стороне сервера PHP и его модуль для Apache.

4. Последним шагом установим систему управления базами данных MySQL, выберите вариант 1 (MariaDB) – форк от сообщества.

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


Не запутайтесь. Мы устанавливаем MariaDB, но она настолько совместима с MySQL, что служба запускается аналогичной командой. Аналогичной же командой производится подключение к БД. Вы можете установить оригинальную MySQL из AUR – если это кому-то интересно, то пишите в комментариях и материал будет добавлен.

Теперь мы имеем установленное базовое программное обеспечение LAMP с настройками по умолчанию.

Шаг 2: Обезопасим СУБД MySQL

5. Следующим шагом обезопасим СУБД MySQL настроив пароль для аккаунта root, удалив анонимные пользовательские аккаунты, удалив тестовую базу данных и отключив удалённый вход для пользователя root (когда попросят ввести текущий пароль, то просто нажмите клавишу [Enter] затем введите два раза новый пароль, на все вопросы выбирайте ответы по умолчанию, т.е. Да).

6. Проверьте подключение к базе данных MySQL следующей командой, для выхода наберите quit или exit.

Шаг 3: Модификация главного конфигурационного файла Apache

Для начала откройте конфигурационный файл Apache вашим любимым текстовым редактором.

И в низ этого файла добавьте следующие две строки.

После того, как Apache был проинструктирован этими двумя директивами, создайте необходимые системные директории следующими командами.

Путь sites-available содержит файлы настроек всех виртуальных хостов, которые не активированы на Apache, но следующий скрипт Bash будет использовать эту директорию для связи и задействования веб-сайтов, которые там расположены.

Шаг 4: Создание команд Apache a2eniste и a2diste

9. Теперь время создать скрипты Apache a2ensite и a2dissite, которые будут выполнять команды по включению и отключению файлов настроек виртуальных хостов. Наберите команду cd для возвращения в вашу домашнюю директорию и создайте a2eniste и a2dissite используя ваш любимый редактор.

Добавьте следующие содержимое в этот файл.

Теперь создайте файл баш скрипта a2dissite.

Добавьте следующее содержание.

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

10. Установка ServerName для подавления предупреждения

Откройте главный конфигурационный файл текстовым редактором:

Внутри, в конце файла добавьте директиву ServerName, указывающую на ваше основное доменное имя. Если у вас нет связанного с вашим сервером доменного имени, вы можете использовать внешний IP сервера:

Если вы забыли внешний IP сервера, то проверить его можно так:

Для локального веб-сервера можно сделать следующую запись:

Когда закончите, сохраните и закройте файл.

Для того, чтобы изменения вступили в силу, перезапустите Apache:

Шаг 5: Создание виртуальных хостов в Apache

Использование путей sites-available и sites-enable, здорово упрощает работу по включению и отключению веб-сайтов и также сохраняет конфигурационные файлы всех веб-сайтов в независимости от того, активированы они или нет.

Здесь добавьте следующие директивы Apache.


Шаг 6: Включение SSL с виртуальным хостингом на LAMP (опционально)

Этот шаг можно пропустить. На локальном сервере (localhost) этот шаг рекомендуется пропустить.

Но для упрощения, мы собираемся создать новый модульный файл для SSL в директории mods-enabled, главный конфигурационный файл Apache оставить нетронутым. Создайте следующий файл для модуля SSL и добавьте следующее содержимое.

15. Теперь создайте файл виртуального хоста, который указывает на то же самое имя localhost, но использует в это же время конфигурационный файл сервера SSL и слега измените его имя на то, которое бы напоминало вам, что он здесь для localhost с SSL.

Добавьте следующее содержимое в этот файл.

Кроме директив Port и ServerName, другие важные директивы это указание на файл сертификата SSL и файл ключей SSL, которые ещё не созданы, поэтому не перезапускайте веб-сервер Apache или вы получите ошибки.

16. Для создания требуемых файлов сертификата SSL установите пакет OpenSSL набрав нижеприведённую команду.

Добавьте в этот файл следующий контент, сохраните его и сделайте исполнимым.

Если вы хотите, чтобы этот скрипт был доступен во всей системе по короткой команде, то сделайте так.

18. Теперь сгенерируйте ваш сертификат и ключи запустив этот скрипт. Предоставьте ваши SSL опции и не забудьте чтобы имя сертификата и общее имя соответствовали вашему официальному имени домена (FQDN).

После того, как сертификат был создан, не забудьте изменить ваши настройки виртуального хоста для SSL: путь до сертификата и ключа, чтобы они соответствовали имени этого сертификата.

Для соответствия вышеприведённым настройкам, переименуем файлы сертификатов:

19. Последний шаг – это активация нового виртуального хоста SSL и перезапуск сервера, чтобы изменения вступили в силу.

Шаг 7: Включение PHP 7 на Apache

20. По умолчанию сервер Apache в Arch Linux обслуживает только содержимое статичных HTML файлов без поддержки динамических скриптовых языков. Для активации PHP начните с открытия главного конфигурационного файла Apache, найдите и закомментируйте следующую строку LoadModule (php-apache не работает с mod_mpm_event в Arch Linux).

Для поиска используйте /.

Найдите и раскомментируйте строку:

Добавьте в точности следующий контент (вы должны использовать mod_mpm_prefork).

Чтобы подключить PHP к Apache создайте символьную ссылку:


Вот и оно! Если ваш результат похож на картинку выше, значит PHP работает на Apache и теперь вы можете заниматься разработкой веб-приложений или использовать готовые решения вроде WordPress.

Шаг 8: Установка и настройка PhpMyAdmin

23. Если вы не мастер по командной строке MySQL и хотите простой удалённый доступ к СУБД MySQL через веб-интерфейс, тогда вам нужен установленный пакет phpMyAdmin на ваш Arch.

24. После того, как пакеты были установлены вам нужно включить некоторые расширения PHP (mysqli.so) и вы также можете включить другие модули, которые необходимы для будущих платформ CMS, к примеру openssl.so, imap.so или iconv.so и т.д..

Найдите и раскомментируйте следующие расширения.

В этом же файле найдите строку

если она закоментирована, то раскоментируйте её, чтобы получилось

28. Включение дополнительных возможностей phpMyAdmin. Это необязательно, но для получения дополнительной функциональности и отсутствия предупреждений, добавьте в файл /etc/webapps/phpmyadmin/config.inc.php строку

И импортируйте файл /usr/share/webapps/phpMyAdmin/sql/create_tables.sql.

Шаг 9: Включение LAMP при загрузке

29. Если вы хотите, чтобы стек LAMP загружался автоматически после перезагрузки системы, то выполните следующую команду.

Здесь были описаны главные конфигурационные настройки LAMP, которые нужны для превращения вашей системы на Arch Linux в простую, но мощную и крепкую веб-платформу с самым последним серверным программным обеспечением для маленький некритичных окружений. Но для использования в рабочем окружении вам нужно продолжить изучение опций и особенностей обслуживания веб-серверов, уделять особое внимание обновлению пакетов и делать регулярное резервное копирование образов для быстрого восстановления системы в случае аварий.

Этот раздел описывает установку PHP c Apache 2.x на Unix системах.

Мы не рекомендуем использовать потоковый MPM в промышленной среде вместе с Apache 2. Вместо этого, используйте prefork MPM, используемый по умолчанию в Apache 2.0 и 2.2. Подробную информацию по этому вопросу вы можете найти в соответствующем разделе FAQ Apache2 и потоковый MPM

Самым авторитетным источником информации по Apache 2.x является » документация Apache. Более подробная информация о настройках при установке может быть найдена там.

Аналогично, скачайте и распакуйте исходные коды PHP:

Скомпилируйте и установите Apache. Более подробную информацию по сборке Apache смотрите в его документации.

Теперь ваш Apache 2.x.NN доступен как /usr/local/apache2, сконфигурирован с поддержкой подгружаемых модулей и стандартным мульти-процессным модулем (MPM) prefork. Чтобы протестировать правильность установки используйте стандартную процедуру запуска Apache, такую как:

Затем остановите сервер, чтобы сконфигурировать и установить PHP:

Теперь мы сконфигурируем и соберём PHP. Здесь вы можете настроить установку PHP с помощью различных опций, указывающих, например, какие модули нужно включить. Просмотрите вывод команды ./configure --help для получения полного списка параметров конфигурации. В нашем примере мы сконфигурируем PHP очень просто - с поддержкой Apache и MySQL.

Если вы собирали Apache из исходников, как было описано выше, то используйте путь до apxs как указано в следующем примере, иначе, корректируйте этот путь соответствующим вашей установке образом. Учтите также, что в некоторых дистрибутивах apxs может иметь имя apxs2.

Если вы решите изменить параметры конфигурации после установки, вам надо будет повторить только три последних шага (configure, make, make install). Вам нужно будет только перезапустить Apache, чтобы новые модули подгрузились и начали работать. Перекомпиляция Apache для этого не требуется.

Настройка вашего php.ini

Вероятно, вы захотите изменить некоторые настройки в php.ini. Если вы предпочитаете держать файл php.ini в другом месте, используйте параметр --with-config-file-path=/some/path в шаге 5.

Если же вы используете php.ini-production, прочитайте его, чтобы знать какие изменения в поведении PHP это повлечёт.

Теперь следует сконфигурировать Apache, чтобы он передавал файлы с некоторыми расширениями на обработку модулю PHP. В нашем примере сделаем это для .php файлов. Вместо обычного использования директивы Apache AddType, мы хотим избежать интерпретации как PHP потенциально опасных загрузок и файлов наподобие exploit.php.jpg. С помощью данного примера можно указать для интерпретации PHP любые расширения, просто добавив их в конец списка. Продемонстрируем это на расширении .php.

Или, если мы хотим добавить расширения .php, .php2, .php3, .php4, .php5, .php6 и .phtml, это можно записать так:

Чтобы PHP отображал содержимое файлов .phps с подсветкой синтаксиса, нужно внести соответствующую директиву

Можно использовать mod_rewrite для отображения любого .php файла с подсветкой синтаксиса, без нужды его переименования в .phps:

Данный фильтр, отображающий исходный код, должен быть отключён в промышленном использовании, так как он может открыть конфиденциальную или другую важную информацию, включённую в исходный код.

Используйте стандартную процедуру запуска Apache, например:

Если вы следовали инструкциям выше, то на данном этапе должны иметь запущенный веб-сервер Apache2 с поддержкой PHP, как модуля SAPI . Конечно, для PHP и Apache доступно гораздо больше параметров конфигурации. Используйте ./configure --help в соответствующей папке с исходными кодами для получения полного списка параметров конфигурации.

Если вы хотите собрать многопоточную версию Apache, то при сборке вам следует указать модуль MPM worker вместо стандартного модуля MPM prefork . Чтобы сделать это, нужно добавить следующий аргумент к ./configure на шаге 3:

Не следует бездумно использовать эту настройку, используйте её только если вы понимаете все последствия этого решения. Документация Apache по » модулям MPM значительно глубже раскрывает эту тему.

Замечание:

Если вы хотите использовать зависимый контент (content negotiation), прочитайте Apache MultiViews FAQ.

Замечание:

Для сборки многопоточной версии Apache, ваша система должна поддерживать потоки. Это так же подразумевает сборку PHP c экспериментальной поддержкой Zend Thread Safety (ZTS). И, как следствие, не все модули PHP смогут работать. Рекомендуется установка Apache с модулем MPM по умолчанию - prefork .

User Contributed Notes 15 notes

When I upgrade to apache 2.2, this:

. does not worked for me, so I did this:

Another interesting point with Apache 2.2 is following.
Let suppose we installed PHP as module. But for some directory, we need to use PHP as CGI (probably because of custom configuration). This can be done using:

<FilesMatch "\.(php*|phtm|phtml|asp|aspx)$">
SetHandler none
</FilesMatch>

Note type must be different than "application/x-httpd-php" and also you need to deactivate the handler on sertain extention. You can do mixed configuration:

<FilesMatch "\.(php)$">
SetHandler none
</FilesMatch>

in such case files like *.php5 and so on will be parsed via module, but *.php will go to php-huge executable.

Solution for fedora is yum install mysql-devel. Then set --with-mysql=/usr/include/mysql/
monguesto

during the make process should u receive an error declaring ext/ctype/ctype.lo (or another file) is truncated then you need to 'make clean' prior to a healthy 'make' and 'make install.'

looking into your ext/ directory you may find the offensive file to be 1 byte long.

On 64-bit Fedora systems (I'm using Fedora 14), configuring PHP to use the MySQL libraries installed as part of the distribution gives the following error if you follow the default instructions in this manual.

Cannot find libmysqlclient under /usr

Modifying he following invocation of configure as follows:

./configure --with-apxs2=/path/to/apxs --with-libdir=lib64 --with-mysql

Note the addition of --with-libdir=lib64
This points the configure script to look for 64-bit mysqlclient libraries.

I have successfully installed Apache 2.2.11 and PHP 5.2.8 under Red Hat 9.0 on a Pentium 166 with 32 MB of RAM.

While I used RH9, the worst possible case, these notes are probably good for RH-based distributions too (Red Hat Enterprise, Fedora, CentOS. )

If you want to install MySQL, it needs to be installed before PHP because PHP requires some libraries be available.

One think important when picking up a binary distribution of MySQL is to download all four packages: MySQL-server, MySQL-devel, MySQL-client and MySQL-shared. Note: The MySQL was bundled with PHP 4 but is not anymore in PHP 5.

Then you need to install Apache before PHP, because again PHP needs some libraries be available. I installed Apache 2 from source, using the very last version available, which is 2.2.11.

I installed PHP 5.2.8 from source. Here, I had a number of problems, but none which I could not resolve easily, some of them with a little help from different forums I found through Google.

Rembember: When it says you need a package named xyz and you notice there is also one named xyz-devel, grab it.

You already have glibc and glibc-common installed, but you need to get glibc-devel and glibc-kernheaders. Make sure to match glibc's version (rpm -q glibc). Note: When it says kernel-header is a required dependency, that's glibc-kernheader (not kernel-source). You will also need binutils (no need to match the version), and gcc and cpp (version must match).

You need zlib-devel (zlib is probably already installed, match the version you have).

If you install the GD extension, the actual library is already bundled with PHP 5 (use that one, they have done some changes in there, so don't upgrade), but you will need to install libpng and libpng-devel (match version, or disable in configure if you don't want) and libjpeg (no -devel with that one).

Hope my post is useful to someone. Please, share your experience when compiling/installing for your particular platform and setup. Remember how hard it's been for you the very first time. I confess, my very first server installation took me nearly a week and I was glad others helped me.

"multiviews Options Indexes FollowSymLinks MultiViews"

the directives u can set it to root directory so now when u type pn test it will search in precendence for test.php, test.html if any .

its working for me with apache2.0.47 and php 4.3.9 on solaris

Install issues on Redhat, specifically RHEL4 with php4 already installed:

Using Apache2 & PHP5 work perfectly fine & safe together.
- all core modules are safe in Zend Engine 2
- third-party-libraries should be avoided
- semaphores and shared memory enables you to ensure yourself that your application/website is thread-safe also with non-thread-safe PHP modules!

Building PHP 5.x with Apache2 on SuSE Professional 9.1/9.2

SuSE uses a rather fragmented set of Apache configuration files stored in /etc/apache2/. When you configure PHP 5.x with:

$ ./configure --with-apxs2=/usr/sbin/apxs2
$ make

everything builds just fine; but when you issue:
$ su -c "make install"

the unconventional Apache conf file layout confuses the install-sapi section of the Makefile and the process halts with the following error:

At this point only the PHP SAPI library has been copied into place; the rest of the files (like PEAR scripts, PHP-CLI, etc) have not been installed. But never fear! You can overcome this problem with the following steps:

1. Edit Makefile and change the following line to remove "install-sapi":
install_targets = install-sapi install-cli install-pear install-build install-headers install-programs

2. Issue the make install command again:
$ su -c "make install"

3. Add the PHP module & type instructions to the Apache configuration. As root, create a new file, /etc/apache2/conf.d/php5.conf that contains the following lines:

--- And that's it. Everything else is just as the documentation suggests it should be.

PHP 5.1.4 INSTALLATION on Solaris 9 (Sparc)

Solaris9 Packages Installed:

Install apr-1.2.2 and aprutil-1.2.2 packages

В данной статье будет дана пошаговая инструкция, как настроить веб-окружение на сервере под управлением Linux. Для начала, необходимо понимать, что типовой веб сервер состоит из взаимодействующих между собой компонентов, а именно:

Также для работы с сайтом необходима система управления контентом (CMS), веб интерфейс для управления базами данных и возможность доступа по FTP.

Рассмотрим процесс установки и настройки распространенной связки Apache-PHP-MySQL(MariaDB) в операционной системе Linux. Дополнительно будут установлены ftp-сервер vsftpd, веб-интерфейс для управления базой данных phpMyAdmin и система управления контентом Wordpress.

Для начала работы, следует заказать VPS или выделенный сервер. В данной статье примеры выполнены на виртуальном сервере со статическим публичным IP-адресом под управлением Ubuntu Server 18.04. Команды выполняются от имени суперпользователя.

1. Установка

apt install apache2

Установка и настрйока HTTP-сервера

2. Создание тестовой страницы

По умолчанию корневым каталогом для размещения сайта является директория “/var/www/html”, именно там находится страница приветствия. Создадим отдельную директорию “/var/www/sites” для размещения виртуальных хостов и вложенную папку “/var/www/sites/site1” с индексной страницей тестового сайта.

cd /var/www/
mkdir -p sites/site1
echo "<H1>Welcome</H1>" > sites/site1/index.html

В результате файл “/var/www/sites/site1/index.html” будет содержать одну html-строку:

3. Конфигурация Apache-сервера

Конфигурационные файлы сайтов находятся в каталоге “/etc/apache2/sites-available/”. Создадим конфигурационный файл для нового виртуального хоста взяв за основу конфигурацию по умолчанию из файла “000-default.conf”

cd /etc/apache2/sites-available/
cp 000-default.conf site1.conf

Откроем файл “site1.conf” и изменим параметр “DocumentRoot”. В качестве значения нужно указать путь к новому сайту, в нашем случае это “/var/www/sites/site1”

Настрйока и конфигурация Apache-сервера

На данном этапе нам не требуется настройка одновременной работы нескольких сайтов, поэтому отключим сайт по умолчанию и включим новый сайт. Для применения изменений перезагружаем конфигурацию сервера.

a2dissite 000-default
a2ensite site1
systemctl reload apache2

Настройка HTTP-сервера

Настройка FTP-сервера

1. Установка

Устанавливаем ftp-сервер и дополнительный пакет “db-util”, который потребуется для настройки виртуальных пользователей.

apt install vsftpd db-util

2. Создание локальной учетной записи

Сервер vsftpd позволяет очень гибко настраивать права доступа. Для решения наших задач ftp-пользователям необходимо обеспечить следующие возможности:

  • полный доступ к содержимому директории “/var/www/sites/”;
  • невозможность выхода за пределы директории “/var/www/”;
  • подключение с использованием виртуальной учетной записи;

Создадим локальную учетную запись “virtual” без возможности входа в систему, с домашней директорией “/var/www/”. Эта учетная запись будет использоваться для подключения виртуальных ftp-пользователей.

useradd -d /var/www virtual

По умолчанию, владельцем директории “/var/www” является “root”. Для того, того, чтобы ftp-пользователи могли изменять содержимое сайтов, изменим владельца каталога “/var/www/sites/”, включая вложенные папки на “virtual”.

chown -R virtual:root /var/www/sites

В результате изменения прав, пользователь “virtual” сможет просматривать содержимое каталога “/var/www/” и записывать во вложенный каталог “/var/www/sites/”

3. Конфигурация

Основная конфигурация хранится в файле “/etc/vsftpd.conf”, приводим его к следующему виду:

4. Создание базы данных

База данных необходима для хранения виртуальных учетных записей.

Предварительно создадим в домашнем каталоге простой текстовый файл “users.txt” и запишем логины и пароли виртуальных пользователей в чередующиеся строки. Например нам нужен виртуальный пользователь с логином “ftp” и паролем “Qwe123”, тогда содержимое файла будет таким:

Создаем базу данных

db_load -T -t hash -f

Меняем стандартное содержимое PAM файла “/etc/pam.d/vsftpd” на следующие строки.

auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login

Обратите внимание, что в различных дистрибутивах расположение библиотеки “pam_userdb.so” может отличаться, при необходимости путь к файлу нужно скорректировать.

Для применения изменений перезагружаем vsftpd сервер.

systemctl restart vsftpd

Настройка FTP-сервера завершена.

Данные для подключения:

  • ftp://[ip_адрес_сервера]
  • Логин: ftp
  • Пароль: Qwe123

Настройка PHP-сервера

1. Установка

На текущий момент последней стабильной версией PHP является php 7.4.5, которая отсутствует в официальных репозиториях Ubuntu. Подключим сторонний репозиторий и установим последнюю версию PHP.

apt update
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
apt install php7.4

2. Проверка

Для того, чтобы PHP код мог быть исполнен, файл веб страницы должен иметь расширение “.php”. Переименовываем тестовою страницу

cd /var/www/sites/site1/
mv index.html index.php

Добавляем в файл “/var/www/sites/site1/index.php” строку php-кода. В результате содержимое файла будет таким:

Сохраняем изменения и проверяем результат в браузере.

Настройка PHP-сервера

Если вы видите результат работы функции “phpinfo()”, значит интерпретатор PHP работает корректно. Приступаем к следующему этапу.

Настройка MySQL (MariaDB)

1. Установка

Устанавливаем MariaDB и PHP-модуль для работы с MySQL, после завершения установки перезагружаем Apache

apt install mariadb-server php-mysql
systemctl restart apache2

Для проверки обновим тестовую страницу и в таблице с конфигурацией PHP и перейдем к разделу PDO. Наличие секции “PDO_mysql” говорит о корректной установке драйвера для работой с базой данных Mysql.

Настройка и установка MySQL на сервер

Для дальнейшей работы необходимо выполнить первоначальную настройку безопасности MariaDB, во время которой для пользователя “root” устанавливается пароль, запрещается удаленный вход и удаляются гостевые учетные записи.

На первом шаге необходимо ввести пароль пользователя "root" для входа в СУБД или нажать Enter, если пароль не задан. Так как после установки учетная запись "root" не имеет пароля, нажимаем “Enter”.

Обратите внимание, что в MariaDB существуют собственные учетные записи, которые не имеют отношения к учетным записям операционной системы. Речь идет о пользователе "root" в MariaDB.

 MySQL: Создание пользователя и установка пароля

Далее конфигуратор предложит задать пароль для пользователя root, нажимаем “y” для подтверждения и вводим новый пароль, в нашем случае “Qwe123”

 MySQL: установка пароля и доступа пользователей

На все последующие запросы просто нажимаем “y” до окончания настройки.

Данные для входа в MariaDB:

Настройка phpMyAdmin

1. Установка

Устанавливаем обязательное PHP-расширение mbstring.

apt install php-mbstring

В официальном репозитории размещена устаревшая версия phpMyAdmin, поэтому выполним установку в ручном режиме.

Копируем архив на сервер в каталог “/var/www/sites/” используя любой ftp-клиент.

Распаковываем архив, и для удобства, переименовываем извлеченную папку в “phpMyAdmin”. Для распаковки zip-архива предварительно установим утилиту “unzip”. После распаковки архив можно удалить.

apt install unzip
cd /var/www/sites/
unzip phpMyAdmin-5.0.2-all-languages.zip
mv phpMyAdmin-5.0.2-all-languages phpMyAdmin
rm phpMyAdmin-5.0.2-all-languages.zip

Создаем папку “/var/www/sites/phpMyAdmin/tmp” для хранения временных файлов с полными доступом для всех. Если этого не сделать phpMyAdmin сообщит об отсутствии доступа в временной папке.

cd /var/www/sites/phpMyAdmin/
mkdir tmp
chmod 777 tmp

2. Создание псевдонима

Так как phpMyAdmin не является отдельным виртуальным хостом и находится за пределами корневой директории сайта, настроим псевдоним для возможности доступа.

Открываем файл “/etc/apache2/mods-available/alias.conf” и вставляем строку

Alias /pma “/var/www/sites/phpMyAdmin"

<IfModule alias_module>
</IfModule>

Создание псевдонима в phpMyAdmin

Перезагружаем конфигурацию Apache для применения изменений.

systemctl reload apache2

3. Подготовка базы данных

Так как при первоначальной настройке MariaDB мы запретили использование учетной записи root для удаленного подключения, необходимо создать новую учетную запись с полными правами, которая будет использоваться для входа в phpMyAdmin.

Кроме того, для работы дополнительных функций phpMyAdmin необходима служебная база данных и учетная запись для доступа к ней.

Создадим учетные записи

mariadb -u root -p

GRANT ALL PRIVILEGES ON *.* TO 'pma'@'localhost' IDENTIFIED BY 'Qwe123' WITH GRANT OPTION;

GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO 'pmaservice'@'localhost' IDENTIFIED BY 'Qwe123' WITH grant option;

Обратите внимание, что имя базы данных во втором запросе заключено в обратные апострофы: “… ON `phpmyadmin`.* TO 'pma'@'localhost' IDENTIFIED BY …”,

В результате в MariaDB будет создано две учетные записи:

  1. Логин: pma, пароль: Qwe123
    Учетная запись имеет полные права и будет использоваться для входа в phpMyAdmin
  2. Логин: pmaservice, пароль:Qwe123
    Служебная учетная запись необходимая для работы дополнительных функций.

На следующем шаге эти учетные данные должны быть указаны в конфигурационном файле “config.inc.php”

Далее необходимо импортировать базу данных из файла “phpMyAdmin/sql/create_tables.sql”. Выполним импорт средствами phpMyAdmin.

Вводим логин “pma”, пароль “Qwe123”

Переходим на вкладку “Импорт”, нажимаем кнопку “Выберите файл” и выбираем файл ”sql/create_tables.sql” в корневой директории phpMyAdmin. Предполагается что на локальном компьютере существует папка с файлами “phpMyAdmin”, если необходимо, распакуйте архив.

Настройка phpmyadmin

4. Конфигурация

Копируем файл конфигурации из шаблона

cd /var/www/sites/phpMyAdmin/
cp config.sample.inc.php config.inc.php

Открываем конфигурационный файл “/var/www/sites/phpMyAdmin/config.inc.php” и вносим следующие изменения:

  1. Задаем произвольное значение длиной 32 символа для параметра “$cfg['blowfish_secret']”. Можно воспользоваться любым генератором паролей.
  2. Снимаем комментарии со всех строк раздела “phpMyAdmin configuration storage settings” и указываем для параметров “controluser” и “controlpass” логин и пароль служебной учетной записи MariaDB, созданной на предыдущем шаге. В нашем случае логин - pmaservice, пароль - Qwe123

Сохраняем изменения. Настройка завершена.

Данные для входа в phpMyadmin:

Установка и настройка WordPress на сервер Linux

1. Размещение файлов дистрибутива WP

Установка Wordpress на сервер: скачиваем дистрибутив WP

Установка Wordpress на сервер: скачиваем дистрибутив WP

Загружаем архив на сервер в каталог “/var/www/sites/” и распаковываем, файлы будут извлечены в папку “wordpress”.

Копируем содержимое папки “/var/www/sites/wordpress/” в корневую директорию сайта “/var/www/sites/site1/”

Так как копирование файлов выполнялось из консоли с root-правами еще раз изменяем владельца каталога “/var/www/sites/”, включая содержимое на virtual. Это нужно для восстановления полного доступа при подключении через ftp-клиент.

cd /var/www/sites/
tar -xzvf wordpress-5.4-ru_RU.tar.gz
cp -R wordpress/* site1/
chown -R virtual:root /var/www/sites

2. Создание базы данных для WordPress

Создание базы данных для WordPress

Выделяем в левой части окна созданную БД и нажимаем кнопку “Привилегии”

Создание базы данных для WordPress

Далее нажимаем “Добавить учетную запись пользователя”.

Добавляем учетную запись пользователя в базе данных для WordPress

3. Конфигурация WP на сервере под Linux

Переходим в корневую директорию сайта и копируем из шаблона конфигурационный файл.

cd /var/www/sites/site1/
cp wp-config-sample.php wp-config.php

Открываем файл “wp-config.php” и вводим параметры подключения к базе данных, созданной на предыдущем шаге и сохраняем изменения.

Настройка базы данных для WordPress

4. Установка CMS WordPress

Заполняем предложенные поля и нажимаем “Установить WordPress” Имя пользователя и пароль указываем произвольные, в нашем случае логин - wpadmin, пароль - Qwe123

Читайте также: