Настройка 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

&lt;VirtualHost *:80&gt;

ServerName www.vcore.ru

ServerAlias vcore.ru

ServerAdmin [email protected]

DocumentRoot /var/www/vcore.ru/

&lt;Directory /&gt;

Options FollowSymLinks

AllowOverride None

&lt;/Directory&gt;

&lt;Directory /var/www/vcore.ru/&gt;

Options Indexes FollowSymLinks MultiViews

AllowOverride All

Order allow,deny

allow from all

&lt;/Directory&gt;

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

&lt;Directory &quot;/usr/lib/cgi-bin&quot;&gt;

AllowOverride None

Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

Order allow,deny

Allow from all

&lt;/Directory&gt;

ErrorLog ${APACHE_LOG_DIR}/error.log

LogLevel error

CustomLog ${APACHE_LOG_DIR}/access.log combined

&lt;/VirtualHost&gt;

/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

&lt;VirtualHost *:80&gt;

ServerName www.shieldz.ru

ServerAlias shieldz.ru

ServerAdmin [email protected]

DocumentRoot /var/www/shieldz.ru/

&lt;Directory /&gt;

Options FollowSymLinks

AllowOverride None

&lt;/Directory&gt;

&lt;Directory /var/www/shieldz.ru/&gt;

Options Indexes FollowSymLinks MultiViews

AllowOverride All

Order allow,deny

allow from all

&lt;/Directory&gt;

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

&lt;Directory &quot;/usr/lib/cgi-bin&quot;&gt;

AllowOverride None

Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

Order allow,deny

Allow from all

&lt;/Directory&gt;

ErrorLog ${APACHE_LOG_DIR}/error.log

LogLevel error

CustomLog ${APACHE_LOG_DIR}/access.log combined

&lt;/VirtualHost&gt;

Сами сайты хранятся в папке /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

&gt; USE mysql;

&gt; SELECT host, user, password FROM user;

Если есть пустые пароли, меняем их

1

2

3

&gt; 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

table_open_cache = 64M

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

&gt; CREATE DATABASE &lt;имя бд&gt;;

Назначение прав на базу данных (обращаем внимание на кавычки):

1

2

3

4

&gt; GRANT ALL PRIVILEGES ON &lt;имя бд&gt;.* TO '<имя пользователя>'@'localhost' IDENTIFIED BY '<пароль>';

&gt; 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 = &quot;Europe/Moscow&quot;

Перезагружаем веб-сервер:

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&quot;vCore LTD FTP Server&quot;

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 &quot;iptables denied: &quot; --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(&quot;BX_CACHE_TYPE&quot;, &quot;apc&quot;);

define(&quot;BX_CACHE_SID&quot;, $_SERVER[&quot;DOCUMENT_ROOT&quot;]);

Найдена статья на сайте 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 Federation

Project 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:

  1. Добавьте в файл: /etc/apt/sources.list следующие строки:
deb http://packages.dotdeb.org squeeze all deb-src http://packages.dotdeb.org squeeze all
  1. Для инсталяции PHP 5.4 на Debian 6.0 “Squeeze” нужно добавить строки:
deb http://packages.dotdeb.org squeeze-php54 all deb-src http://packages.dotdeb.org squeeze-php54 all
    1. Установите ключи доступа к репозиторию GnuPG key
wget http://www.dotdeb.org/dotdeb.gpg cat dotdeb.gpg | sudo apt-key add -
  1. Обновите систему: # 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 Federation

ID 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.list

deb http://download.webmin.com/download/repository sarge contrib

Скачиваем ключи

wget http://www.webmin.com/jcameron-key.asc

Обнавляемся и устанавливаем webmin

sudo apt-get update

sudo 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 Federation

ID Проекту: #11094486

www.freelancer.com.ua


Prostoy-Site | Все права защищены © 2018 | Карта сайта