Настройка Debian 6 + PHP 5.4 + PHP-FPM + MySQL + Bitrix. Настройка debian под битрикс
Почемучка любопытного » Как поднять Debian сервер под хостинг 1С-Битрикс
Цель:
Создать сервер для хостинга проектов на 1С-Битрикс.Оборудование:
CPU: Intel® Xeon® E3-1245 (Quad-Core)RAM: 16 GB DDR3 RAM ECCHDD: 2 x 3 TB SATA 6 Gb/s HDD 7200 rpm (RAID 1)ОС:
Debian 6 (64bit), чистая минимальная установкаОглавление
1. Начальная настройка и подготовка сервера2. Установка Apache, MySQL, PHP3. Настройка Apache4. Настройка MySQL5. Настройка PHP6. Настройка FTP7. Настройка iptables8. Оптимизация
1. Начальная настройка и подготовка сервера
Меняем время на нужное для нас
1
2 3 4 |
# rm /etc/localtime # ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime |
Убаждаемся, что команда hostname выдает правильное имя сервера. Это же имя должно быть в файле /etc/hosts напротив IP-адреса. Если такоего нет, задаем:
Файл /etc/hosts:
1
2 3 4 |
127.0.0.1 localhost 5.9.94.197www.vcore.ru |
Для начала добавляем репозитории, откуда будут браться пакеты. Их два — репозиторий Zend и репозиторий, откуда мы будем устанавливать MySQL версии 5.5В файл /etc/apt/sources.list добавляем следующие строчки:
1
2 3 4 5 6 7 |
## Zend Server deb http://repos.zend.com/zend-server/deb server non-free ## MySQL Server 5.5 deb http://packages.dotdeb.org squeeze all deb-src http://packages.dotdeb.org squeeze all |
Добавляем ключи репозиторием:
Обновляем установленные пакеты (если есть такие):
1
2 3 4 |
# apt-get update # apt-get upgrade |
2. Установка Apache, MySQL, PHP
Ставим сразу все. Это все одна длинная-длинная строчка.
1
2 3 |
# apt-get install zend-base libapache2-mod-php-5.3-zend-server php-5.3-xmlrpc-zend-server php-5.3-optimizer-plus-zend-server php-5.3-zem-zend-server php-5.3-curl-zend-server php-5.3-data-cache-zend-server php-5.3-mbstring-zend-server php-5.3-mcrypt-zend-server php-5.3-memcache-zend-server php-5.3-mysql-zend-server php-5.3-mysqli-zend-server php-5.3-gd-zend-server php-5.3-ctype-zend-server php-5.3-json-zend-server php-5.3-dev-zend-server mysql-server |
Я не стал ставить phpmyadmin, потому что не хочу давать напрямую доступ к базе. Любую работу с БД можно производить через панель управления Битрикс, а администратору проще все делать через консоль.
3. Настройка Apache
Все настройки сайтов будут храниться в папке /etc/apache2/sites-enabled/
Там уже есть один сайт по умолчанию 000-defaul. Я создаю сайты по следующему принципу <трехзначный номер клиента>-<домен>. Т.е. все сайты с индексом 000 — это сайты, которые принадлежат владельцу сервера. Сайты с индексом 001 — это первый клиент, 002 — второй клиент и т.д. <домен> — это... как ни странно... домен.
Я покажу пример настройки двух своих сайтов. Файлы одинаковые, за исключением переменных ServerName, ServerAlias, DocumentRoot и директории сайта. Так же, надо помнить, что для Битрикс надо устанавливать значение AllowOverride All, чтобы обрабатывались файлы .htaccess.
/etc/apache2/sites-enabled/000-default:
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 |
<VirtualHost *:80> ServerName www.vcore.ru ServerAlias vcore.ru ServerAdmin [email protected] DocumentRoot /var/www/vcore.ru/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/vcore.ru/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel error CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
/etc/apache2/sites-enabled/000-shieldz.ru:
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 |
<VirtualHost *:80> ServerName www.shieldz.ru ServerAlias shieldz.ru ServerAdmin [email protected] DocumentRoot /var/www/shieldz.ru/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/shieldz.ru/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel error CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Сами сайты хранятся в папке /var/www/Устанавливаем права:
1
2 3 4 |
# chown -R www-data:www-data /var/www/* # chmod -R 755 /var/www/* |
Если вы работаете с файлами сайта через консоль, то владельцем файла или папки становитс тот пользователь, от которого вы работаете. После внесения любых изменений в файлы сайта, лучше заново выполнять команду chown.
Пока что на этом все. Apache запускать еще рано. Не торопимся.
4. Настройка MySQL
Тип всех таблиц в базах данных я устанавливаю в InnoDB, соответственно файл конфигурации будет приведен под максимальную производительность именно InnoDB, а не MyISAM.
Первое, что необходим сделать — это обезопасить базу данных. Пароль администратора спрашивался в процессе установки. Нам остается лишь выполнить следующую команду, которая предложит сменить пароль администратора, удалить временные базы и пользователей, а так же запретит удаленное подключение пользователю root.
1
2 3 |
# mysql_secure_installation |
К сожалению, база данных уже будет запущена. Почему к сожалению? Потому что дальше будет ошибка.А пока что заходим в бд и убеждаемся, что нет записей с пустыми паролями
1
2 3 4 |
> USE mysql; > SELECT host, user, password FROM user; |
Если есть пустые пароли, меняем их
1
2 3 |
> SET PASSWORD FOR '<пользователь>'@'<хост>' = PASSWORD('<пароль>'); |
Далее, нам надо создать файл конфигурации. За основу берем файл my-huge.cnf, которые доступен в качестве примера в документации к MySQL. Забираем этот файл.
1
2 3 4 5 |
# cd /usr/share/doc/mysql-server-5.5/examples/ # gunzip my-huge.cnf.gz # cp my-huge.cnf /etc/mysql/my.cnf |
Файл /etc/mysql/my.cnf (с комментариями в ключевых моментах):
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 |
[client] port= 3306 socket= /var/run/mysqld/mysqld.sock [mysqld] port= 3306 socket= /var/run/mysqld/mysqld.sock skip-external-locking # задаем максимальное число подключений # я бы не стал задавать больше 300, если вы не знаете зачем это max_connections = 250 # со всеми этими параметрами можно поиграть для улучшения производительности # для меня эти работают наиболее удачно # в основном они относятся к таблицам MyISAM, а не InnoDB key_buffer_size = 64M thread_stack = 128K max_allowed_packet = 1M join_buffer_size = 8M sort_buffer_size = 8M read_buffer_size = 8M read_rnd_buffer_size = 8M myisam_sort_buffer_size = 64M thread_cache_size = 16 query_cache_size = 128M query_cache_limit = 1M # судя по тестам, значение в 2000 является наиболее удачным table_cache = 2048 # Количество ядер процессора умножаем на 2 thread_concurrency = 8 # рекомендация Битрикс transaction-isolation= READ-COMMITTED # указываем, что хотим по умолчанию использовать innodb default-storage-engine= innodb # кодировка по умолчанию character-set-server= utf8 collation-server= utf8_general_ci innodb_data_home_dir = /var/lib/mysql innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend innodb_log_group_home_dir = /var/lib/mysql # выставляем значение где-то 50 - 80 % от объема оперативной памяти innodb_buffer_pool_size = 4G innodb_additional_mem_pool_size = 20M # не более 25 % от размера innodb_buffer_pool_size innodb_log_file_size = 256M innodb_log_buffer_size = 8M # рекомендация Битрикс innodb_flush_log_at_trx_commit = 2 # рекомендация Битрикс innodb_flush_method = O_DIRECT innodb_lock_wait_timeout = 50 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [myisamchk] key_buffer_size = 256M sort_buffer_size = 256M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout |
Вот теперь-то и возникает та оишбка, о которой я говорил раньше. Нам надо перезагрузить сервер MySQL. Но сделать это не получится.
Останаливаем сервер БД и удаляеем следующие файлы:
1
2 3 4 5 |
# /etc/init.d/mysql stop # rm /var/lib/mysql/ib* # /etc/init.d/mysql start |
Все. На этом настройки сервера баз данных завершились. Напоследок, если вы все же решились работать с базами данных через консоль, а не через phpmyadmin, то вот несколько полезных команд.
Все команды выполняются через консоль бд, т.е. сначала надо войти в нее:
Создание базы данных:
1
2 3 |
> CREATE DATABASE <имя бд>; |
Назначение прав на базу данных (обращаем внимание на кавычки):
1
2 3 4 |
> GRANT ALL PRIVILEGES ON <имя бд>.* TO '<имя пользователя>'@'localhost' IDENTIFIED BY '<пароль>'; > FLUSH PRIVILEGES; |
Восстановление базы данных из бекапа (эта команда выполняется просто из консоли):
1
2 3 |
# mysql -u root -p <имя бд> < <файл.sql> |
5. Настройка PHP
Настроек PHP не так уж и много. Выполняем рекомендации и требования 1С-Битрикс и делаем следующие изменения в файле /usr/local/zend/etc/php.ini:
1
2 3 4 5 6 |
allow_call_time_pass_reference = On realpath_cache_size = 4096K upload_max_filesize = 20M date.timezone = "Europe/Moscow" |
Перезагружаем веб-сервер:
1
2 3 |
# /etc/init.d/apache2 restart |
6. Настройка FTP
Устанавливаем ProFTPD
1
2 3 |
# apt-get install proftpd |
В файле /etc/proftpd/proftpd.conf я лишь внес следующие изменения:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
ServerName"vCore LTD FTP Server" RootLogin off MaxLoginAttempts5 AllowRetrieveRestart on AllowStoreRestart on DirFakeGroup on tcpNoDelay on DeleteAbortedStores on AllowForeignAddress on UseReverseDNS off RequireValidShell off PassivePorts49152 49155 |
Как создавать пользователей? Легко, командой useradd— d — домашнаяя директория пользователя (т.е. то, где находится сайт)— g — группа, к которой принадлежит пользователь— M — не надо создавать домашнюю директорию— N — не создавать одноименную группу с именем пользователя
1
2 3 |
# useradd -d /var/www/vcore.ru -g www-data -M -N vcore |
Далее задаем пароль для созданного пользователя
7. Настройка iptables
Создаем файл /etc/iptables.rules со следующим содержанием:
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 |
*filter # Разрешаем любой траффик на интерфейс lo0, а весь траффик 127/8 блокируем, если он не идет черерз lo0 -A INPUT -i lo -j ACCEPT -A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT # Пропускаем установленные входящие -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Разрешаем любой исходящий -A OUTPUT -j ACCEPT # Разраешаем HTTP и HTTPS -A INPUT -p tcp --dport 80 -j ACCEPT -A INPUT -p tcp --dport 443 -j ACCEPT # Разрешаем SSH # --src 123.123.123.123 - это адрес, откуда пускать ssh, можно указать несколько адресов через запятую -A INPUT -p tcp -m state --state NEW --dport 22 --src 123.123.123.123 -j ACCEPT # Разрешаем FTP # можно использовать --src, как и в предыдущем примере, если пускать надо лишь с определенных адресов -A INPUT -p tcp -m state --state NEW --dport 21 -j ACCEPT -A INPUT -p tcp -m state --state NEW --dport 49152 -j ACCEPT -A INPUT -p tcp -m state --state NEW --dport 49153 -j ACCEPT -A INPUT -p tcp -m state --state NEW --dport 49154 -j ACCEPT -A INPUT -p tcp -m state --state NEW --dport 49155 -j ACCEPT # Разрешаем пинг -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT # Заносим в лог всё запрещенное -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 # Запрещаем все остальное (политика "запрещаем все, если не указано иначе") -A INPUT -j REJECT -A FORWARD -j REJECT COMMIT |
Далее, чтобы правлиа заработали выполняем следующую команду:
1
2 3 |
# iptables-restore < /etc/iptables.rules |
Оптимизация
Самый большой прирост в производительности (по крайней мере в мониторе производительности в Битрикс) дает включение APC-кеша. Для этого надо в файле bitrix/php_interface/dbconn.php добавить следующие строчки:
1
2 3 4 |
define("BX_CACHE_TYPE", "apc"); define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]); |
Найдена статья на сайте vanyukov_su .
www.6vl.ru
Настройка сервера под Bitrix | Debian | Git | node.js | PHP
Нужно развернуть WDS под Bitrix с установкой и переносом со старого WDS: NodeJS, Git
Настроить virtualmin
Корректная настройка прав, свой php для каждого сайта.
Перенос со старого VDS 50 сайтов (из них 3 неткат, 2 джумла и 1 питон)
Skills: Debian, Git, node.js, PHP, SQL
See more: joomla bitrix, bitrix intranet template, bitrix framework content management system, bitrix joomla, nodejs php online status, install virtualmin php, chat php nodejs, virtualmin centos php, cms bitrix integration, centos virtualmin php, virtualmin php extensions, php mail virtualmin, virtualmin php, psd html bitrix, virtualmin script installer php, virtualmin php script installer, bitrix goldmine, bitrix freelance, php git xhtml, virtualmin php api
( 1 review ) Rostov-on-Don, Russian FederationProject ID: #11094486
www.freelancer.com
Настройка Debian 6 + PHP 5.4 + PHP-FPM + MySQL + Bitrix — Do less!
Ниже приведен алгоритм настройки и конфиги #VPS с Debian 6 32bit, 128Мб оперативной памяти и 128Мб свопа для комфортной работы на нем 1C-Битрикс:Стандарт.
Обновление системы и настройка необходимых репозиториев
apt-get update && apt-get -y upgrade && apt-get -y install mc htopПодключаем репозитории Dotdeb, для того что бы установить PHP5.4 + PHP-FPM:
- Добавьте в файл: /etc/apt/sources.list следующие строки:
- Для инсталяции PHP 5.4 на Debian 6.0 “Squeeze” нужно добавить строки:
- Установите ключи доступа к репозиторию GnuPG key
- Обновите систему: # apt-get update && apt-get -y upgrade
Устновка и настройка PHP+NGINX+MYSQL
apt-get -y install mysql-server-5.5 nginx apt-get -y install php5-fpm php5-gd php5-curl php5-mcrypt php5-json php5-apc php5-mysqlНастройки PHP
/etc/php5/php.ini дописать в конец файла строки:
;allow_call_time_pass_reference = On ;bitrix-env max_execution_time = 300 ;bitrix-env error_reporting = E_ALL & ~E_NOTICE ;bitrix-env display_errors = On ;bitrix-env post_max_size = 24M ;bitrix-env enable_dl = Off ;bitrix-env upload_max_filesize = 24M ;bitrix-env ;define_syslog_variables = 1 ;bitrix-env mbstring.func_overload = 2 ;bitrix-env mbstring.internal_encoding = UTF-8 ;bitrix-env ;extension=geoip.so ;bitrix-env ;extension=xdebug.so ;bitrix-env ;mysql.default_socket = /var/lib/mysqld/mysqld.sock ;bitrix-env ;sendmail_path = msmtp -t -i ;bitrix-env session.save_path = /temp/sessions/ ;bitrix-env session.cookie_lifetime = 592000 session.gc_probability = 1 session.gc_divisor = 500 session.gc_maxlifetime = 104800 realpath_cache_size = 4096k ;bitrix-env max_file_uploads = 100 ;bitrix-env date.timezone = 'Europe/Moscow' ;sendmail_path = /usr/lib/sendmail -t -i -f [email protected]Обратите внимание, что нужно создать папку для сессий: /temp/sessions/ — с правами на запись пользователю www-data.
в /etc/php5/mods-available/apc.ini дописать:
extension=apc.so apc.ttl = 30 apc.max_file_size = 4MНастройка хоста /etc/php5/pool.d/www.conf сводится к исправлению работы через сокет, на TCP: Меняем:
listen = /var/run/php5-fpm.sockна
listen = 127.0.0.1:9000Настройки Mysql
[client] port = 3306 socket = /var/run/mysqld/mysqld.sock [mysqld_safe] socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] # # * Basic Settings # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp # lc-message-dir is unknown to MySQL 5.1 #lc-messages-dir = /usr/share/mysql skip-external-locking # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 127.0.0.1 # # * Fine Tuning # table_open_cache = 256 key_buffer = 4M max_allowed_packet = 16M thread_stack = 192K thread_cache_size = 8 # This replaces the startup script and checks MyISAM tables if needed # the first time they are touched myisam-recover = BACKUP max_connections = 4 table_cache = 256 #thread_concurrency = 10 # # * Query Cache Configuration # query_cache_limit = 1M query_cache_size = 2M # # * Logging and Replication # # Both location gets rotated by the cronjob. # Be aware that this log type is a performance killer. # As of 5.1 you can enable the log at runtime! #general_log_file = /var/log/mysql/mysql.log #general_log = 1 # # Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf. # # Here you can see queries with especially long duration #slow_query_log = 1 #slow_query_log_file = /var/log/mysql/mysql-slow.log #long_query_time = 2 #log-queries-not-using-indexes # # The following can be used as easy to replay backup logs or for replication. # note: if you are setting up a replication slave, see README.Debian about # other settings you may need to change. #server-id = 1 #log_bin = /var/log/mysql/mysql-bin.log #expire_logs_days = 10 #max_binlog_size = 100M #binlog_do_db = include_database_name #binlog_ignore_db = include_database_name # # * InnoDB # # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. # Read the manual for more InnoDB related options. There are many! # # * Security Features # # Read the manual, too, if you want chroot! # chroot = /var/lib/mysql/ # # For generating SSL certificates I recommend the OpenSSL GUI "tinyca". # # ssl-ca=/etc/mysql/cacert.pem # ssl-cert=/etc/mysql/server-cert.pem # ssl-key=/etc/mysql/server-key.pem innodb_flush_log_at_trx_commit = 2 innodb_flush_method = O_DIRECT transaction-isolation = READ-COMMITTED innodb_buffer_pool_size = 32M [mysqldump] quick quote-names max_allowed_packet = 16M [mysql] #no-auto-rehash # faster start of mysql but no tab completition [isamchk] key_buffer = 8M # # * IMPORTANT: Additional settings that can override those from this file! # The files must end with '.cnf', otherwise they'll be ignored. # !includedir /etc/mysql/conf.d/Настройки Nginx
/nginx/nginx.conf
user www-data; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/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"'; access_log /var/log/nginx/access.log main; ## Proxy proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffers 8 16k; proxy_buffer_size 32k; ## Compression gzip on; gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript; gzip_disable "MSIE [1-6].(?!.*SV1)"; ### TCP options tcp_nodelay on; tcp_nopush on; keepalive_timeout 10; sendfile on; # include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; }/etc/nginx/sites-enabled/default
server { listen 80; server_name domainname.ru; root /var/www; index index.php; access_log /var/log/nginx/$host-access.log; autoindex off; gzip on; # use gzip compression gzip_proxied any; # enable proxy for the fcgi requests location / { try_files $uri $uri/ @bitrix; } location ~ \.php$ { # fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param QUERY_STRING $args; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SERVER_NAME $server_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_USER $remote_user; fastcgi_intercept_errors on; fastcgi_ignore_client_abort off; fastcgi_connect_timeout 60; fastcgi_send_timeout 180; fastcgi_read_timeout 180; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } location @bitrix { #fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/bitrix/urlrewrite.php; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ { access_log off; expires max; } location ~ (/\.ht|/bitrix/modules|/upload/support/not_image) { deny all; } location ~ /.svn/ { deny all; } error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }- P.S. Статья обновляется.
doless.ru
Настройка сервера под Bitrix | Debian | Git | node.js | PHP
Нужно развернуть WDS под Bitrix с установкой и переносом со старого WDS: NodeJS, Git
Настроить virtualmin
Корректная настройка прав, свой php для каждого сайта.
Перенос со старого VDS 50 сайтов (из них 3 неткат, 2 джумла и 1 питон)
Habilidades: Debian, Git, node.js, PHP, SQL
Veja mais: joomla bitrix, bitrix intranet template, bitrix framework content management system, bitrix joomla, nodejs php online status, install virtualmin php, chat php nodejs, virtualmin centos php, cms bitrix integration, centos virtualmin php, virtualmin php extensions, php mail virtualmin, virtualmin php, psd html bitrix, virtualmin script installer php, virtualmin php script installer, bitrix goldmine, bitrix freelance, php git xhtml, virtualmin php api
( 1 comentário ) Rostov-on-Don, Russian FederationID do Projeto: #11094486
www.br.freelancer.com
Сервер на ubuntu, для Битрикс
Расскажу как по быстрому сконфигурировать WEB сервер для работы с Битрикс. Безо всяких nginx и прочего, для высоконагруженных проектов конечно не пойдет, но "просто сайт" вполне полетит. Итак после установки на ноутбук Sumsung P29 (ему вот уже 9 лет) с конфигурацией Celeron M- 1.4 Ghz, 700 Мб. оперативной памяти, жесткий IDE на 40 гигов, словом тот еще драндулет- установка Битрикс: Малый Бизнес 12, решение интернет магазин выдает 52 балла производительности, все параметры самую капельку выше эталона.
Итак устанавливем основу
Устанавливаем Apache
sudo apt-get install apache2
Установка PHP и библиотеки для работы с графикой:
apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libruby libapache2-mod-ruby
Чтобы Apache подхватил только что установленный PHP перезагрузим его командой:
sudo apache2ctl restart
Установка MySQL
sudo apt-get install mysql-server
в процессе установки попросит ввести пароль, придумайте самостоятельно
Установка PhpMyAdmin
sudo apt-get install phpmyadmin
в процессе запросит пароль от MYSQL - тот самый что вводили выше. Все основа готова, на этом вполне заработает сайт.
Запиливаем под Битрикс
Для повышения производительности, да и вообще по требованиям Битрикс к серверу, на нем должен быть установлен APC (на самом деле не только он подходит, можно поставить eAccelerator, XChache и.т.д)
Устанавливаем оной вводя команды по одной (хотя наверное можно и хором)
sudo apt-get install php-pear sudo apt-get install php5-dev apache2-prefork-dev build-essential sudo pecl install apc
Дальше создаем и открываем файл настроек APC
nano /etc/php5/conf.d/apc.ini
прямо туда копируем вот это
extension=apc.so realpath_cache_size=4096k apc.ttl=1 apc.max_file_size=4M apc.shm_size=128M //вот тут достаточно и 96М, но я предпочитаю 128
Теперь ускорим работу MYSQL
открываем
nano /etc/mysql/my.cnf
и добавляем в него (можно куда-нибудь в середину)
innodb_flush_log_at_trx_commit = 0 innodb_buffer_pool_size = 128M innodb_flush_method = O_DIRECT transaction-isolation = READ-COMMITTED table_open_cache = 600 //тут самостоятельно
ну вот и все, остально, например php.ini уже докручивайте на свое усмотрение, с этими настройками Битрикс вполне летает на компе средней паршивости
Дополнение с демагогией - установка memcache на ubuntu server с битрикс сайтом, для ускорения (под высоконагруженные проекты, для всякой мелочевки не стоит заморачиваться)
PS: установка Webmin на ubuntu. Что бы было проще:
Добавляем необходимые пакеты
apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions
Скачиваем ключи
wget http://www.webmin.com/jcameron-key.asc
Добавляем их
apt-key add jcameron-key.asc
Добавляем в самый конец sources.list
nano /etc/apt/sources.listdeb http://download.webmin.com/download/repository sarge contrib
Скачиваем ключи
wget http://www.webmin.com/jcameron-key.asc
Обнавляемся и устанавливаем webmin
sudo apt-get updatesudo apt-get install webmin
Дожидаемся конца установки и после WEBMIN доступен по адресу
https://ВАШ_IP:10000
И еще одна маленькая вещь
Лично я держу пару таких серверов на домашнем компьютере. То есть на однй, достаточно мощной машине установлено 5 виртуальных машин с простенькими параметрами. Так у меня роутер, и виртуальные машины получают IP адреса по DHCP. необходимо задать им статичные IP адреса. По большей сути это актуально и для еденичного компьютера в домашней сети
Идем в nano /etc/network/interfaces и приводим к виду:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5).# The loopback network interface auto lo iface lo inet loopback
# The primary network interface auto eth0 iface eth0 inet static address 192.168.0.58 //Здесь указываем свой желаемый IP netmask 255.255.255.0
Перезагружаем сеть /etc/init.d/networking restart и идем в nano /etc/hosts Приводим его примерно к такому виду:
1127.0.0.1 localhost.localdomain localhost 192.168.0.58 server.example.com server //повторяем свой IP и адрес# The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Выполняем:
echo server.example.com > /etc/hostname /etc/init.d/hostname restart
B проверяем:
hostname hostname -f
Теперь они должны показать server.example.com.
miditator.ru
Настройка сервера под Bitrix | Debian | Git | node.js | PHP
Нужно развернуть WDS под Bitrix с установкой и переносом со старого WDS: NodeJS, Git
Настроить virtualmin
Корректная настройка прав, свой php для каждого сайта.
Перенос со старого VDS 50 сайтов (из них 3 неткат, 2 джумла и 1 питон)
Навички: Debian, Git, node.js, PHP, SQL
Деталі: joomla bitrix, bitrix intranet template, bitrix framework content management system, bitrix joomla, nodejs php online status, install virtualmin php, chat php nodejs, virtualmin centos php, cms bitrix integration, centos virtualmin php, virtualmin php extensions, php mail virtualmin, virtualmin php, psd html bitrix, virtualmin script installer php, virtualmin php script installer, bitrix goldmine, bitrix freelance, php git xhtml, virtualmin php api
( 1 відгук ) Rostov-on-Don, Russian FederationID Проекту: #11094486
www.freelancer.com.ua