# make all-depends-list
для начала конфигурируем (все что можно сразу!!):
# make config-recursive
Теперь скачаем все необходимое сразу:
# make fetch-recursive
# sysrc apache24_enable=yes
Помимо настроек по-умолчанию, обязательно добавляем
CURL, DOM, POSIX, FTP, GD, HASH, ICONV, XML, JSON, MBSTRING, MYSQL, MYSQLI, OPENSSL, SOCKETS, TOKENIZER, XMLREADER, ZLIB, EXIF, GETTEXT,
# cd /usr/ports/www/mod_php73/
ee /usr/local/etc/apache24/Includes/php.conf
<IfModule dir_module>
DirectoryIndex index.php index.html
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
</IfModule>
LoadModule rewrite_module libexec/apache24/mod_rewrite.so
# apachectl -t
Syntax OK
# make install clean
# /usr/local/bin/mysql_secure_installation
CREATE USER drupal8@localhost IDENTIFIED BY "qwe34asd";
GRANT ALL ON drupal8.* TO drupal8@localhost IDENTIFIED BY "qwe34asd";
FLUSH PRIVILEGES;
cd /usr/ports/math/php5-gmp/
# cd /tmp/
# wget http://pecl.php.net/get/uploadprogress-1.0.3.1.tgz
# tar -zxvf uploadprogress-1.0.3.1.tgz
# cd uploadprogress-1.0.3.1
# phpize
# ./configure
# make
# make test
# make install
Installing shared extensions: /usr/local/lib/php/20090626/
Теперь необходимо в файле php.ini (обычно /usr/local/etc/php.ini)
или создадим
# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
#ee /usr/local/etc/php.ini
добавить следующие строки:
#apc.enabled="1"
#apc.shm_size="64M"
extension = "uploadprogress.so"
extension_dir = "/usr/local/lib/php/20090626/" # хоть так и правильно но у меня заработало без этой строчки
# cd /usr/ports/devel/pecl-uploadprogress
Отредактируем файл конфигурации для apache:
# ee /usr/local/etc/apache24/httpd.conf
Include etc/apache24/extra/httpd-vhosts.conf
MaxClients 200 #MaxClients указывает на максимальное количество одновременно созданных процессов apache
HostnameLookups Off #HostnameLookups разрешает или запрещает определение имени подключенного клиента (отключение, как в примере, ускоряет работу веб-сервера Apache)
Если вы раскомментировали подключение файла /etc/apache24/extra/httpd-vhosts.conf
редактируем его (удаляем все содержимое и оставляем написанное ниже):
<VirtualHost *:80>
ServerName /
DocumentRoot /usr/local/www/apache24/data
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /usr/local/www/apache24/vhosts/openpublish/www
ServerName openpublish.kiev.ua
ServerAlias www.openpublish.kiev.ua
ErrorLog "/var/log/openpublish_error_log"
CustomLog "/var/log/openpublish_access_log" common
<Directory "/usr/local/www/apache24/vhosts/openpublish/www/">
AllowOverride All
RewriteEngine On
Require all granted
DirectoryIndex index.php index.html index.htm
Order allow,deny
Allow from All
</Directory>
</VirtualHost>
Сохраняем файл, проверяем конфигурацию:
# apachectl -t
Syntax OK
Все в порядке, можно перезапускать Apache
# /usr/local/etc/rc.d/apache24 restart
Устанавливаем PhpMyAdmin
# cd /usr/ports/databases/phpmyadmin
# make all install clean
После установки создаем файл
# ee /usr/local/etc/apache24/Includes/phpmyadmin.conf
Вносим в файл содержимое:
Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/"
<Directory "/usr/local/www/phpMyAdmin/">
Options none
AllowOverride Limit
Order Deny,Allow
Require all granted
</Directory>
Установка и настройка nginx
Теперь будем настраивать наш frontend — nginx. Он будет смотреть в интернет и принимать запросы от пользователей,
чтобы потом их перенаправлять на apache. Идем в порты и устанавливаем:
# cd /usr/ports/www/nginx-devel
# make install clean
Выбираем опции:
[X] HTTP_MODULE Enable HTTP module
[X] HTTP_ADDITION_MODULE Enable http_addition module
[X] HTTP_DAV_MODULE Enable http_webdav module
[X] HTTP_FLV_MODULE Enable http_flv module
[X] HTTP_PERL_MODULE Enable http_perl module
[X] HTTP_REALIP_MODULE Enable http_realip module
[X] HTTP_REWRITE_MODULE Enable http_rewrite module
[X] HTTP_SSL_MODULE Enable http_ssl module
[X] HTTP_STATUS_MODULE Enable http_stub_status module
[X] HTTP_SUB_MODULE Enable http_sub module
[X] WWW Enable html sample files
Добавим nginx в автозагрузку:
# echo ‘nginx_enable=»YES»‘ >> /etc/rc.conf
Редактируем конфиг nginx /usr/local/etc/nginx/nginx.conf, приводим его к следующему виду:
worker_processes 1; #число ядер проца
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main ‘$remote_addr — $remote_user [$time_local] «$request» ‘
‘$status $body_bytes_sent «$http_referer» ‘
‘»$http_user_agent» «$http_x_forwarded_for»‘;
sendfile on;
keepalive_timeout 65;
gzip on;
server {
listen 145.152.71.220:80;
server_name localhost;
location / {
proxy_pass http://127.0.0.1;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_send_lowat 12000;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_temp_path /var/tmp/nginx;
}
}
}
В строке
listen 145.152.71.220:80;
Указываем свой внешний ip адрес. Проверяем настройки nginx:
# nginx -t
Если видите:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
значит все в порядке.
Теперь необходимо изменить конфигурацию apache, чтобы он слушал только локальный интерфейс 127.0.0.1, а все внешние запросы принимал nginx и перенаправлял к apache. Меняем в /usr/local/etc/apache24/httpd.conf строку с параметром Listen, приводим к виду:
Listen 127.0.0.1:80
Перезапускаем apache:
# /usr/local/etc/rc.d/apache24 restart
Запускаем nginx:
# /usr/local/etc/rc.d/nginx start
Наш веб сервер готов. Теперь проверим его работу. Создадим в папке /web/sites/websrv.local/www файл index.php с содержимым
<?php phpinfo(); ?>
Заходим в браузере по адресу http://openpublish.kiev.ua
Если вы видите информацию о версии php и его модулях, значит все настроено и работает.
Коментувати