PHP 7.2.0 Release Candidate 4 Released

OpenBSD, замечания по установке

Эта секция содержит замечания и советы, касающиеся установки PHP на» OpenBSD 5.8.

Использование бинарных пакетов

Использование бинарных пакетов для установки PHP на OpenBSD - это простейший и рекомендованный способ. Ядро (основной пакет) отделено от различных модулей, но каждый из них может быть установлен или удален независимо от другого. Файлы, которые вам понадобятся, вы можете найти на вашем OpenBSD CD или на FTP.

Основной пакет, который необходимо установить - это php, он содержит базовый движок (плюс gettext и iconv). Далее, обратите внимание на пакеты модулей, такие как php-mysql или php-imap. Вам сдедует использовать команду phpxs для активации или дезактивации этих модулей в вашем php.ini.

Пример #1 Пример установки пакетов в OpenBSD

# pkg_add php
# pkg_add php-fpm
# pkg_add php-mysql
  (install the PEAR libraries)
# pkg_add pear

Следуйте инструкциям, выводимым пакетами во время установки!

  (to remove packages)
# pkg_delete php
# pkg_delete php-fpm
# pkg_delete php-mysql
# pkg_delete pear

Читайте страницу руководства » packages(7) для большей информации о бинарных пакетах в OpenBSD.

Использование портов

Вы можете также скомпилировать PHP из исходников, используя » дерево портов. Тем не менее, этот способ рекомендован только для тех, кто хорошо знакомых с OpenBSD. Порт PHP 4 разбит на две поддиректории: ядро и расширения. Директория расширений генерирует подпакеты для всех поддерживаемых модулей PHP. Если какие либо из них вам не нужны, используйте FLAVOR no_*. Например, для пропуска расширения imap, установите FLAVOR в no_imap.

Стандартные проблемы

  • Apache и Nginx более не являются веб-серверами по умолчанию для OpenBSD, но их очень легко найти и поставить из портов и пакетов. Новый сервер по умолчанию называется 'httpd'.
  • Стандартная установка httpd работает в » chroot(2) окружении, что запрещает PHP доступ к файлам вне /var/www. Так что вам понадобится создать директорию /var/www/tmp для сохранения сессионных файлов PHP, или использовать альтернативный бэкенд для управления сессиями. К тому же, сокеты баз данных будет необходимо размещать в chroot, либо слушивать на интерфейсе localhost. Если вы используете функции работы с сетью, некоторые файлы из /etc, такие как /etc/resolv.conf и /etc/services необходимо будет поместить в /var/www/etc. В OpenBSD, пакет PEAR автоматически устанавливается в правильные директории chroot.
  • Пакет расширения » gd для OpenBSD 5.7+ требует наличия установленного XFree86. Он может быть добавлен после установки пакета, путем добавления набора файлов xbase.tgz. (См. OpenBSD FAQ#4).

Старые релизы

Старые релизы OpenBSD используют систему FLAVORS для компиляции статически собранного PHP. Так как собрать бинарный пакет таким образом достаточно трудно, он объявлен устаревшим. Вы все еще можете использовать старые стабильные бинарные порты, если хотите, но они больше не поддерживаются коммандой OpenBSD. Если у вас есть какие либо возражения, обратитесь к Анилу Мадхавапедди, сейчас он занимается поддержкой порта (ник avsm на openbsd dot com).

add a note add a note

User Contributed Notes 5 notes

up
9
pete att shitnami.net
2 years ago
A brief update: As of OpenBSD 5.7 (2015) the installation process is extremely easy. Apache httpd was replaced by Nginx, which has since been further replaced by OpenBSD's own server, aptly named 'httpd'.

'httpd' is installed by default, everything else you can still get from packages, with a couple name changes (including Apache and Nginx.) You will be asked which version to install - at the time of writing, versions 5.3.29p1 thru 5.6.5 are available.

#pkg_add php
#pkg_add php-fpm
#pkg_add pear

----
OpenBSD disables most services by default; a blank '_flags' line overrides default 'NO' value. pkg_scripts are located in /etc/rc.d/
To start at boot, edit "/etc/rc.conf.local":

  httpd_flags=
  pkg_scripts=php_fpm

----
Example /etc/httpd.conf
#
# paths are relative to chroot - e.g, '/var/www/run/php-fpm.sock'
server "default" {
      listen on * port 80
      location "*.php" {
            fastcgi socket "/run/php-fpm.sock"
      }
      directory index index.php
      root "/htdocs"
}

----
For date, timezone issues, copy /etc/localtime:
    $cp /etc/localtime /var/www/etc/localtime

If 'localhost' DNS name fails to resolve, copy /etc/hosts
    $cp /etc/hosts /var/www/etc/hosts
up
1
openbsd-fanatic
12 years ago
I am user that is just migrating to open source and thought I would take openbsd for a spin. This article, by Gregory L. Magnusson, really helped me to get a working apache-php-mysql server going on openbsd.
http://www.devx.com/security/Article/28059/0/page/1
up
1
ameen(at)dausha(dot)net
13 years ago
I just finished spinning my wheels with PHP/Apache on OpenBSD 3.3, and it took a Google to fix my problem. I followed the instructions by (0429196301 at netcabo dot pt) written on Sep 19, 2003 and kept being fed a segmentation fault when I tried to start httpd.

Then I read the page cited below that suggested playing with the order of the LoadModules, and put the PHP first. I followed that recommendation and httpd started without problems!

Page that saved me:
http://archives.neohapsis.com/archives/openbsd/2002-04/3074.html

"Change around the order of the Apache modules, this is one of the
drawbacks to the module API for Apache 1.3 is that the order is very
important. I would try making the PHP 4 module first, Perl module second
and FP module last. "
up
0
sanchero [at] gvsu [dot] edu
14 years ago
On OpenBSD 3.2, given the steps outlined above using pre-built packages you will get a new "/var/www/conf/httpd.conf" that contains a section like this:

<IfDefine SSL>
AddModule mod_ssl.c
AddModule mod_php4.c
</IfDefine>

This causes mod_php4 to load only when starting Apache w/SSL, so if this isn't what you want add the mod_php4 line again above (or below) this section, like so:

AddModule mod_php4.c   <<------ SEE? - now should load normally.
<IfDefine SSL>
AddModule mod_ssl.c
AddModule mod_php4.c
</IfDefine>

I also added this for good measure:

<IfModule mod_php4.c>
         AddType application/x-httpd-php .php [blah blah]
</IfModule>

Seems to work.
up
-3
hg at ostc dot de
12 years ago
Also you should add "-a /var/www/dev/log" to the syslogd_flags
for propper logging of php-extensions like imap.so and create
a /var/www/etc/master.passwd with an www-user-entry and run
pwd_mkdb -d /var/www/etc /var/www/etc/master.passwd for propper
use of libc-client.a functions in imap.so.
To Top