Будем делать веб сервер формата 1u для размещение в Дата-Центре по плану colocation!… конечно хотелось бы иметь 1u сервер, но вместо него будет обычный ПК, хотелось бы иметь collocation в дата-центре, но вместо него будет бесплатный хостинг в i2p сети!
Ингредиенты:
1. FreeBSD сервер подготовленный по рецепту Создаем шлюз на FreeBSD и Wi-Fi точку доступа!
2. Putty
У нас уже может быть(из предыдущих рецептов) быть установлен Apache, PHP, MySQL и всё бы хорошо еслибы не Apache — для архаичных вебморд, которые не на что больше не настраиваются, он подходит, а для хоть сколько нибудь нагруженных веб сайтов уже нет. Так что будет ставить Nginx!
Ставим MYSQ (если уже не ставили)
Версия 5.0, апгрейдить не будем чтобы Netams работал, он только с этой версией!
При установке соглашаемся на все, особого чего то выбирать не надо!
cd /usr/ports/databases/mysql50-server/ make install
Создаем базу и даем права на папку!
/usr/local/bin/mysql_install_db chown -R mysql /var/db/mysql/ chgrp -R mysql /var/db/mysql/ /usr/local/bin/mysqld_safe /usr/local/bin/mysqladmin -u root password svoi_parol_dlya_mysql
Добавляем в rc.conf
mysql_enable="YES"
Создаем файл my.cnf
vi /etc/my.cnf
добавляем в него строки
[mysqld] key_buffer=256M table_cache=128 read_buffer=1012K sort_buffer=1556K join_buffer_size=2024K max_connections=30 wait_timeout=5 max_connect_errors=5 query_cache_limit=2M query_cache_size=60M query_cache_type=1 low_priority_updates=1 concurrent_insert=2 thread_concurrency=4 connect_timeout=10 interactive_timeout=10
Перезагружаемся
reboot
Заходим в консоль Mysql
mysql -u root -p
Выполняем команду
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'svoi_parol_dlya_mysql' WITH GRANT OPTION;
выходим
exit;
Устанавливаем Apache
Для чистого веб сервера он не нужен! Но у меня из предыдущих рецептов стоит для вебинтерфейсов SAMS, Netams — он не пемешает Nginx!
Теперь устанавливаем PHP5
Начиная с версии 5.3.3 php-fpm внедрен в PHP,так что надо обновить PHP(если он уже стоить) или поставить снова но с новыми галочками!
Порты мы на прошлой неделе обновляли после установки, так что у нас точно свежая версия всего!
Если стоит старая версия из ветки 5.3 её надо удалить
cd /usr/ports/lang/php5/
Если стоит старая версия из ветки 5.3 её надо удалить
make deinstall
Настраиваем
make config
Тут выбираем
[X] FPM
Не трогаем апач если нужен
[X] Apache
make clean install
Далее устанавливаем
cd /usr/ports/lang/php5-extensions make config
должны быть выбраны пункты
[X] MySQL
[X] SOAP
[X] OPENSSL (на всякий)
[X] GD
make install
Сидим над установкой соглашаемся на все что предлагает, если будет ругаться на python 2.5 установить его отдельно из портов и повторить.
Смотрим /usr/local/etc/apache22/httpd.conf
должно стоять
LoadModule php5_module libexec/apache22/libphp5.so
В папке /usr/local/etc/ лежать готовы варианты настроек копируем одну из них в
cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
Редактируем php.ini
Стоит увеличить размер памяти в некоторых настройках он мал
memory_limit = 128M
Общая рекомендация держать выключенным globals
register_globals = Off
Редактируем php-fpm.conf
vi /usr/local/etc/php-fpm.conf
Меняем
listen = 127.0.0.1:9000
на
listen = /tmp/phpfpm.sock
Меняем
pm = dynamic
на
pm = static
Меняем
pm.max_children = 50
на
pm.max_children = 4
Это число рекомендуют ставить в два раза больше чем процессов Nginx (а оно обычно равно количеству ядер процессора)!
Задаем
php_admin_value[memory_limit] = 128M
Да и кстати тут вот это тоже
listen.owner = www listen.group = www listen.mode = 0660
Добавляем
vi /etc/rc.conf
строчку
php_fpm_enable="YES"
Устанавливаем memcached
cd /usr/ports/databases/memcached make install
Добавляем
vi /etc/rc.conf
строки
memcached_enable="YES" memcached_flags="-l 127.0.0.1"
Так устанавливаем
cd /usr/ports/databases/pecl-memcache make install
если ругается на
Configuring for: PHP Api Version: 20090626 Zend Module Api No: 20090626 Zend Extension Api No: 220090626 autoconf: required version 2.68 not found
то перед установкой
cd /usr/ports/devel/autoconf make install cd /usr/ports/devel/autoconf-wrapper make deinstall make install
Вставляем(если её там нет) в
vi /usr/local/etc/php/extensions.ini
строку
extension=memcache.so
Перезагружаемся
reboot
Устанавливаем Nginx
cd /usr/ports/www/nginx make install clean
Предлагается на выбор много разных модулей нам ничего особого не понадобиться всё по умолчанию!
Добавляем
vi /etc/rc.conf
строчку
nginx_enable="YES"
Редактируем настройки
vi /usr/local/etc/nginx/nginx.conf
Так как у нас два ядра на процессоре
worker_processes 2;
Имя владелца папки с файлами сайта
user www;
Приводим к такому виду
user www; worker_processes 2; #error_log /var/log/nginx/error.log; #error_log /var/log/nginx/error.log notice; #error_log /var/log/nginx/error.log info; pid /var/run/nginx.pid; events { worker_connections 2024; } http { include /usr/local/etc/nginx/mime.types; default_type application/octet-stream; access_log off; error_log off; server_tokens off; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; proxy_buffers 8 512k; proxy_buffer_size 256k; proxy_intercept_errors on; proxy_connect_timeout 130; proxy_read_timeout 130; proxy_send_timeout 130; include /usr/local/etc/nginx/www1.conf; }
Создаем в тойже папке конфиг для сайта
vi /usr/local/etc/nginx/www1.conf
Добавляем
server { listen 192.168.1.107:45631; server_name itcooky.i2p; root /usr/local/www/itcooky.i2p; index index.php index.htm; #error_log /var/log/nginx/ml_error.log; error_page 502 505 504 /50x.html; location = /50x.html { root /usr/local/www/itcooky.i2p; } error_page 404 403 /404.html; location = /404.html { charset windows-1251; root /usr/local/www/itcooky.i2p; } fastcgi_intercept_errors off; location ~* \.(?:ico|css|js|gif|jpe?g|png)$ { expires max; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; } location ~ \.(php)$ { fastcgi_pass unix:/tmp/phpfpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/www/itcooky.i2p$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } location ~ \.(html|cgi|pl|shtml) { deny all; } }
Файл создан из рекомендованных конфигурация для WordPress c плагином W3C total cash в связке c memcached!
Отдельно прописаны пути к страницам ошибок!
Создаем директорию
mkdir /usr/local/www/itcooky.i2p
Юзера www у нас уже был создан при установке от него будет работать php-fpm и nginx
Перезагружаемся
reboot
Открываем порт для Nginx
Добавляем в rc.firewall
vi /etc/rc.firewall
строку в разделе разращенных поротов
${FwCMD} add allow tcp from any to ${ipout} 45631 in via ${lanin} setup
Перезагружаем ipfw
/etc/rc.d/ipfw restart
Создаем тестовый файл
vi /usr/local/www/itcooky.i2p/phpinfo.php
Вставляем
<?php print_r (phpinfo()); ?>
Заходим по адресу http://192.168.1.107:45631/phpinfo.php и видим информацию о версии php — заработало!
Устанавливаем WordPress
Идем в нашу папку
cd /usr/local/www/itcooky.i2p
Качаем и разархивируем последнею версию, перемешаем её в корень папки сайта!
fetch http://ru.wordpress.org/wordpress-3.2.1-ru_RU.tar.gz tar xvfz wordpress-3.2.1-ru_RU.tar.gz mv /usr/local/www/itcooky.i2p/wordpress/* /usr/local/www/itcooky.i2p/ chgrp -R www /usr/local/www/itcooky.i2p/ chown -R www /usr/local/www/itcooky.i2p/ chmod 755 /usr/local/www/itcooky.i2p/wp-content
Создаем базу и пользователя для базы WordPress
Заходим в консоль Mysql
mysql -u root -p
Если вы опять забыли root пароль, как я, то можно его скинуть!
/usr/local/etc/rc.d/mysql-server stop
Создаем файл
vi /root/mysql.reset.sql
со строками
UPDATE mysql.user SET Password=PASSWORD('YOUR-NEW-MYSQL-PASSWORD') WHERE User='root'; FLUSH PRIVILEGES;
Перезапускам
mysqld_safe --init-file=/root/mysql.reset.sql &
Дожидаемся, а можно и не дожидаться когда закончится делаем
killall mysqld /usr/local/etc/rc.d/mysql-server start
Заходим в консоль Mysql
mysql -u root -p
Выполняем команду
CREATE DATABASE wordpress; CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON wordpress.* to 'wordpress'@'localhost'; exit;
Заходим на
http://192.168.1.107:45631/
и следуем инструкция по установке!
Потом настраиваем WordPress под себя. В разделе плагинов устанавливаем:
W3 Total Cache
(в его настройках активируем пункты (кроме Minify) где есть в Page Cache Method: Memcached — и у него надо будет отключить preview mode после сохранения новых настроек)
Traffic Counter Widget
тему
BlogoLife
Параметры
>
Общие
меняем IP адрес на itcooky.i2p адрес! Весь функционал после интеграции с i2p сетью сохранится, единственное перестанет работать Flash загрузчик файлов, но будет работать загрузчик браузера!
Теперь заходим в консоль i2p по нашему адресу http://192.168.1.107:7657/
В
Локальные туннели
создаем новый HTTP туннель (в разделе
Серверные I2P туннели
в низу
Новый серверный туннель:
)
Заполняем первую часть вводим наше имя, адрес как в nginx, ставим галочку авто запускаться!
После запуска можно наблюдать внизу слева наш новый туннель сайт!
Local itcooky.i2p
Идем опять в
Локальные туннели
копируем ссылку на кнопке
Предпросмотр
это наш полный адрес b32 лучше для доступа передавать его!
fpprghfrrwc4sbvnuzmnruk2es5mhhf7gkh3jha4cczwd2rl7sgq.b32.i2p
itcooky.i2p/
Через кокоето незначительное время, сайт начинает открываться по .b32.i2p ссылке!
После того как сайт заработает на все сто — прописываем наш сайт в stats.i2p, там тоже говорят надо подождать 4 дня чтобы у большинства появилась ссылка на новый сайт! Это очень важный момент если имя i2p и код адреса хоста расползутся по сети их уже нельзя буде изменить, адрес хоста так и останется за этим именем — это на доступность не влияет, но вносит путаницу! Вообще имя не важно главное 64 битный ключ адреса хоста который запишется в локальную адресную книгу!
Или вот тут inr.i2p
Добавить комментарий