Apache и php на FreeBSD

Я вообще за кроссплатформенность двумя руками, а лучше всего её реализовать через веб-интерфейс, поэтому связка Apache + php + mysql понадобится и не раз. Так как об установке mysql на FreeBSD уже было написано, впору написать о Apache и php.

Устанавливаем Apache22:
cd /usr/ports/www/apache22
make config

Выбираем опции:
Options for apache 2.2.17_1
[ ] THREADS Enable threads support in APR
[X] MYSQL Enable MySQL support for apr-dbd
[ ] PGSQL Enable PostgreSQL support for apr-dbd
[ ] SQLITE Enable SQLite support for apr-dbd
[ ] IPV6 Enable IPv6 support
[ ] BDB Enable BerkeleyDB dbm
[X] AUTH_BASIC Enable mod_auth_basic
[X] AUTH_DIGEST Enable mod_auth_digest
[X] AUTHN_FILE Enable mod_authn_file
[ ] AUTHN_DBD Enable mod_authn_dbd
[X] AUTHN_DBM Enable mod_authn_dbm
[X] AUTHN_ANON Enable mod_authn_anon
[X] AUTHN_DEFAULT Enable mod_authn_default
[X] AUTHN_ALIAS Enable mod_authn_alias
[X] AUTHZ_HOST Enable mod_authz_host
[X] AUTHZ_GROUPFILE Enable mod_authz_groupfile
[X] AUTHZ_USER Enable mod_authz_user
[X] AUTHZ_DBM Enable mod_authz_dbm
[X] AUTHZ_OWNER Enable mod_authz_owner
[X] AUTHZ_DEFAULT Enable mod_authz_default
[X] CACHE Enable mod_cache
[X] DISK_CACHE Enable mod_disk_cache
[X] FILE_CACHE Enable mod_file_cache
[ ] MEM_CACHE Enable mod_mem_cache
[X] DAV Enable mod_dav
[X] DAV_FS Enable mod_dav_fs
[ ] BUCKETEER Enable mod_bucketeer
[ ] CASE_FILTER Enable mod_case_filter
[ ] CASE_FILTER_IN Enable mod_case_filter_in
[ ] EXT_FILTER Enable mod_ext_filter
[ ] LOG_FORENSIC Enable mod_log_forensic
[ ] OPTIONAL_HOOK_EXPORT Enable mod_optional_hook_export
[ ] OPTIONAL_HOOK_IMPORT Enable mod_optional_hook_import
[ ] OPTIONAL_FN_IMPORT Enable mod_optional_fn_import
[ ] OPTIONAL_FN_EXPORT Enable mod_optional_fn_export
[ ] LDAP Enable mod_ldap
[ ] AUTHNZ_LDAP Enable mod_authnz_ldap
[X] ACTIONS Enable mod_actions
[X] ALIAS Enable mod_alias
[X] ASIS Enable mod_asis
[X] AUTOINDEX Enable mod_autoindex
[X] CERN_META Enable mod_cern_meta
[X] CGI Enable mod_cgi
[X] CHARSET_LITE Enable mod_charset_lite
[ ] DBD Enable mod_dbd
[X] DEFLATE Enable mod_deflate
[X] DIR Enable mod_dir
[X] DUMPIO Enable mod_dumpio
[X] ENV Enable mod_env
[X] EXPIRES Enable mod_expires
[X] HEADERS Enable mod_headers
[X] IMAGEMAP Enable mod_imagemap
[X] INCLUDE Enable mod_include
[X] INFO Enable mod_info
[X] LOG_CONFIG Enable mod_log_config
[X] LOGIO Enable mod_logio
[X] MIME Enable mod_mime
[X] MIME_MAGIC Enable mod_mime_magic
[X] NEGOTIATION Enable mod_negotiation
[X] REWRITE Enable mod_rewrite
[X] SETENVIF Enable mod_setenvif
[X] SPELING Enable mod_speling
[X] STATUS Enable mod_status
[X] UNIQUE_ID Enable mod_unique_id
[X] USERDIR Enable mod_userdir
[X] USERTRACK Enable mod_usertrack
[X] VHOST_ALIAS Enable mod_vhost_alias
[X] FILTER Enable mod_filter
[X] VERSION Enable mod_version
[ ] PROXY Enable mod_proxy
[ ] PROXY_CONNECT Enable mod_proxy_connect
[X] PATCH_PROXY_CONNECT Patch proxy_connect SSL support
[ ] PROXY_FTP Enable mod_proxy_ftp
[ ] PROXY_HTTP Enable mod_proxy_http
[ ] PROXY_AJP Enable mod_proxy_ajp
[ ] PROXY_BALANCER Enable mod_proxy_balancer
[ ] PROXY_SCGI Enable mod_proxy_scgi
[X] SSL Enable mod_ssl
[ ] SUEXEC Enable mod_suexec
[ ] SUEXEC_RSRCLIMIT SuEXEC rlimits based on login class
[X] REQTIMEOUT Enable mod_reqtimeout
[ ] CGID Enable mod_cgid

