Иметь свой собственный веб-сервер на самом деле очень удобно и практично. Если нужно протестировать скрипты, вывести информацию о состоянии оборудования или просто разместить небольшой сайт – все это возможно при наличии такого сервера.
Ставить будем на:
# uname -a FreeBSD web 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec 4 09:23:10 UTC 2012 [email protected]:/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 до такого вида:
ServerRoot &quot;/usr/local&quot; #Listen 12.34.56.78:80 Listen 80 # Example: # LoadModule foo_module modules/mod_foo.so # LoadModule authn_file_module libexec/apache22/mod_authn_file.so LoadModule authn_dbm_module libexec/apache22/mod_authn_dbm.so LoadModule authn_anon_module libexec/apache22/mod_authn_anon.so LoadModule authn_default_module libexec/apache22/mod_authn_default.so LoadModule authn_alias_module libexec/apache22/mod_authn_alias.so LoadModule authz_host_module libexec/apache22/mod_authz_host.so LoadModule authz_groupfile_module libexec/apache22/mod_authz_groupfile.so LoadModule authz_user_module libexec/apache22/mod_authz_user.so LoadModule authz_dbm_module libexec/apache22/mod_authz_dbm.so LoadModule authz_owner_module libexec/apache22/mod_authz_owner.so LoadModule authz_default_module libexec/apache22/mod_authz_default.so LoadModule auth_basic_module libexec/apache22/mod_auth_basic.so LoadModule auth_digest_module libexec/apache22/mod_auth_digest.so LoadModule file_cache_module libexec/apache22/mod_file_cache.so LoadModule cache_module libexec/apache22/mod_cache.so LoadModule disk_cache_module libexec/apache22/mod_disk_cache.so LoadModule mem_cache_module libexec/apache22/mod_mem_cache.so LoadModule dumpio_module libexec/apache22/mod_dumpio.so LoadModule reqtimeout_module libexec/apache22/mod_reqtimeout.so LoadModule include_module libexec/apache22/mod_include.so LoadModule filter_module libexec/apache22/mod_filter.so LoadModule charset_lite_module libexec/apache22/mod_charset_lite.so LoadModule deflate_module libexec/apache22/mod_deflate.so LoadModule log_config_module libexec/apache22/mod_log_config.so LoadModule logio_module libexec/apache22/mod_logio.so LoadModule env_module libexec/apache22/mod_env.so LoadModule mime_magic_module libexec/apache22/mod_mime_magic.so LoadModule cern_meta_module libexec/apache22/mod_cern_meta.so LoadModule expires_module libexec/apache22/mod_expires.so LoadModule headers_module libexec/apache22/mod_headers.so LoadModule usertrack_module libexec/apache22/mod_usertrack.so LoadModule unique_id_module libexec/apache22/mod_unique_id.so LoadModule setenvif_module libexec/apache22/mod_setenvif.so LoadModule version_module libexec/apache22/mod_version.so LoadModule ssl_module libexec/apache22/mod_ssl.so LoadModule mime_module libexec/apache22/mod_mime.so LoadModule dav_module libexec/apache22/mod_dav.so LoadModule status_module libexec/apache22/mod_status.so LoadModule autoindex_module libexec/apache22/mod_autoindex.so LoadModule asis_module libexec/apache22/mod_asis.so LoadModule info_module libexec/apache22/mod_info.so LoadModule cgi_module libexec/apache22/mod_cgi.so LoadModule dav_fs_module libexec/apache22/mod_dav_fs.so LoadModule vhost_alias_module libexec/apache22/mod_vhost_alias.so LoadModule negotiation_module libexec/apache22/mod_negotiation.so LoadModule dir_module libexec/apache22/mod_dir.so LoadModule imagemap_module libexec/apache22/mod_imagemap.so LoadModule actions_module libexec/apache22/mod_actions.so LoadModule speling_module libexec/apache22/mod_speling.so LoadModule userdir_module libexec/apache22/mod_userdir.so LoadModule alias_module libexec/apache22/mod_alias.so LoadModule rewrite_module libexec/apache22/mod_rewrite.so LoadModule gzip_module libexec/apache22/mod_gzip2.so LoadModule php5_module libexec/apache22/libphp5.so LoadModule perl_module libexec/apache22/mod_perl.so &lt;IfModule !mpm_netware_module&gt; &lt;IfModule !mpm_winnt_module&gt; User www Group www &lt;/IfModule&gt; &lt;/IfModule&gt; #ServerAdmin [email protected] ServerName localhost:80 DocumentRoot &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 configuration Include 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.conf Include 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.conf Include etc/apache22/extra/httpd-default.conf &lt;IfModule ssl_module&gt; SSLRandomSeed startup builtin SSLRandomSeed connect builtin &lt;/IfModule&gt; Include etc/apache22/Includes/*.conf
Редактируем файл /usr/local/etc/apache22/extra/httpd-mpm.conf до такого вида:
# 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 до такого вида:
&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 до такого вида:
Timeout 10 KeepAlive On MaxKeepAliveRequests 80 KeepAliveTimeout 10 UseCanonicalName Off AccessFileName .htaccess ServerTokens Prod ServerSignature On HostnameLookups 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 до такого вида:
[PHP] engine = On short_open_tag = On asp_tags = Off precision = 14 y2k_compliance = On output_buffering = 4096 zlib.output_compression = Off implicit_flush = Off unserialize_callback_func = serialize_precision = 100 allow_call_time_pass_reference = Off safe_mode = Off safe_mode_gid = Off safe_mode_include_dir = safe_mode_exec_dir = safe_mode_allowed_env_vars = PHP_ safe_mode_protected_env_vars = LD_LIBRARY_PATH disable_functions = disable_classes = expose_php = Off max_execution_time = 300 max_input_time = 300 memory_limit = 128M error_reporting = E_ALL | E_STRICT display_errors = On display_startup_errors = On log_errors = On log_errors_max_len = 1024 ignore_repeated_errors = Off ignore_repeated_source = Off report_memleaks = On track_errors = On html_errors = On variables_order = &quot;GPCS&quot; request_order = &quot;GP&quot; register_globals = Off register_long_arrays = Off register_argc_argv = Off auto_globals_jit = On post_max_size = 512M magic_quotes_gpc = Off magic_quotes_runtime = Off magic_quotes_sybase = Off auto_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 = Off file_uploads = On upload_max_filesize = 512M max_file_uploads = 20 allow_url_fopen = On allow_url_include = Off default_socket_timeout = 60 [Date] date.timezone = Europe/Kiev [filter] [iconv] [intl] [sqlite] [sqlite3] [Pcre] [Pdo] [Pdo_mysql] pdo_mysql.cache_size = 2000 pdo_mysql.default_socket= [Phar] [Syslog] define_syslog_variables = Off [mail function] SMTP = localhost smtp_port = 25 mail.add_x_header = On [SQL] sql.safe_mode = Off [ODBC] odbc.allow_persistent = On odbc.check_persistent = On odbc.max_persistent = -1 odbc.max_links = -1 odbc.defaultlrl = 4096 odbc.defaultbinmode = 1 [Interbase] ibase.allow_persistent = 1 ibase.max_persistent = -1 ibase.max_links = -1 ibase.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 = On mysql.allow_persistent = On mysql.cache_size = 2000 mysql.max_persistent = -1 mysql.max_links = -1 mysql.default_port = mysql.default_socket = mysql.default_host = mysql.default_user = mysql.default_password = mysql.connect_timeout = 60 mysql.trace_mode = Off [MySQLi] mysqli.max_persistent = -1 mysqli.max_links = -1 mysqli.cache_size = 2000 mysqli.default_port = 3306 mysqli.default_socket = mysqli.default_host = mysqli.default_user = mysqli.default_pw = mysqli.reconnect = Off [mysqlnd] mysqlnd.collect_statistics = On mysqlnd.collect_memory_statistics = On [OCI8] [PostgresSQL] pgsql.allow_persistent = On pgsql.auto_reset_persistent = Off pgsql.max_persistent = -1 pgsql.max_links = -1 pgsql.ignore_notice = 0 pgsql.log_notice = 0 [Sybase-CT] sybct.allow_persistent = On sybct.max_persistent = -1 sybct.max_links = -1 sybct.min_server_severity = 10 sybct.min_client_severity = 10 [bcmath] bcmath.scale = 0 [browscap] [Session] session.save_handler = files session.use_cookies = 1 session.use_only_cookies = 1 session.name = PHPSESSID session.auto_start = 0 session.cookie_lifetime = 0 session.cookie_path = / session.cookie_domain = session.cookie_httponly = session.serialize_handler = php session.gc_probability = 1 session.gc_divisor = 1000 session.gc_maxlifetime = 1440 session.bug_compat_42 = On session.bug_compat_warn = On session.referer_check = session.entropy_length = 0 session.entropy_file = session.cache_limiter = nocache session.cache_expire = 180 session.use_trans_sid = 0 session.hash_function = 0 session.hash_bits_per_character = 5 url_rewriter.tags = &quot;a=href,area=href,frame=src,input=src,form=fakeentry&quot; [MSSQL] mssql.allow_persistent = On mssql.max_persistent = -1 mssql.max_links = -1 mssql.min_error_severity = 10 mssql.min_message_severity = 10 mssql.compatability_mode = Off mssql.secure_connection = Off [Assertion] [COM] [mbstring] [gd] [exif] [Tidy] tidy.clean_output = Off [soap] soap.wsdl_cache_enabled=1 soap.wsdl_cache_dir=&quot;/tmp&quot; soap.wsdl_cache_ttl=86400 soap.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
и вписать такое содержимое:
&lt;?php&gt; phpinfo(); ?&gt;
После заходим по адресу http://ip.сервера/test.php мы должны увидеть такое