Статьи

Включение пользовательских серверных модулей Apache для сайтов PHP

Чтобы удовлетворить все требования вашего PHP-приложения, иногда вам нужно добавлять пользовательские модули. Модульная архитектура является одной из основных причин глобальной популярности сервера Apache. Большинство веб-сайтов работают на этом сервере, и наша статистика подтверждает этот факт. Такая архитектура позволяет легко расширять ее с помощью дополнительных функций, сторонних надстроек и пользовательских модификаций. Конечно, новый модуль не всегда является правильным решением для каждой проблемы. Если вы уверены, что это единственное решение для вашего PHP-приложения, архитектура Apache разработана таким образом, что это не должно быть сложной задачей. Сегодня мы проиллюстрируем ключевые моменты архитектуры модуля Apache и покажем, как включить их в Jelastic ZEROCodeChange PaaS .

Примечание. Модули Apache, установленные в Jelastic Cloud по умолчанию, можно найти в этом списке

Создать среду

1. Прежде всего войдите в свою учетную запись Jelastic и нажмите кнопку «  Создать среду»  в верхнем левом углу панели инструментов.

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

Среда с сервером Apache для сайтов PHP

Через несколько секунд ваша среда будет доступна с панели управления Jelastic.

Серверная среда Apache

Создайте свой серверный модуль Apache

1.  Загрузите  Apache  httpd  из  apxs  той же версии, что и ваш сервер Apache. В нашем случае у нас есть Apache 2.2.15, поэтому мы будем загружать и устанавливать  httpd 2.2.15.

2.  Загрузите  исходный код требуемого  модуля  в списке модулей Apache. В этом примере мы будем использовать развлекательный модуль с именем mod_pony .

3. Следующим шагом является компиляция вашего модуля Apache. Вот как мы скомпилировали наш  модуль mod_pony  :

apxs -i -a -c mod_pony.c
/usr/lib64/apr-1/build/libtool --silent --mode=compile gcc -prefer-pic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wformat-security -fno-strict-aliasing  -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/include/httpd  -I/usr/include/apr-1   -I/usr/include/apr-1   -c -o mod_pony.lo mod_pony.c && touch mod_pony.slo
/usr/lib64/apr-1/build/libtool --silent --mode=link gcc -o mod_pony.la  -rpath /usr/lib64/httpd/modules -module -avoid-version    mod_pony.lo
/usr/lib64/httpd/build/instdso.sh SH_LIBTOOL='/usr/lib64/apr-1/build/libtool' mod_pony.la /usr/lib64/httpd/modules
/usr/lib64/apr-1/build/libtool --mode=install cp mod_pony.la /usr/lib64/httpd/modules/
libtool: install: cp .libs/mod_pony.so /usr/lib64/httpd/modules/mod_pony.so
libtool: install: cp .libs/mod_pony.lai /usr/lib64/httpd/modules/mod_pony.la
libtool: install: cp .libs/mod_pony.a /usr/lib64/httpd/modules/mod_pony.a
libtool: install: chmod 644 /usr/lib64/httpd/modules/mod_pony.a
libtool: install: ranlib /usr/lib64/httpd/modules/mod_pony.a
libtool: finish: PATH="/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/sbin" ldconfig -n /usr/lib64/httpd/modules
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/lib64/httpd/modules
 
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'
 
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/lib64/httpd/modules/mod_pony.so
[activating module `pony' in /etc/httpd/conf/httpd.conf]

4. Наконец, вы получите  .so  файл вашего модуля Apache. Мы получили   файл mod_pony.so со следующим путем: /usr/lib64/httpd/modules/mod_pony.so  .

Загрузите и настройте свой модуль

1. Вернитесь в свою среду Jelastic, которую вы создали ранее, и нажмите   кнопку Config для сервера Apache.

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

2. Затем загрузите ваш .so  файл в   папку модулей .

так загрузка файла

3. Перейдите в   папку conf и внесите исправления в   файл httpd , добавив строку LoadModule в следующем формате:

LoadModule {имя-модуля} _module /usr/lib64/php/modules/ndomfile-name отпуска.so

Пример: 

LoadModule pony_module /usr/lib64/php/modules/mod_pony.so

Httpd Редактирование файлов

4. Укажите настройки, необходимые для вашего модуля.

Например, для дальнейшей настройки  модуля mod_pony нам нужно создать   файл .htaccess внутри каталога  webroot> ROOT  и указать  местоположение, которое сопоставляется с обработчиком:

<Files pony>
     SetHandler pony
</Files>

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

Не забудьте сохранить настройки!

5. Перезапустите сервер Apache, чтобы включить модуль Apache.

6. Убедитесь, что ваш модуль Apache работает правильно. В нашем случае у нас есть изображение пони.

Серверный модуль Apache

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