Устанавливаем:
make BATCH=yes -C/usr/ports/www/apache22 install clean
rehash

Если видим:
buildconf: checking installation...
buildconf: python not found.
You need python installed
to build APR from SVN.
*** Error code 1

Stop in /usr/ports/devel/apr1.
*** Error code 1

Stop in /usr/ports/devel/apr1.

Это значит надо утсановить python:
cd /usr/ports/lang/python26
make install clean
rehash

Если сообщений с ошибками не было, значит пропускаем пункт с установкой python26.
Далее php:
cd /usr/ports/lang/php5
make config

Выбираем опции:
Options for php5 5.3.3_2
[X] CLI Build CLI version
[X] CGI Build CGI version
[ ] FPM Build FPM version (experimental)
[X] APACHE Build Apache module
[ ] AP2FILTER Use Apache 2.x filter interface (experimental)
[ ] DEBUG Enable debug
[X] SUHOSIN Enable Suhosin protection system
[X] MULTIBYTE Enable zend multibyte support
[ ] IPV6 Enable ipv6 support
[X] MAILHEAD Enable mail header patch
[ ] LINKTHR Link thread lib (for threaded extensions)

Устанавливаем:
make BATCH=yes -C/usr/ports/lang/php5 install clean
rehash

Теперь расширения php:
cd /usr/ports/lang/php5-extensions
make config

Выбираем опции:
Options for php5-extensions 1.4
[ ] BCMATH bc style precision math functions
[X] BZ2 bzip2 library support
[X] CALENDAR calendar conversion support
[X] CTYPE ctype functions
[X] CURL CURL support
[ ] DBA dba support
[X] DOM DOM support
[X] EXIF EXIF support
[X] FILEINFO fileinfo support
[X] FILTER input filter support
[ ] FRIBIDI FriBidi support
[X] FTP FTP support
[X] GD GD library support
[X] GETTEXT gettext library support
[X] GMP GNU MP support
[X] HASH HASH Message Digest Framework
[X] ICONV iconv support
[ ] IMAP IMAP support
[ ] INTERBASE Interbase 6 database support (Firebird)
[X] JSON JavaScript Object Serialization support
[ ] LDAP OpenLDAP support
[X] MBSTRING multibyte string support
[ ] MCRYPT Encryption support
[ ] MSSQL MS-SQL database support
[X] MYSQL MySQL database support
[ ] MYSQLI MySQLi database support
[ ] ODBC unixODBC support
[ ] OPENSSL OpenSSL support
[ ] PCNTL pcntl support (CLI only)
[X] PDF PDFlib support (implies GD)
[X] PDO PHP Data Objects Interface (PDO)
[X] PDO_SQLITE PDO sqlite driver
[ ] PGSQL PostgreSQL database support
[X] POSIX POSIX-like functions
[ ] PSPELL pspell support
[ ] READLINE readline support (CLI only)
[ ] RECODE recode support
[X] SESSION session support
[ ] SHMOP shmop support
[X] SIMPLEXML simplexml support
[ ] SNMP SNMP support
[ ] SOAP SOAP support
[ ] SOCKETS sockets support
[ ] SQLITE sqlite support
[ ] SYBASE_CT Sybase database support
[ ] SYSVMSG System V message support
[ ] SYSVSEM System V semaphore support
[ ] SYSVSHM System V shared memory support
[ ] TIDY TIDY support
[X] TOKENIZER tokenizer support
[ ] WDDX WDDX support (implies XML)
[X] XML XML support
[X] XMLREADER XMLReader support
[X] XMLRPC XMLRPC-EPI support
[X] XMLWRITER XMLWriter support
[X] XSL XSL support (Implies DOM)
[ ] YAZ YAZ support (ANSI/NISO Z39.50)
[X] ZIP ZIP support
[X] ZLIB ZLIB support

