Чтобы удовлетворить все требования вашего PHP-приложения, иногда вам нужно добавлять пользовательские модули. Модульная архитектура является одной из основных причин глобальной популярности сервера Apache. Большинство веб-сайтов работают на этом сервере, и наша статистика подтверждает этот факт. Такая архитектура позволяет легко расширять ее с помощью дополнительных функций, сторонних надстроек и пользовательских модификаций. Конечно, новый модуль не всегда является правильным решением для каждой проблемы. Если вы уверены, что это единственное решение для вашего PHP-приложения, архитектура Apache разработана таким образом, что это не должно быть сложной задачей. Сегодня мы проиллюстрируем ключевые моменты архитектуры модуля Apache и покажем, как включить их в Jelastic ZEROCodeChange PaaS .
Примечание. Модули Apache, установленные в Jelastic Cloud по умолчанию, можно найти в этом списке .
Создать среду
1. Прежде всего войдите в свою учетную запись Jelastic и нажмите кнопку « Создать среду» в верхнем левом углу панели инструментов.
2. В открывшемся диалоговом окне перейдите на вкладку PHP , выберите Apache в качестве сервера приложений и укажите количество кластеров, в которых нуждается ваше приложение. Затем введите имя для своей среды и подтвердите создание среды.
Через несколько секунд ваша среда будет доступна с панели управления Jelastic.
Создайте свой серверный модуль 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.
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
4. Укажите настройки, необходимые для вашего модуля.
Например, для дальнейшей настройки модуля mod_pony нам нужно создать файл .htaccess внутри каталога webroot> ROOT и указать местоположение, которое сопоставляется с обработчиком:
<Files pony> SetHandler pony </Files>
Не забудьте сохранить настройки!
5. Перезапустите сервер Apache, чтобы включить модуль Apache.
6. Убедитесь, что ваш модуль Apache работает правильно. В нашем случае у нас есть изображение пони.
Всего за несколько простых шагов вы можете наслаждаться своими собственными модулями. Мы можем заключить, что сервер Apache является примером того, что лучше всего в парадигме разработки программного обеспечения с открытым исходным кодом. Это не только высокоэффективный и безопасный веб-сервер, но, что более важно, он очень настраиваемый и высокоэффективный.