Иметь свой собственный веб-сервер на самом деле очень удобно и практично. Если нужно протестировать скрипты, вывести информацию о состоянии оборудования или просто разместить небольшой сайт – все это возможно при наличии такого сервера.
Ставить будем на:
# uname -a FreeBSD web 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec 4 09:23:10 UTC 2012 root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
Перед установкой желательно сразу обновить систему и порты.
Первым делом ставим Apache:
# whereis apache22 apache22: /usr/ports/www/apache22
Задать настройки для текущего порта и всех зависимостей, убираем везде галочку с IPV6 так, как его не используем:
# cd /usr/ports/www/apache22 && make config-recursive
Ставим командой:
# cd /usr/ports/www/apache22 && make install clean
Конфигурация во время установки:
┌───────────────────────────── apache22-2.2.24 ────────────────────────────────┐ │ ┌──────────────────────────────────────────────────────────────────────────┐ │ │ │ [x] AUTH_BASIC mod_auth_basic │ │ │ │ [x] AUTH_DIGEST mod_auth_digest │ │ │ │ [x] AUTHN_ALIAS mod_authn_alias │ │ │ │ [x] AUTHN_ANON mod_authn_anon │ │ │ │ [x] AUTHN_DBD mod_authn_dbd │ │ │ │ [x] AUTHN_DBM mod_authn_dbm │ │ │ │ [x] AUTHN_DEFAULT mod_authn_default │ │ │ │ [x] AUTHN_FILE mod_authn_file │ │ │ │ [x] AUTHZ_DBM mod_authz_dbm │ │ │ │ [x] AUTHZ_DEFAULT mod_authz_default │ │ │ │ [x] AUTHZ_GROUPFILE mod_authz_groupfile │ │ │ │ [x] AUTHZ_HOST mod_authz_host │ │ │ │ [x] AUTHZ_OWNER mod_authz_owner │ │ │ │ [x] AUTHZ_USER mod_authz_user │ │ │ │ [ ] AUTHNZ_LDAP mod_authnz_ldap │ │ │ │ [ ] LDAP connection pooling, result caching │ │ │ │ [x] DBD Manages SQL database connections │ │ │ │ [x] CACHE mod_cache │ │ │ │ [x] DISK_CACHE mod_disk_cache │ │ │ │ [x] FILE_CACHE mod_file_cache │ │ │ │ [x] MEM_CACHE mod_mem_cache │ │ │ │ [x] DAV mod_dav │ │ │ │ [x] DAV_FS mod_dav_fs │ │ │ │ [ ] DAV_LOCK mod_dav_lock │ │ │ │ [x] ACTIONS mod_actions │ │ │ │ [x] ALIAS mod_alias │ │ │ │ [x] ASIS mod_asis │ │ │ │ [x] AUTOINDEX mod_autoindex │ │ │ │ [x] CERN_META mod_cern_meta │ │ │ │ [x] CGI mod_cgi │ │ │ │ [x] CGID mod_cgid │ │ │ │ [x] CHARSET_LITE mod_charset_lite │ │ │ │ [x] DEFLATE mod_deflate │ │ │ │ [x] DIR mod_dir │ │ │ │ [x] DUMPIO mod_dumpio │ │ │ │ [x] ENV mod_env │ │ │ │ [x] EXPIRES mod_expires │ │ │ │ [x] HEADERS mod_headers │ │ │ │ [x] IMAGEMAP mod_imagemap │ │ │ │ [x] INCLUDE mod_include │ │ │ │ [x] INFO mod_info │ │ │ │ [x] LOG_CONFIG mod_log_config │ │ │ │ [x] LOGIO mod_logio │ │ │ │ [x] MIME mod_mime │ │ │ │ [x] MIME_MAGIC mod_mime_magic │ │ │ │ [x] NEGOTIATION mod_negotiation │ │ │ │ [x] REWRITE mod_rewrite │ │ │ │ [x] SETENVIF mod_setenvif │ │ │ │ [x] SPELING mod_speling │ │ │ │ [x] STATUS mod_status │ │ │ │ [x] UNIQUE_ID mod_unique_id │ │ │ │ [x] USERDIR mod_userdir │ │ │ │ [x] USERTRACK mod_usertrack │ │ │ │ [x] VHOST_ALIAS mod_vhost_alias │ │ │ │ [x] FILTER mod_filter │ │ │ │ [ ] SUBSTITUTE mod_substitute │ │ │ │ [x] VERSION mod_version │ │ │ │ [x] SSL mod_ssl │ │ │ │ [ ] SUEXEC mod_suexec │ │ │ │ [ ] SUEXEC_RSRCLIMIT suEXEC rlimits based on login class │ │ │ │ [ ] SUEXEC_USERDIR suEXEC UserDir support │ │ │ │ [x] REQTIMEOUT mod_reqtimeout │ │ │ │ [ ] PROXY mod_proxy │ │ │ │ [ ] IPV4_MAPPED Allow IPv6 socket to handle IPv4 │ │ │ │ [ ] BUCKETEER mod_bucketeer │ │ │ │ [ ] CASE_FILTER mod_case_filter │ │ │ │ [ ] CASE_FILTER_IN mod_case_filter_in │ │ │ │ [ ] EXT_FILTER mod_ext_filter │ │ │ │ [ ] LOG_FORENSIC mod_log_forensic │ │ │ │ [ ] OPTIONAL_HOOK_EXPORT mod_optional_hook_export │ │ │ │ [ ] OPTIONAL_HOOK_IMPORT mod_optional_hook_import │ │ │ │ [ ] OPTIONAL_FN_IMPORT mod_optional_fn_import │ │ │ │ [ ] OPTIONAL_FN_EXPORT mod_optional_fn_export │ │ │ │──────────────────────────────── mod_proxy ───────────────────────────────│ │ │ │ [ ] PROXY_AJP mod_proxy_ajp │ │ │ │ [ ] PROXY_BALANCER mod_proxy_balancer │ │ │ │ [ ] PROXY_CONNECT mod_proxy_connect │ │ │ │ [ ] PROXY_FTP mod_proxy_ftp │ │ │ │ [ ] PROXY_HTTP mod_proxy_http │ │ │ │ [ ] PROXY_SCGI mod_proxy_scgi │ │ │ └──────────────────────────────────────────────────────────────────────────┘ │ ├──────────────────────────────────────────────────────────────────────────────┤ │ < OK > < Cancel > │ └──────────────────────────────────────────────────────────────────────────────┘
Настройка
Проверяем наличие или добавляем строку в /etc/rc.conf:
apache22_enable="YES"
# echo 'apache22_enable="YES"' >> /etc/rc.conf
Редактируем файл /usr/local/etc/apache22/httpd.conf до такого вида:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 | ServerRoot &quot;/usr/local&quot;#Listen 12.34.56.78:80Listen 80# Example:# LoadModule foo_module modules/mod_foo.so#LoadModule authn_file_module libexec/apache22/mod_authn_file.soLoadModule authn_dbm_module libexec/apache22/mod_authn_dbm.soLoadModule authn_anon_module libexec/apache22/mod_authn_anon.soLoadModule authn_default_module libexec/apache22/mod_authn_default.soLoadModule authn_alias_module libexec/apache22/mod_authn_alias.soLoadModule authz_host_module libexec/apache22/mod_authz_host.soLoadModule authz_groupfile_module libexec/apache22/mod_authz_groupfile.soLoadModule authz_user_module libexec/apache22/mod_authz_user.soLoadModule authz_dbm_module libexec/apache22/mod_authz_dbm.soLoadModule authz_owner_module libexec/apache22/mod_authz_owner.soLoadModule authz_default_module libexec/apache22/mod_authz_default.soLoadModule auth_basic_module libexec/apache22/mod_auth_basic.soLoadModule auth_digest_module libexec/apache22/mod_auth_digest.soLoadModule file_cache_module libexec/apache22/mod_file_cache.soLoadModule cache_module libexec/apache22/mod_cache.soLoadModule disk_cache_module libexec/apache22/mod_disk_cache.soLoadModule mem_cache_module libexec/apache22/mod_mem_cache.soLoadModule dumpio_module libexec/apache22/mod_dumpio.soLoadModule reqtimeout_module libexec/apache22/mod_reqtimeout.soLoadModule include_module libexec/apache22/mod_include.soLoadModule filter_module libexec/apache22/mod_filter.soLoadModule charset_lite_module libexec/apache22/mod_charset_lite.soLoadModule deflate_module libexec/apache22/mod_deflate.soLoadModule log_config_module libexec/apache22/mod_log_config.soLoadModule logio_module libexec/apache22/mod_logio.soLoadModule env_module libexec/apache22/mod_env.soLoadModule mime_magic_module libexec/apache22/mod_mime_magic.soLoadModule cern_meta_module libexec/apache22/mod_cern_meta.soLoadModule expires_module libexec/apache22/mod_expires.soLoadModule headers_module libexec/apache22/mod_headers.soLoadModule usertrack_module libexec/apache22/mod_usertrack.soLoadModule unique_id_module libexec/apache22/mod_unique_id.soLoadModule setenvif_module libexec/apache22/mod_setenvif.soLoadModule version_module libexec/apache22/mod_version.soLoadModule ssl_module libexec/apache22/mod_ssl.soLoadModule mime_module libexec/apache22/mod_mime.soLoadModule dav_module libexec/apache22/mod_dav.soLoadModule status_module libexec/apache22/mod_status.soLoadModule autoindex_module libexec/apache22/mod_autoindex.soLoadModule asis_module libexec/apache22/mod_asis.soLoadModule info_module libexec/apache22/mod_info.soLoadModule cgi_module libexec/apache22/mod_cgi.soLoadModule dav_fs_module libexec/apache22/mod_dav_fs.soLoadModule vhost_alias_module libexec/apache22/mod_vhost_alias.soLoadModule negotiation_module libexec/apache22/mod_negotiation.soLoadModule dir_module libexec/apache22/mod_dir.soLoadModule imagemap_module libexec/apache22/mod_imagemap.soLoadModule actions_module libexec/apache22/mod_actions.soLoadModule speling_module libexec/apache22/mod_speling.soLoadModule userdir_module libexec/apache22/mod_userdir.soLoadModule alias_module libexec/apache22/mod_alias.soLoadModule rewrite_module libexec/apache22/mod_rewrite.soLoadModule gzip_module libexec/apache22/mod_gzip2.soLoadModule php5_module libexec/apache22/libphp5.soLoadModule perl_module libexec/apache22/mod_perl.so&lt;IfModule !mpm_netware_module&gt;&lt;IfModule !mpm_winnt_module&gt;User wwwGroup www&lt;/IfModule&gt;&lt;/IfModule&gt;#ServerAdmin you@example.comServerName localhost:80DocumentRoot &quot;/usr/local/www/apache22/data&quot;&lt;Directory /&gt; AllowOverride None Order deny,allow Deny from all&lt;/Directory&gt;&lt;Directory &quot;/usr/local/www/apache22/data&quot;&gt; Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all&lt;/Directory&gt;&lt;IfModule dir_module&gt; DirectoryIndex index.php index.html&lt;/IfModule&gt;&lt;FilesMatch &quot;^.ht&quot;&gt; Order allow,deny Deny from all Satisfy All&lt;/FilesMatch&gt;&lt;IfModule mod_deflate.c&gt; AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript DeflateCompressionLevel 9 DeflateFilterNote Input instream DeflateFilterNote Output outstream DeflateFilterNote Ratio ratio LogFormat '&quot;%r&quot; %{outstream}n/%{instream}n (%{ratio}n%%)' deflate&lt;/IfModule&gt;ErrorLog &quot;/var/log/httpd-error.log&quot;LogLevel warn&lt;IfModule log_config_module&gt; LogFormat &quot;%h %l %u %t &quot;%r&quot; %&gt;s %b &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot;&quot; combined LogFormat &quot;%h %l %u %t &quot;%r&quot; %&gt;s %b&quot; common &lt;IfModule logio_module&gt; # You need to enable mod_logio.c to use %I and %O LogFormat &quot;%h %l %u %t &quot;%r&quot; %&gt;s %b &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot; %I %O&quot; combinedio &lt;/IfModule&gt; #CustomLog &quot;/var/log/httpd-access.log&quot; common CustomLog &quot;/var/log/httpd-access.log&quot; combined&lt;/IfModule&gt;&lt;IfModule alias_module&gt; # Example: # Redirect permanent /foo http://www.example.com/bar # Alias /webpath /full/filesystem/path ScriptAlias /cgi-bin/ &quot;/usr/local/www/apache22/cgi-bin/&quot;&lt;/IfModule&gt;&lt;IfModule cgid_module&gt; #Scriptsock /var/run/cgisock&lt;/IfModule&gt;&lt;Directory &quot;/usr/local/www/apache22/cgi-bin&quot;&gt; AllowOverride None Options None Order allow,deny Allow from all&lt;/Directory&gt;DefaultType text/plain&lt;IfModule mime_module&gt; TypesConfig etc/apache22/mime.types #AddType application/x-gzip .tgz #AddEncoding x-compress .Z #AddEncoding x-gzip .gz .tgz AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddHandler cgi-script .cgi .pl #AddHandler type-map var #AddType text/html .shtml #AddOutputFilter INCLUDES .shtml&lt;/IfModule&gt;#MIMEMagicFile etc/apache22/magic# Some examples:#ErrorDocument 500 &quot;The server made a boo boo.&quot;#ErrorDocument 404 /missing.html#ErrorDocument 404 &quot;/cgi-bin/missing_handler.pl&quot;#ErrorDocument 402 http://www.example.com/subscription_info.html#MaxRanges unlimited#EnableMMAP off#EnableSendfile off# Supplemental configurationInclude etc/apache22/extra/httpd-mpm.conf#Include etc/apache22/extra/httpd-multilang-errordoc.conf#Include etc/apache22/extra/httpd-autoindex.conf#Include etc/apache22/extra/httpd-languages.conf#Include etc/apache22/extra/httpd-userdir.confInclude etc/apache22/extra/httpd-info.conf#Include etc/apache22/extra/httpd-vhosts.conf#Include etc/apache22/extra/httpd-manual.conf#Include etc/apache22/extra/httpd-dav.confInclude etc/apache22/extra/httpd-default.conf&lt;IfModule ssl_module&gt;SSLRandomSeed startup builtinSSLRandomSeed connect builtin&lt;/IfModule&gt;Include etc/apache22/Includes/*.conf |
Редактируем файл /usr/local/etc/apache22/extra/httpd-mpm.conf до такого вида:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | # Server-Pool Management (MPM specific)&lt;IfModule !mpm_netware_module&gt; PidFile &quot;/var/run/httpd.pid&quot;&lt;/IfModule&gt;&lt;IfModule !mpm_winnt_module&gt;&lt;IfModule !mpm_netware_module&gt;LockFile &quot;/var/log/accept.lock&quot;&lt;/IfModule&gt;&lt;/IfModule&gt;&lt;IfModule mpm_prefork_module&gt; StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 50&lt;/IfModule&gt;&lt;IfModule mpm_worker_module&gt; StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0&lt;/IfModule&gt;&lt;IfModule mpm_beos_module&gt; StartThreads 10 MaxClients 50 MaxRequestsPerThread 10000&lt;/IfModule&gt;&lt;IfModule mpm_netware_module&gt; ThreadStackSize 65536 StartThreads 250 MinSpareThreads 25 MaxSpareThreads 250 MaxThreads 1000 MaxRequestsPerChild 0 MaxMemFree 100&lt;/IfModule&gt;&lt;IfModule mpm_mpmt_os2_module&gt; StartServers 2 MinSpareThreads 5 MaxSpareThreads 10 MaxRequestsPerChild 0&lt;/IfModule&gt;&lt;IfModule mpm_winnt_module&gt; ThreadsPerChild 150 MaxRequestsPerChild 0&lt;/IfModule&gt; |
Редактируем файл /usr/local/etc/apache22/extra/httpd-info.conf до такого вида:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | &lt;Location /server-status&gt; SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1&lt;/Location&gt;ExtendedStatus On#&lt;Location /server-info&gt;# SetHandler server-info# Order deny,allow# Deny from all# Allow from 127.0.0.1#&lt;/Location&gt; |
Редактируем файл /usr/local/etc/apache22/extra/httpd-default.conf до такого вида:
1 2 3 4 5 6 7 8 9 | Timeout 10KeepAlive OnMaxKeepAliveRequests 80KeepAliveTimeout 10UseCanonicalName OffAccessFileName .htaccessServerTokens ProdServerSignature OnHostnameLookups Off |
Ставим PHP5 из портов:
# cd /usr/ports/lang/php5 && make config-recursive && make install clean
В окне выбираем:
┌─────────────────────────────── php5-5.4.14 ──────────────────────────────────┐ │ ┌──────────────────────────────────────────────────────────────────────────┐ │ │ │ [x] CLI Build CLI version │ │ │ │ [x] CGI Build CGI version │ │ │ │ [ ] FPM Build FPM version │ │ │ │ [x] APACHE Build Apache module │ │ │ │ [ ] AP2FILTER Use Apache 2.x filter interface (experimental) │ │ │ │ [ ] EMBED Build embedded library │ │ │ │ [ ] DEBUG Enable debug │ │ │ │ [ ] DTRACE Enable DTrace support │ │ │ │ [ ] IPV6 Enable ipv6 support │ │ │ │ [ ] MAILHEAD Enable mail header patch │ │ │ │ [x] LINKTHR Link thread lib (for threaded extensions) │ │ │ └──────────────────────────────────────────────────────────────────────────┘ │ ├──────────────────────────────────────────────────────────────────────────────┤ │ < OK > < Cancel > │ └──────────────────────────────────────────────────────────────────────────────┘
В конце видим:
***************************************************************
Make sure index.php is part of your DirectoryIndex.
You should add the following to your Apache configuration file:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
***************************************************************
===> Compressing manual pages for php5-5.4.14
===> Registering installation for php5-5.4.14
===> SECURITY REPORT:
This port has installed the following files which may act as network
servers and may therefore pose a remote security risk to the system.
/usr/local/libexec/apache22/libphp5.so
/usr/local/bin/php
/usr/local/bin/php-cgi
If there are vulnerabilities in these programs there may be a security
risk to the system. FreeBSD makes no guarantee about the security of
ports included in the Ports Collection. Please type 'make deinstall'
to deinstall the port if this is a concern.
For more information, and contact details about the security
status of this software, see the following webpage:
http://www.php.net/
===> Cleaning for libxml2-2.8.0_2
===> Cleaning for pkgconf-0.9.2
===> Cleaning for php5-5.4.14
#
Php уже разрешен в конфиге как модуль, но его еще невозможно использовать. Для его использования нужно связать расширения файлов .php с правильным типом данных чтоб Apache знал для каких файлов запускать интерпретатор php.
Для этого создаём файл /usr/local/etc/apache22/Includes/php-application.conf с таким содержимым:
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phpsXsource
Ставим дополнительные модули для PHP
# cd /usr/ports/lang/php5-extensions && make config-recursive && make install clean
Выбираем всё необходимое:
┌─────────────────────────── php5-extensions-1.7 ──────────────────────────────┐ │ ┌──────────────────────────────────────────────────────────────────────────┐ │ │ │ [x] BCMATH bc style precision math functions │ │ │ │ [x] BZ2 bzip2 library support │ │ │ │ [x] CALENDAR calendar conversion support │ │ │ │ [x] CTYPE ctype functions │ │ │ │ [x] CURL CURL support │ │ │ │ [x] DBA dba support │ │ │ │ [x] DOM DOM support │ │ │ │ [x] EXIF EXIF support │ │ │ │ [x] FILEINFO fileinfo support │ │ │ │ [x] FILTER input filter 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 │ │ │ │ [x] IMAP IMAP support │ │ │ │ [ ] INTERBASE Interbase 6 database support (Firebird) │ │ │ │ [x] JSON JavaScript Object Serialization support │ │ │ │ [ ] LDAP OpenLDAP support │ │ │ │ [x] MBSTRING multibyte string support │ │ │ │ [x] MCRYPT Encryption support │ │ │ │ [ ] MSSQL MS-SQL database support │ │ │ │ [x] MYSQL MySQL database support │ │ │ │ [x] MYSQLI MySQLi database support │ │ │ │ [ ] ODBC ODBC support │ │ │ │ [x] OPENSSL OpenSSL support │ │ │ │ [ ] PCNTL pcntl support (CLI only) │ │ │ │ [x] PDF PDFlib support (implies GD) │ │ │ │ [x] PDO PHP Data Objects Interface (PDO) │ │ │ │ [ ] PDO_DBLIB PDO DBLIB-DB driver │ │ │ │ [ ] PDO_FIREBIRD PDO Firebird driver │ │ │ │ [x] PDO_MYSQL PDO MySQL driver │ │ │ │ [ ] PDO_ODBC PDO ODBC driver │ │ │ │ [ ] PDO_PGSQL PDO PostgreSQL driver │ │ │ │ [x] PDO_SQLITE PDO sqlite driver │ │ │ │ [ ] PGSQL PostgreSQL database support │ │ │ │ [x] PHAR phar support │ │ │ │ [x] POSIX POSIX-like functions │ │ │ │ [ ] PSPELL pspell support │ │ │ │ [ ] READLINE readline support (CLI only) │ │ │ │ [ ] RECODE recode support │ │ │ │ [x] SESSION session support │ │ │ │ [x] SHMOP shmop support │ │ │ │ [x] SIMPLEXML simplexml support │ │ │ │ [x] SNMP SNMP support │ │ │ │ [x] SOAP SOAP support │ │ │ │ [ ] SOCKETS sockets support │ │ │ │ [x] SQLITE3 sqlite3 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 │ │ │ │ [ ] XMLRPC XMLRPC-EPI support │ │ │ │ [x] XMLWRITER XMLWriter support │ │ │ │ [ ] XSL XSL support (Implies DOM) │ │ │ │ [x] ZIP ZIP support │ │ │ │ [x] ZLIB ZLIB support │ │ │ └──────────────────────────────────────────────────────────────────────────┘ │ ├──────────────────────────────────────────────────────────────────────────────┤ │ < OK > < Cancel > │ └──────────────────────────────────────────────────────────────────────────────┘
Там где была галочка на IPV6 я отключал так, как он не используется.
Настройка php.ini
# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini # chmod u+w /usr/local/etc/php.ini # rehash
Редактируем php.ini до такого вида:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 | [PHP]engine = Onshort_open_tag = Onasp_tags = Offprecision = 14y2k_compliance = Onoutput_buffering = 4096zlib.output_compression = Offimplicit_flush = Offunserialize_callback_func =serialize_precision = 100allow_call_time_pass_reference = Offsafe_mode = Offsafe_mode_gid = Offsafe_mode_include_dir =safe_mode_exec_dir =safe_mode_allowed_env_vars = PHP_safe_mode_protected_env_vars = LD_LIBRARY_PATHdisable_functions =disable_classes =expose_php = Offmax_execution_time = 300max_input_time = 300memory_limit = 128Merror_reporting = E_ALL | E_STRICTdisplay_errors = Ondisplay_startup_errors = Onlog_errors = Onlog_errors_max_len = 1024ignore_repeated_errors = Offignore_repeated_source = Offreport_memleaks = Ontrack_errors = Onhtml_errors = Onvariables_order = &quot;GPCS&quot;request_order = &quot;GP&quot;register_globals = Offregister_long_arrays = Offregister_argc_argv = Offauto_globals_jit = Onpost_max_size = 512Mmagic_quotes_gpc = Offmagic_quotes_runtime = Offmagic_quotes_sybase = Offauto_prepend_file =auto_append_file =default_mimetype = &quot;text/html&quot;include_path = &quot;.:/usr/local/share/pear&quot;doc_root =user_dir =enable_dl = Offfile_uploads = Onupload_max_filesize = 512Mmax_file_uploads = 20allow_url_fopen = Onallow_url_include = Offdefault_socket_timeout = 60[Date]date.timezone = Europe/Kiev[filter][iconv][intl][sqlite][sqlite3][Pcre][Pdo][Pdo_mysql]pdo_mysql.cache_size = 2000pdo_mysql.default_socket=[Phar][Syslog]define_syslog_variables = Off[mail function]SMTP = localhostsmtp_port = 25mail.add_x_header = On[SQL]sql.safe_mode = Off[ODBC]odbc.allow_persistent = Onodbc.check_persistent = Onodbc.max_persistent = -1odbc.max_links = -1odbc.defaultlrl = 4096odbc.defaultbinmode = 1[Interbase]ibase.allow_persistent = 1ibase.max_persistent = -1ibase.max_links = -1ibase.timestampformat = &quot;%Y-%m-%d %H:%M:%S&quot;ibase.dateformat = &quot;%Y-%m-%d&quot;ibase.timeformat = &quot;%H:%M:%S&quot;[MySQL]mysql.allow_local_infile = Onmysql.allow_persistent = Onmysql.cache_size = 2000mysql.max_persistent = -1mysql.max_links = -1mysql.default_port =mysql.default_socket =mysql.default_host =mysql.default_user =mysql.default_password =mysql.connect_timeout = 60mysql.trace_mode = Off[MySQLi]mysqli.max_persistent = -1mysqli.max_links = -1mysqli.cache_size = 2000mysqli.default_port = 3306mysqli.default_socket =mysqli.default_host =mysqli.default_user =mysqli.default_pw =mysqli.reconnect = Off[mysqlnd]mysqlnd.collect_statistics = Onmysqlnd.collect_memory_statistics = On[OCI8][PostgresSQL]pgsql.allow_persistent = Onpgsql.auto_reset_persistent = Offpgsql.max_persistent = -1pgsql.max_links = -1pgsql.ignore_notice = 0pgsql.log_notice = 0[Sybase-CT]sybct.allow_persistent = Onsybct.max_persistent = -1sybct.max_links = -1sybct.min_server_severity = 10sybct.min_client_severity = 10[bcmath]bcmath.scale = 0[browscap][Session]session.save_handler = filessession.use_cookies = 1session.use_only_cookies = 1session.name = PHPSESSIDsession.auto_start = 0session.cookie_lifetime = 0session.cookie_path = /session.cookie_domain =session.cookie_httponly =session.serialize_handler = phpsession.gc_probability = 1session.gc_divisor = 1000session.gc_maxlifetime = 1440session.bug_compat_42 = Onsession.bug_compat_warn = Onsession.referer_check =session.entropy_length = 0session.entropy_file =session.cache_limiter = nocachesession.cache_expire = 180session.use_trans_sid = 0session.hash_function = 0session.hash_bits_per_character = 5url_rewriter.tags = &quot;a=href,area=href,frame=src,input=src,form=fakeentry&quot;[MSSQL]mssql.allow_persistent = Onmssql.max_persistent = -1mssql.max_links = -1mssql.min_error_severity = 10mssql.min_message_severity = 10mssql.compatability_mode = Offmssql.secure_connection = Off[Assertion][COM][mbstring][gd][exif][Tidy]tidy.clean_output = Off[soap]soap.wsdl_cache_enabled=1soap.wsdl_cache_dir=&quot;/tmp&quot;soap.wsdl_cache_ttl=86400soap.wsdl_cache_limit = 5[sysvshm][ldap]ldap.max_links = -1[mcrypt][dba] |
Ставим ещё:
# cd /usr/ports/net/pecl-geoip && make install clean # cd /usr/ports/devel/pear && make install clean # cd /usr/ports/databases/pear-DB && make install clean # cd /usr/ports/www/mod_gzip2 && make install clean # cd /usr/ports/www/mod_perl2 && make install clean
После установки mod_perl2 нужно раскомментировать строку в /usr/local/etc/apache22/httpd.conf
LoadModule perl_module libexec/apache22/mod_perl.so
Запускаем
# /usr/local/etc/rc.d/apache22 start
Проверяем что сервер запустился и работает
# ps ax | grep httpd 7011 ?? I 0:21.67 /usr/local/sbin/httpd 10909 ?? I 0:04.50 /usr/local/sbin/httpd 12521 ?? I 0:04.34 /usr/local/sbin/httpd 12675 ?? I 0:02.18 /usr/local/sbin/httpd 34170 ?? I 0:05.47 /usr/local/sbin/httpd 76421 ?? Ss 0:03.26 /usr/local/sbin/httpd 99267 ?? I 0:10.91 /usr/local/sbin/httpd 14536 2 R+ 0:00.00 grep httpd
Если при запуске появится ошибка, смотрим /var/log/httpd-error.log
# tail -f /var/log/httpd-error.log [Sat Apr 27 06:03:33 2013] [alert] (EAI 8)hostname nor servname provided, or not known: mod_unique_id: unable to find IPv4 address of "web" Configuration Failed
Лезем в /etc/hosts и добавляем свой ip адрес и имя которое указали в /etc/rc.conf (у меня — hostname=»web»):
127.0.0.1 localhost localhost.my.domain xxx.xxx.xxx.xxx web
Проверяем работу сервера:
# /usr/local/etc/rc.d/apache22 start
# tail -f /var/log/httpd-error.log [Sat Apr 27 06:03:33 2013] [alert] (EAI 8)hostname nor servname provided, or not known: mod_unique_id: unable to find IPv4 address of "web" Configuration Failed [Sat Apr 27 06:07:00 2013] [warn] Init: Session Cache is not configured [hint: SSLSessionCache] [Sat Apr 27 06:07:00 2013] [notice] Digest: generating secret for digest authentication ... [Sat Apr 27 06:07:00 2013] [notice] Digest: done [Sat Apr 27 06:07:01 2013] [notice] Apache/2.2.24 (FreeBSD) mod_gzip/2.1.0 PHP/5.4.14 mod_ssl/2.2.24 OpenSSL/0.9.8y DAV/2 configured -- resuming normal operations
http://ip.сервера/
Проверить работу php можно так, в корневой папке веб сервера /usr/local/www/apache22/data/ создать файл test.php
touch /usr/local/www/apache22/data/test.php
и вписать такое содержимое:
1 2 3 | &lt;?php&gt;phpinfo();?&gt; |
После заходим по адресу http://ip.сервера/test.php мы должны увидеть такое