Устанавливаем:
make BATCH=yes -C/usr/ports/lang/php5-extensions install clean

в /etc/rc.conf добавляем:
apache22_enable="YES"

стартуем apache:
/usr/local/etc/rc.d/apache22 start

Возможно появится сообщение:
httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
/usr/local/etc/rc.d/apache22: WARNING: failed to start apache22

В таком случае в /usr/local/etc/apache22/httpd.conf надо ракомментировать строку:
ServerName www.example.com:80
изменим её на:
ServerName 127.0.0.1
Не стартует? Смотрим ошибки в /var/log/httpd-error.log

Если устанавливали mysql, советую использовать phpmyadmin для облегчения себе жизни:
cd /usr/ports/databases/phpmyadmin
make config

Выбираем опции:
Options for phpMyAdmin 3.3.8.1
[ ] SUPHP suPHP support
[X] BZ2 bzip2 library support
[X] GD GD library support
[X] MYSQLI Improved MySQL support
[X] OPENSSL OpenSSL support
[X] PDF PDFlib support (implies GD)
[X] ZLIB ZLIB support
[X] MCRYPT MCrypt library support
[X] ZIP Zip compression support

Устанавливаем:
make BATCH=yes -C/usr/ports/databases/phpmyadmin install clean

После установки в /usr/local/etc/php/extensions.ini добавится строка extension=mysqli.so.

Создадим файл pma.conf в /usr/local/etc/apache22/Includes/
ee /usr/local/etc/apache22/Includes/pma.conf
с таким содержимым:

команды, freebsd, настройка, установка, сервер, server, ubuntu

Чтобы наш алиас начал работать, заставим перечитать конфиг apache22:
apachectl graceful

пробуем зайти на:
http://IP_куда_ставили_apache22+php/phpmyadmin/
Появится окно phpmyadmin, где надо вписать логин и пароль пользователя/администратора базы mysql; пустой пароль у roota быть не должен иначе увидите:
«Вход без пароля запрещен при конфигурации (смотрите AllowNoPassword)»

Поэтому смените пароль root’a:
mysqladmin -u root password новый_пароль

Всё, заготовка для будущих экспериментов готова.
И ещё мини бонус:
Чтобы посмотреть параметры php, можно создать файлик с произвольным названием, но расширением *php (например phpinfo.php) в DocumentRoot веб-сервера с таким содержимым:
<?php
phpinfo();
?>
и открыть в браузере
http://ip_сервера/phpinfo.php
Там будет написано всё: и загруженные модули, и расположение конфигурационного файла php, и версия веб-сервера, и многое-многое другое.

Apache и php на FreeBSD: Один комментарий

  1. Уведомление: Используем nginx, как frontend к apache | Media UniX

Добавить комментарий