Показаны сообщения с ярлыком веб-сервер. Показать все сообщения
Показаны сообщения с ярлыком веб-сервер. Показать все сообщения

вторник, 4 февраля 2025 г.

Маленький веб сервер

Встроенный веб-сервер php

cd ~/public_html

sudo php -S localhost:80


Средствами nc

http://хост netcat:80/index.html. Для использования стандартного порта веб-сервера под номером 80 необходимо запустить nc c root привелегиями:

while true; do sudo nc -lp 80 < index.html; done

вторник, 12 апреля 2016 г.

Мониторинг web сервера nginx и php-fpm

# nano /etc/nginx/sites-available/default

location /server-status {
                allow 127.0.0.1;
                allow 192.168.200.60;
                deny all;
                stub_status on;
        }
        location /status {
                access_log off;
                allow 127.0.0.1;
                allow 192.168.200.60;
                deny all;
                include fastcgi_params;
                fastcgi_pass 127.0.0.1:9095;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     }




# nano /etc/php5/php-fpm/www.conf
pm.status_path = /status

понедельник, 25 января 2016 г.

sh скрипт для резервного копирования сайта

Скрипт для резервного копирования сайта. Ссылка на источник https://dev.1c-bitrix.ru/community/blogs/howto/945.php

#!/bin/sh
doc_root=$1
name=$2
if [ -z $doc_root ]; then
   echo Usage: $0 /path/to/document/root [backup_name]
   exit
fi

if [ -z $name ]; then
   name=backup
fi

dbconn=$doc_root/bitrix/php_interface/dbconn.php

readcfg() {
   grep $1 $dbconn | sed 's/.*"\(.*\)".*/\1/'
}

host=`readcfg DBHost`
username=`readcfg DBLogin`
password=`readcfg DBPassword`
database=`readcfg DBName`

utf=`grep 'BX_UTF' $dbconn | grep true`

if [ -z "$utf" ]; then
   charset=cp1251
else
   charset=utf8
fi

backup_dir=$doc_root/bitrix/backup

if [ ! -e $backup_dir ]; then
   mkdir $backup_dir
fi

cd $doc_root && 
mysqldump -h$host -u$username -p$password --default-character-set=$charset $database > $backup_dir/$name.sql && 
tar -cf $backup_dir/$name.tar $backup_dir/$name.sql &&  
rm $backup_dir/$name.sql &&
tar -rf $backup_dir/$name.tar --exclude '*bitrix/tmp/*' --exclude '*bitrix/updates/*' --exclude '*bitrix/backup/*' --exclude '*bitrix/*cache/*' . && 
gzip -f -9 $backup_dir/$name.tar && 
echo OK && exit
echo Error

понедельник, 18 января 2016 г.

Копирование сайта с тестового сервера на удаленный сервер

Захотел заказчик видеть как продвигается его проект.
Настраиваем разворачивание бекапов с рабочего сервера на удаленный.

  • user - это имя Вашего пользователя в системе
  • dbsupersait - имя базы данных сайта

Удаляем старые бэкапы
nano /home/user/cron/delbackup.sh

 #!/bin/bash
 rm /home/user/Yandex.Disk/*.tar.*
 rm /var/www/supersait/bitrix/backup/*.tar.*
 echo "Старые бэкапу удалены"

Добавляем скрипт в cron на тестовом серваке
crontab -eu user
0 20 * * * /home/user/cron/delbackup.sh >> /var/log/watchdog-backup.log

Создаем новый бэкап средствами Bitrix Для этого добавляем еще одно задание в cron на тестовом серваке
crontab -eu user
0 21 * * * php /var/www/supersait/bitrix/modules/main/tools/backup.php  >> /var/log/watchdog-backup.log

Копируем бэкапы в Yandex.Disk
nano /home/user/cron/copyBackup.sh

 #!/bin/bash
 cp /var/www/supersait/bitrix/backup/*.tar.* /home/user/Yandex.Disk/
 chmod 777 /home/user/Yandex.Disk/*.tar.*
 yandex-disk sync
 yandex-disk status
 echo "Копирование бэкапов в облако завершено"
 echo "bacup copy to yandex.disk" | mail -s "copy backup supersait" pochta@gmail.com

Добавляем скрипт в cron на тестовом серваке
crontab -eu user
0 22 * * * /home/user/cron/copyBackup.sh >> /var/log/watchdog-backup.log

И так. На тестовом серваке у нас три задания.
crontab -lu user

 0 21 * * * php /var/www/supersait/bitrix/modules/main/tools/backup.php >>  /var/log/watchdog-backup.log
 0 20 * * * /home/user/cron/delbackup.sh >> /var/log/watchdog-backup.log
 0 22 * * * /home/user/cron/copyBackup.sh >> /var/log/watchdog-backup.log

Теперь на удаленном сервере добавляем скрипт разворачивания сайта в крон
nano /home/user/cron/restorebitrix.sh

 #!/bin/bash
 FILE=$(date +"%Y%d%m_%H%M")
 yandex-disk sync >> /var/log/siterestore/$FILE.log
 yandex-disk status >> /var/log/siterestore/$FILE.log
 chmod 777 /home/user/Yandex.Disk/*.tar.* >> /var/log/siterestore/$FILE.log
 echo "Копирование бэкапов в облако завершено" >> /var/log/siterestore/$FILE.log
 echo "bacup copy to yandex.disk" | mail -s "copy backup supersait" pochta@gmail.com

 rm -rf /var/www/supersait >> /var/log/siterestore/$FILE.log
 echo "Удален корневой каталог сайта" >> /var/log/siterestore/$FILE.log

 mysql -u root -pпароль -e "show databases" >> /var/log/siterestore/$FILE.log
 echo "Удаление Базы MySQL" >> /var/log/siterestore/$FILE.log
 mysql -u root -pпароль -e "drop database dbsupersait" >> /var/log/siterestore/$FILE.log
 mysql -u root -pпароль -e "show databases" >> /var/log/siterestore/$FILE.log
 echo "Создаем новую базу MySQL" >> /var/log/siterestore/$FILE.log
 mysql -u root -pпароль -e "create database dbsupersait" >> /var/log/siterestore/$FILE.log

 mkdir /var/www/supersait >> /var/log/siterestore/$FILE.log
 echo "Создан каталог кореня сайта с владелбцем www-data:www-data и правами 7777" >> /var/log/siterestore/$FILE.log
 echo "Копируем бекап в корень сайта" >> /var/log/siterestore/$FILE.log

 cp /home/user/Yandex.Disk/*.tar.* /var/www/supersait >> /var/log/siterestore/$FILE.log
 chown -hR www-data:www-data /var/www/supersait >> /var/log/siterestore/$FILE.log
 chmod -R 777 /var/www/supersait >> /var/log/siterestore/$FILE.log
 cd /var/www/supersait >> /var/log/siterestore/$FILE.log
 echo "Извлечение из архива" >> /var/log/siterestore/$FILE.log
 cat *.* | tar xzv >> /var/log/siterestore/$FILE.log
 echo "восстановление дампа базы данных" >> /var/log/siterestore/$FILE.log
 mysql -u root -pпароль dbsupersait < /var/www/supersait/bitrix/backup/*full_????????.sql

 sed 's/'"'"'database.*/'"'"'database'"'"' => '"'"'dbsupersait'"'"',/g' /var/www/supersait/bitrix/.settings.php > .settings.php
 mv .settings.php /var/www/supersait/bitrix/.settings.php
 sed 's/'"'"'login.*/'"'"'login'"'"' => '"'"'root'"'"',/g' /var/www/supersait/bitrix/.settings.php > .settings.php
 mv .settings.php /var/www/supersait/bitrix/.settings.php
 sed 's/'"'"'password.*/'"'"'password'"'"' => '"'"'пароль'"'"',/g' /var/www/supersait/bitrix/.settings.php > .settings.php
 mv .settings.php /var/www/supersait/bitrix/.settings.php

 sed 's/$DBLogin.*/$DBLogin = "root";/g' /var/www/supersait/bitrix/php_interface/dbconn.php > dbconn.php
 mv dbconn.php /var/www/supersait/bitrix/php_interface/dbconn.php >> /var/log/siterestore/$FILE.log
 sed 's/$DBName.*/$DBName = "dbsupersait";/g' /var/www/supersait/bitrix/php_interface/dbconn.php > dbconn.php
 mv dbconn.php /var/www/supersait/bitrix/php_interface/dbconn.php >> /var/log/siterestore/$FILE.log
 sed 's/$DBPassword.*/$DBPassword = "пароль";/g' /var/www/supersait/bitrix/php_interface/dbconn.php > dbconn.php
 mv dbconn.php /var/www/supersait/bitrix/php_interface/dbconn.php >> /var/log/siterestore/$FILE.log

 echo "Удаление служебной информации" >> /var/log/siterestore/$FILE.log
 rm /var/www/supersait/*.tar.* >> /var/log/siterestore/$FILE.log
crontab -eu user

На удаленном серваке у нас одно задание.
crontab -lu user
0 23 * * * /home/user/cron/restorebitrix.sh >> /var/log/wathcdog-backup.log

вторник, 29 декабря 2015 г.

Автоматический перезапуск апача. watchdog apache linux

Создаем скрипт в домашней дирректории с правами на запуск. Например apache2rst.sh

#!/bin/bash
ps ax | grep apache2 | grep -v grep -q || /etc/init.d/apache2 restart > /dev/null
reply=`curl -s -L --head -w "%{http_code}\n" http://mysite.ru | tail -n1`
if grep sheph! /var/log/watchdog-apache.log > /dev/null
then
    sed "/^.*[sheph\!]$/d" /var/log/watchdog-apache.log > /tmp/watchdog-apache.log
    cp /tmp/watchdog-apache.log /var/log/watchdog-apache.log
    echo "`date +%d-%m-%Y` `date +%H:%M:%S` Use ok, sheph!" >> /var/log/watchdog-apache.log
else
    echo "`date +%d-%m-%Y` `date +%H:%M:%S` 2 Use ok, sheph!" >> /var/log/watchdog-apache.log
fi
if [ $reply -ne "200" ]
then
echo "`date +%d-%m-%Y`  `date +%H:%M:%S%` Sheph, use propalo. Server podvis." >> /var/log/watchdog-apache.log
/etc/init.d/apache2 restart
echo "Site mysite.ru upal. Status="$reply | mail -s "Site upal" myemail@gmail.com
fi
exit 0
Добавляем его в крон рута

sudo crontab -eu root
Будем запускать раз в минуту

* * * * * /home/myuser/apache2rst.sh >> /var/log/watchdog-apache.log

пятница, 2 октября 2015 г.

Бэкап mysqldump mysql

mysqldump -u root -pXyYxX BAZA --routines > back_14082015.sql

mysqladmin -u root -pXyYxX create back_14082015
mysql -u root -pXyYxX -h < back_14082015.sql

FTP-сервер vsftpd на ubuntu 14.04

vsftpd — установка FTP-сервера

vsftpd — это демон FTP, доступный в Ubuntu. Его легко устанавливать, настраивать и поддерживать. Для установки vsftpd вы можете выполнить следующую команду:
sudo apt-get install vsftpd

Настройка анонимного доступа по FTP

Настройка vsftpd по умолчанию не разрешает анонимную загрузку. Если вы хотите разрешить анонимную загрузку, измените в /etc/vsftpd.conf следующее:
anonymous_enable=Yes
В процессе установки создается пользователь ftp с домашним каталогом /srv/ftp. Это каталог по умолчанию для FTP.
Если вы желаете поменять его расположение, например, на /srv/files/ftp, просто создайте новый каталог и измените домашний каталог пользователя ftp:
sudo mkdir /srv/files/ftp
sudo usermod -d /srv/files/ftp ftp 
После изменений перезапустите vsftpd:
sudo restart vsftpd
Под конец скопируйте все файлы и каталоги, которые вы хотите сделать доступными для анонимного FTP, в /srv/files/ftp, или /srv/ftp, если вы хотите оставить настройки по умолчанию.

Настройка авторизованного доступа по FTP

По умолчанию vsftpd настроен на аутентификацию системных пользователей с возможностью скачивать файлы. Если вы хотите разрешить пользователям загружать файлы на сервер, измените в /etc/vsftpd.conf:
write_enable=YES
после чего перезагрузите vsftpd:
sudo restart vsftpd
Теперь при входе системных пользователей по FTP они будут попадать в свои домашние каталоги, где они смогут скачивать и загружать файлы, создавать каталоги и т.д.
Аналогично, по умолчанию анонимный пользователь не имеет возможности загружать файлы на FTP-сервер. Для изменения этой настройки уберите комментарий на следующей строке и перезапустите vsftpd:
anon_upload_enable=YES
Разрешение анонимному пользователю загружать файлы на сервер может оказаться серьёзной угрозой безопасности. Лучше не разрешать анонимную загрузку файлов на серверы с прямым доступом из интернета.
Конфигурационный файл содержит много параметров настройки. Информация по каждому параметру доступна в этом же файле. В качестве альтернативы вы можете посмотреть системное руководство по команде man 5 vsftpd.conf для уточнения деталей по каждому параметру.

Защита FTP

В /etc/vsftpd.conf существуют опции, помогающие сделать vsftpd более безопасным. Например, пользователи могут быть ограничены своими домашними каталогами, если раскомментировать:
chroot_local_user=YES
Вы также можете определить список пользователей, имеющих доступ только в домашний каталог:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
После снятия комментариев с этих опций, создайте /etc/vsftpd.chroot_list, содержащий список пользователей по одному на строку. Затем перезапустите vsftpd:
sudo restart vsftpd
Аналогично, файл /etc/ftpusers содержит список пользователей, которым запрещён доступ по FTP. По умолчанию он включает root, daemon, nobody и т.п. Для запрета доступа по FTP для дополнительных пользователей, просто добавьте их в этот список.
FTP может быть зашифрованным при использовании FTPS. В отличие от SFTP, FTPS — это FTP поверх SSL. SFTP — это сессия, подобная FTP, по зашифрованному SSH соединению. Основное отличие заключается в том, что пользователи SFTP должны иметь учётную запись с собственным окружением shell вместо оболочки nologin. Предоставление всем пользователям доступа к оболочке может оказаться не лучшим решением для некоторых систем, таких как веб-сервер общего доступа. Однако есть возможность ограничить такие учетные записи только SFTP и запретить взаимодействие с оболочкой. Смотрите раздел по OpenSSH для дополнительной информации.
Для настройки FTPS, добавьте в конец файла /etc/vsftpd.conf следующее:
ssl_enable=Yes
Также обратите внимание на опции сертификата и ключа:
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
По умолчанию эти опции установлены в значения, предоставленные пакетом ssl-cert. Для рабочей среды они должны быть заменены на сертификат и ключ, созданные для определённого компьютера. Для дополнительной информации смотрите раздел Сертификаты.
Теперь перегрузите vsftpd и неанонимные пользователи будут использовать FTPS:
sudo restart vsftpd
Чтобы позволить пользователям с оболочкой /usr/sbin/nologin получить доступ к FTP, но не предоставлять shell доступ, отредактируйте /etc/shells, добавив к оболочке nologin:
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen
/usr/sbin/nologin
Это необходимо, поскольку по умолчанию vsftpd использует аутентификацию PAM, а файл настроек /etc/pam.d/vsftpd содержит:
auth    required        pam_shells.so
Модуль PAM shells ограничивает доступ к оболочкам, перечисленным в файле /etc/shells.
Наиболее популярные клиенты FTP могут быть настроены на использование FTPS. FTP-клиент командной строки lftp также имеет возможность использовать FTPS.

LAMP (apache mysql php) для Bitrix

http://help.ubuntu.ru/wiki/apachemysqlphp

В этой статье описана установка и настройка LAMP (Linux-Apache-MySQL-PHP) сервера на базе Ubuntu включающего Apache 2, PHP 5, и MySQL 5.0.


Нужно установить русскую локаль. Естественно, utf8
localedef ru_RU.UTF-8 -i ru_RU -fUTF-8
Проверяем:
locale -a

Установка стандартного набора LAMP

Начиная с Ubuntu 7.04 (Feisty Fawn) поумолчанию установлена полезная утилита Tasksel(англ.). Она поможет вам установить LAMP. Просто выполним команду:
sudo tasksel install lamp-server
При установке будет запрошен пароль для создания администратора БД MySQL.

Удаление LAMP
Для удаления LAMP вам придется удалить его компоненты отдельно:
apache2 apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5 libapr1 libaprutil1 libdbd-mysql-perl libdbi-perl libmysqlclient15off libnet-daemon-perl libplrpc-perl libpq5 mysql-client-5.0 mysql-common mysql-server mysql-server-5.0 php5-common php5-mysql

Установка Apache 2

Если требуется установить только веб-сервер Apache 2 используйте любой метод для того, чтобы установить пакет apache2. Для того, чтобы Apache заработал его следует перезапустить:
sudo /etc/init.d/apache2 restart

sudo apt-get install nginx nginx-extras
sudo apt-get install php5-cli php5-common php5-mysql php5-gd php5-fpm php5-cgi php5-fpm php-pear php5-mcrypt

http://help.ubuntu.ru/wiki/nginx-phpfpm

Перезапускаем апач sudo service apache2 restart

Установка дополнительных пакетов:

Некоторые пакеты tasksel уже установил. sudo apt-get install apache2 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 phpmyadmin php5-dev apache2-dev build-essential libapache2-mod-auth-mysql postfix sphinxsearch munin nagios3 nagios3-doc nagios-nrpe-plugin catdoc xpdf

Настройка веб-сервера Apache

Включаем обработку htaccess (в файле /etc/apache2/apache2.conf): 
AllowOverride All 

Настройка php 

Теперь, если мы загрузим в папку /var/www/html скрипт установки CMS Битрикс bitrixsetup.php (или какой другой), то скорее всего обнаружим, что php "не работает", т.к. увидим в браузере php код. Это происходит из-за того, что по каким-то причинам короткие php теги <? по умолчанию отключены, а работают только такие <?php. Чтобы исправить это досадное недоразумение, отредактируем файл /etc/php5/apache2/php.ini, и поменяем short_open_tag = Off на short_open_tag = On 
Далее настроим другие параметры php, важные для битрикс и прочих CMS post_max_size = 100M upload_max_filesize = 100M max_input_vars = 10000 Если вы планируете использовать кодировку "utf-8" (крайне рекомендуется): mbstring.func_overload = 2 mbstring.internal_encoding = UTF-8
После чего перезагрузим сервер shutdown -r now

Акселераторы PHP

Для PHP существуют дополнения, ускоряющие его работу за счет кэширования байткода скриптов. Подробнее об подобных программах можно прочесть в Wikipedia.
apt-get install php-apc
Файл настройки /etc/php5/apache2/conf.d/apc.ini.
extension=apc.so
realpath_cache_size=4096k
apc.max_file_size=4M
apc.shm_size=128M
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.ttl=3600
apc.user_ttl=3600
apc.gc_ttl=3600

Установка библиотеки php-memcache

sudo apt-get install memcached php5-memcache libmemcache-dev
sudo service apache2 restart

Идем в настройки memcached nano /etc/memcached.conf и приводим к такому виду:

#Memcached будет работать, как демон 
-d 
#Лог будет складывать туда 
logfile /var/log/memcached.log 
#Для начала поставьте 256 мегабайт ОЗУ под хранилище. Но больше заисит от ее колличества 
#помните, что выставив 256 Вы ровно столько забираете от оперативки 
#лично у меня на данный момент стоит 512 
-m 256 
#Слушать будет этот порт 
-p 11211 
#Пользователь 
-u nobody 
#Слушаем localhost 
-l 127.0.0.1

Перезапускаем memcached:
sudo service memcached restart

Собственно все, установлено и настроено. Запускаем битрикс сайт на сервере, и идем папку/bitrix/php_interface и открываем файл dbconn.php
В него вносим следующее:
define("BX_CACHE_TYPE", "memcache"); //устанавливаем тип кеширования 
define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01"); //это не даст кешам разных сайтов перемешаться 
define("BX_MEMCACHE_HOST", "127.0.0.1"); //это адрес где работает мемкешед (в нашем случае локально)

PS: В новой 14-ой версии 1С битрикс настройки перенесены в файл /bitrix/.settings.php и тип кеширование необходимо устанавливать в секции:
'cache' => 
array ( 
'value' => 
array ( 
'sid' => '$_SERVER["DOCUMENT_ROOT"]."#01"', 
'type' => 'memcache', 
'memcache' => 
array ( 
'host' => '127.0.0.1', 
), 
), 
'readonly' => false, 
),

Настройка mcrypt

sudo php5enmod mcrypt
sudo service apache2 restart

Настройка munin

sudo nano /etc/munin/munin.confdbdir /var/lib/munin
htmldir /var/www/muninlogdir /var/log/munin
rundir /var/run/munintmpldir /etc/munin/templates

[localhost]
 address 127.0.0.1
 use_node_name yes



sudo nano /etc/munin/apache.conf

Alias /munin /var/www/munin
<Directory /var/www/munin>
 Order allow,deny
 #Allow from localhost 127.0.0.0/8 ::1
 Allow from all
 Options None

sudo mkdir /var/www/munin
sudo chown munin:munin /var/www/munin
sudo service munin-node restart
sudo service apache2 restart

your_ip_address/munin

Настройка nagios3


usermod -a -G nagios www-data
chmod -R g+x /var/lib/nagios3/


http://your_ip_address/nagios3/


Возможные ошибки

Если при запуске появляется следующая ошибка
apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
запустите свой любимй текстовый редактор (например sudo nano или gksu gedit) и создайте файл /etc/apache2/conf.d/fqdn , со следующим содержанием:
ServerName localhost
Это так же можно сделать выполнив комманду:
echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn

Виртуальные хосты

 Они находятся в папке /etc/apache2/sites-available. По-умолчанию создается только один сайт default, на который можно зайти введя в браузере http://localhost или http://127.0.0.1.
Директория для файлов сайта находится в /var/www. Необходимы права root для доступа к этой папке. Но вы можете изменить права на нее командой

sudo chown -R $USER:$USER /var/www 

Вернуться к дефолтным настройкам:
sudo chown -R www-data:www-data /var/www/

Создаем копию стандартного конфиг-файл сайта и переименуем его
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mysite 
sudo nano /etc/apache2/sites-available/mysite
<VirtualHost *:8080> //почему порт 8080 см. статью про настройку nginx
        ServerName mysite
        DocumentRoot /var/www/mysite.ru
        ErrorLog ${APACHE_LOG_DIR}/netwit/error.log
        CustomLog ${APACHE_LOG_DIR}/netwit/access.log combined
        <Directory /var/mysitesdocs/polimer_m>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All //во избежание проблем с ЧПУ
        </Directory>
</VirtualHost>

Теперь вы можете деактивировать ваш старый сайт и включить новый. Ubuntu содержит две маленькие утилиты для помощи в этом: a2ensite (apache2enable site) и a2dissite (apache2disable site).
sudo a2dissite default && sudo a2ensite mysite
Осталось только перезапустить Apache2:
sudo /etc/init.d/apache2 restart
Если вы не создали папку /home/user/public_html/, то получите сообщение с предупреждением об этом.
Внесем имя сайта в список хостов сервера:
sudo gedit /etc/hosts
Дописать в строчку 127.0.0.1 localhost через пробел mysite www.mysite Перезапустить Apache2
sudo /etc/init.d/apache2 restart
Для проверки вашего нового сайта создайте файл в папке /home/user/public_html:
echo '<b>Hello! It is working!</b>' > /home/user/public_html/index.html
И откройте в браузере адрес http://localhost/

PhpMyAdmin

При установке PhpMyAdmin запросит пароли которые были заданы при установке MySQL.
Зайти в него можно с адреса http://localhost/phpmyadmin/
При ошибке 404 внесите в файл /etc/apache2/apache2.conf строчку Include /etc/phpmyadmin/apache.conf

Установка Webmin на ubuntu. Что бы было проще:

Устанавливаем необходимые пакеты:
sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libdigest-md5-perl


Далее я бы порекомендовал поставить SSH сервер, так как удаленно администрировать намного проще:
sudo apt-get install openssh-server

Добавляем репозиторий Webmin, редактируем файл /etc/apt/sources.list:
sudo nano /etc/apt/sources.list

В самом конце добавляем строку:
deb http://download.webmin.com/download/repository sarge contrib


Сохраняем изменения Ctrl+O и закрываем редактор Ctrl+X.

Устанавливаем GPG ключ:
wget http://www.webmin.com/jcameron-key.asc sudo apt-key add jcameron-key.asc


Устанавливаем Webmin для этого вводим команду:
sudo apt-get update sudo apt-get install webmin

Запустить Webmin можно через браузер для этого введите следующий адресу в строку url:
httpS://localhost:10000

пятница, 24 июля 2015 г.

Как узнать что именно грузит сервер?

  1. Открываем top или htop, ловим высоконагруженный pid апача
  2. lsof -p PID — покажет с какими ресурсами работает pid
Также в логах апача можно включить запись времени обработки каждого запроса посмотрите у кого это время длинное, так вычислите не только сайт, но и конкретное место сайта 
LogFormat "%h %l %u %t \"%r\" %>s %bb %D" common
в конце — время обработки запроса в микросекундах

понедельник, 16 февраля 2015 г.

Публикация баз данных «1С:Предприятия» 8.3 на веб-сервере IIS в Microsoft Windows Server 2008/2012 | Tavalik.ru

Публикация баз данных «1С:Предприятия» 8.3 на веб-сервере IIS в Microsoft Windows Server 2008/2012 | Tavalik.ru:



'via Blog this'



Публикация баз данных «1С:Предприятия» 8.3 на веб-сервере IIS в Microsoft Windows Server 2008/2012

Logo_1c_8В данной статье я подробно опишу процесс организации веб- доступа к базам данных «1С:Предприятие» 8.3 на веб-сервере IIS (Internet Information Server), входящего в поставку Microsoft Windows Server. Для более старых версий «1С:Предприятие» (8.1 и 8.2) алгоритм публикации баз данных в целом аналогичен. Будет рассмотрен алгоритм настройки IIS для работы «1С:Предприятие», а также описан процесс публикации баз данных на веб-сервере как для 32-разрядного, так и для 64-разрядного модуля расширения веб-сервера.

1. Что понадобится

  1. Компьютер отвечающий минимальным системным требованиям для работы веб-сервера под управлением одной из операционных систем:
  2. Права локального администратора на данном компьютере.
  3. Дистрибутив для установки компонент «1С:Предприятие». Для настройки 64-разрядного модуля расширения веб-сервера, дистрибутив для установки 64-разрядного сервера «1С:Предприятие». В данном примере используется версия 8.3.4.389. Для более старых версий «1С:Предприятие» (8.1 и 8.2) алгоритм публикации баз данных в целом аналогичен.

2. Установка веб-сервера IIS

Устанавливаем веб-сервер Internet Information Server, который по умолчанию входит в поставку Microsoft Windows Server. При установке обязательно выбираем компоненты:
  • Общие функции HTTP (Common HTTP Features)
    • Статическое содержимое (Static Content)
    • Документ по умолчанию (Default Document)
    • Обзор каталогов (Directory Browsing)
    • Ошибки HTTP (HTTP Errors)
  • Разработка приложений (Application Development)
    • ASP
    • ASP.NET 3.5
    • Расширяемость .NET 3.5 (.NET Extensibility 3.5)
    • Расширения ISAPI (ISAPI Extensions)
    • Фильтры ISAPI (ISAPI Filters)
  • Исправление и диагностика (Health and Diagnostics)
    • Ведение журнала HTTP (HTTP Logging)
    • Монитор запросов (Request Monitor)
  • Средства управления (Management Tools)
    • Консоль управления IIS (IIS Management Console)
Подробно про процесс развертывания веб-сервера IIS я писал:
  • В Microsoft Windows Server 2012 (R2) — здесь. IIS версии 8, после установки должны увидеть страницу Default Web Site вида:
Ustanovka_IIS_8_Winsdows_Server_2012_13

3. Установка компонент «1С:Предприятие»

На этот же сервер, где развернут веб-сервер IIS, устанавливаем «1С:Предприятие» (32-разрядные компоненты) обязательно выбрав при установке компоненты:
  • 1С:Предприятие
  • Модули расширения веб-сервера
publikaciya_bd_na_web_server_IIS_23
Если планируется настроить 64-разрядный модуль расширения веб-сервера, то необходимо дополнительно запустить программу установки 64-разрядного сервера из соответствующей поставки «1С:Предприятие» и установить компоненту:
  • Модуль расширения веб-сервера
publikaciya_bd_na_web_server_IIS_31

4. Настройка операционной системы

Теперь необходимо установить необходимые права на ключевые папки, используемые при работе веб-доступа к базам данных «1С:Предприятие». Для каталога хранения файлов веб-сайтов, опубликованных на веб-сервере (по умолчанию C:\inetpub\wwwroot\ ) необходимо дать полные права группе «Пользователи» (Users). В принципе, этот шаг можно пропустить, но тогда для публикации или изменения публикации базы данных надо будет запускать «1С:Предприятие» от имени администратора. Для настройки безопасности данного каталога, кликаем по нему правой кнопкой мыши и в контекстном меню выбираем «Свойства» (Properties).
publikaciya_bd_na_web_server_IIS_01
В открывшемся окне свойств, переходим на вкладку «Безопасность» (Security) и нажимаем кнопку «Изменить» (Edit…), для изменения действующих разрешений. Появится окно разрешений для данного каталога. В списке Групп или пользователей (Groups or user names) выделим группу «Пользователи» (Users) и в списке разрешений для выбранной группы установим флаг «Польный доступ» (Full control). Затем нажмем «Применить» (Apply) для записи изменений и закроем все окна при помощи кнопки «ОК».
publikaciya_bd_na_web_server_IIS_02
Далее необходимо дать полные права на каталог с установленными файлами «1С:Предприятие» (по умолчанию C:\Program Files (x86)\1cv8\ для 32-разрядного модуля расширения и C:\Program Files\1cv8\ для 64-разрядного) группе IIS_IUSRS. Для этого выполняем аналогичные описанным выше действия, с той лишь разницей, что для того чтобы необходимая группа появилась в списке «Группы или пользователи» (Groups or user names) необходимо нажать расположенную под списком кнопку «Добавить» (Add..), а в окне выбора групп или пользователей нажать «Дополнительно» (Advanced…).
publikaciya_bd_na_web_server_IIS_03
Затем нажимаем расположенную справа кнопку «Поиск» (Find Now), после чего выбираем необходимую группу IIS_IUSRS в таблице результатов поиска и нажимаем «ОК».
publikaciya_bd_na_web_server_IIS_04
Группа IIS_IUSRS появится в списке групп или пользователей. Даем ей полные права на на выбранную директорию и нажимаем  «Применить» (Apply) для сохранения изменений.
publikaciya_bd_na_web_server_IIS_05
Ну и наконец, если публикация выполняется для файловой базы, необходимо также дать группе IIS_IUSRS полные права на каталог с расположенными файлами данной информационной базы.publikaciya_bd_na_web_server_IIS_06

5. Публикация базы данных на веб-сервере

Переходим к непосредственной публикации базы данных на веб-сервере. Для этого запускаем «1С:Предприятие» в режиме Конфигуратор для той базы, которую требуется опубликовать.  Затем в меню выбираем «Администрирование» — «Публикация на веб-сервере…»
publikaciya_bd_na_web_server_IIS_07
Откроется окно настройки свойств публикации на веб-сервере. Основные поля необходимые для публикации уже заполнены по умолчанию:
  • Имя виртуального каталога — имя по которому будет происходить обращение к база данных на веб-сервере. Может состоять только из символов латинского алфавита.
  • Веб сервер — выбирается из списка найденных на текущем компьютере веб-серверов. В нашем случае это Internet Information Services.
  • Каталог — физическое расположение каталога, в котором будут располагаться файлы виртуального приложения.
  • Соответствующими флагами можно указать типы клиентов для публикации, а также указать возможность публикации Web-сервисов. В расположенной ниже таблице можно отредактировать список Web-сервисов которые будут опубликованы, а также в столбце «Адрес» изменить синоним, по которому будет происходить обращение к данному Web-сервису.
  • Также для веб-сервера IIS есть возможность указать необходимость выполнения аутентификации на веб-сервере средствами ОС, установив соответствующий флаг.
Выбрав необходимые настройки публикации нажимаем «Опубликовать».
publikaciya_bd_na_web_server_IIS_08
Если публикация прошла без ошибок, увидим соответствующее сообщение.
Публикация на веб-сервере IIS всегда выполняется для веб-сайта по умолчанию и для пула приложения по умолчанию. Стоит иметь ввиду, что при выполнении публикации из конфигуратора будет зарегистрирован 32-разрядный модуль расширения веб-сервера, а используемый по умолчанию пул приложений — DefaultAppPool - без настройки работает только с 64-разрядными приложениями. Соответственно, дальнейшие действия зависят от разрядности модуля расширения веб-сервера, который планируется использовать. Для 32-разрядного модуля расширения веб-сервера, необходимо разрешить пулу приложений использовать 32-разрядные приложения, либо же зарегистрировать 64-разрядный модуль расширения веб-сервера. Об этом пойдет речь ниже

6. Настройка IIS для использования 32-разрядного модуля расширения веб-сервера

Запустим Диспетчер служб IIS (Internet Information Services (IIS) Manager). Сделать это можно из Диспетчера серверов (Server Manager) выбрав в меню пункт «Средства» (Tools) — «Диспетчер служб IIS» (Internet Information Services (IIS) Manager).
publikaciya_bd_na_web_server_IIS_10
Здесь, развернув дерево в окне подключений, увидим, что для веб-сайта по умолчанию —Default Web Site — появился преобразованный в приложение виртуальный каталог с именем, которое мы задавали при публикации базы данных. Для завершения публикации осталось только разрешить 32-разрядные приложения для пула приложений по умолчанию. Для этого перейдем в дереве подключений на вкладку «Пулы приложений» (Application Pools).
publikaciya_bd_na_web_server_IIS_11
В списке пулов приложений найдем пул с именем DefaultAppPool. Кликнем по нему правой кнопкой мыши и в контекстном меню выберем пункт «Дополнительные параметры» (Advanced Settings).
publikaciya_bd_na_web_server_IIS_12
В открывшемся окне параметров пула приложения, в группе «Общие» (General) найдем пункт «Разрешены 32-разрядные приложения» (Enable 32-Bit Applications) и установим значение параметра равным True. Затем сохраним изменения нажав «ОК».
publikaciya_bd_na_web_server_IIS_13

7. Настройка IIS для использования 64-разрядного модуля расширения веб-сервера

Зарегистрировать 64-разрядный модуль расширения веб-сервера можно с помощью утилиты webinst.exe соответствующей версии, расположенной в каталоге bin, каталога с установленной программой «1С:Предприятие», либо воспользоваться приведенным ниже способом.
Запустим Диспетчер служб IIS (Internet Information Services (IIS) Manager). Сделать это можно из Диспетчера серверов (Server Manager) выбрав в меню пункт «Средства» (Tools) — «Диспетчер служб IIS» (Internet Information Services (IIS) Manager).
publikaciya_bd_na_web_server_IIS_10
Здесь, развернув дерево в окне подключений, увидим, что для веб-сайта по умолчанию —Default Web Site — появился преобразованный в приложение виртуальный каталог с именем, которым мы задавали при публикации базы данных. Для завершения публикации осталось только указать данному приложению использовать 64-разрядный обработчик запросов. Для этого откроем страницу настройки сопоставления обработчиков для данного виртуально каталога, выбрав пункт «Сопоставление обработчиков» (Handler Mappings) на начальной странице приложения.
publikaciya_bd_na_web_server_IIS_19
В таблице сопоставлений обработчиков найдем обработчик «1С Web-service Extension». Откроем данный обработчик, кликнув 2 раза по соответствующей строке в таблице.publikaciya_bd_na_web_server_IIS_32

Отредактируем обработчик, заменив путь к исполняемой dll 32-разрядного модуля расширения веб-сервера, который выбран в данный момент, на путь к 64-разрядной версии библиотеки. В данном примере меняем путь c «C:\Program Files (x86)\1cv8\8.3.4.389\bin\wsisapi.dll» на «C:\Program Files\1cv8\8.3.4.389\bin\wsisapi.dll» воспользовавшись кнопкой выбора. Изменив путь нажимаем «ОК» для сохранения изменений.
publikaciya_bd_na_web_server_IIS_33

8. Подключение к опубликованной информационной базе через веб-браузер

Ну вот вроде и все. Для подключений к только что опубликованной базе данных, запускаем Internet Explorer, и в строке адреса вводим путь вида http://localhost/<Имя публикации информационной базы>. В данном примере это http://localhost/DemoAccounting/.
publikaciya_bd_na_web_server_IIS_14
К данной информационной базе также можно подключиться и с любого компьютера в сети, обратившись к веб-серверу по его внутреннему (или если прокинут порт 80, по внешнему) IP-адресу.
В этом случае, для корректной работы «1С:Предприятие», имя домена, на который идет обращение (или IP-адрес) должен быть добавлен в надежные узлы Internet Explorer, а также для него должны быть разрешены всплывающие окна. Подробнее про настройку Internet Explorer для работы веб-клиента «1С:Предприятие» читайте здесь.
dobavlenie-veb-sajta-v-spisok-nadezhnyx-uzlov-ie_09

9. Подключение к опубликованной информационной базе через клиент «1С:Предприятия»

К опубликованной на веб-сервере информационной базе можно подключиться и с помощью тонкого клиента «1С:Предприятия». Для подключения откроем окно запуска «1С:Предприятие» и нажмем кнопку «Добавить» для добавления информационной базы.
publikaciya_bd_na_web_server_IIS_24
В окне добавления информационной базы/группы установим переключатель в «Добавление в список существующей информационной базы» и нажмем «Далее».
publikaciya_bd_na_web_server_IIS_25
Введем имя базы данных, как она будет отображаться в списке информационных баз (должно быть уникальным для данного списка), тип расположения выберем «На веб-сервере» и нажмем «Далее».
publikaciya_bd_na_web_server_IIS_26
Вводим строку адреса для подключения к информационной базе (без префикса /ru_RU/). Также здесь можно указать параметры прокси-сервера (если есть) и способ аутентификации на веб-сервере. Указав необходимые настройки снова жмем «Далее».
publikaciya_bd_na_web_server_IIS_27
Указываем параметры запуска для информационной базы и нажимаем «Готово» для завершения работы мастера.
publikaciya_bd_na_web_server_IIS_28
После чего данная информационная база появится в списке баз окна запуска «1С:Предприятие».  Обратим внимание что режим запуска Конфигуратор недоступен для данного типа подключения. Нажимаем «1С:Предприятие» для подключения к информационной базе.
publikaciya_bd_na_web_server_IIS_30
publikaciya_bd_na_web_server_IIS_29

10. Конфигурационные файлы виртуального каталога

Рассмотрим подробнее структуру файлов, которые были созданы в процессе публикации. Если веб-доступ к опубликованной информационной базе по каким-то причинам не заработал, конфигурационные файлы можно отредактировать вручную, для достижения желаемого результата (конфигурационные файлы из данной статьи для 64-разрядного модуля расширения веб-сервера можно скачать здесь).
Перейдем в каталог, который мы указывали во время публикации базы данных. В нем увидим два файла:
  • default.vrd
  • web.config
publikaciya_bd_na_web_server_IIS_15
Оба файла доступны для просмотра и редактирования с помощью любого текстового редактора, например программы «Блокнот» (Notepad). Рассмотрим структуру этих файлов подробнее.

10.1. Файл default.vrd

В файле default.vrd описываются опубликованные Web-сервисы (элемент <ws>), а также указывается имя виртуального приложения (атрибут base) и строка подключения к информационной базе «1С:Предприятие» (атрибут ib). В данном примере для файловой информационной базы, строка подключения будет следующей:
ib="File=&quot;C:\1C_BASE\DemoAccounting&quot;;"
Как видно из примера, если в строке подключения встречаются символы, недопустимые с точки зрения стандарта XML (http://www.w3.org/TR/xml11/), они должны быть заменены соответствующим образом.
publikaciya_bd_na_web_server_IIS_16
В строке подключения можно указать логин и пароль пользователя. В этом случае, подключение к информационной базе будет выполняться от имени указанного пользователя. Например, для подключения от имени пользователя Продавец, строка подключения будет следующей:
ib="File=&quot;C:\1C_BASE\DemoAccounting&quot;;Usr=Продавец;Pwd=123;"
Для серверной информационной базы строка подключения будет иметь вид:
ib="Srvr=&quot;WIN2012&quote;;Ref=&quote;Accounting&quote;;"
Где WIN2012 — имя кластера серверов «1С:Предприятие», а Accounting — имя базы данных в кластере.
publikaciya_bd_na_web_server_IIS_17
Подробнее про структуру данного файла можно почитать в книге «Руководство администратора» 2-е издание , Приложение 2, глава 3.12.

10.2. Файл web.config

Файл web.config — это файл, определяющий параметры для ASP.NET web-приложения. В каждом web-приложении должен быть файл web.config, находящийся в его корневом каталоге. Наш виртуальный каталог не является исключением. В текущем файле содержатся данные об обработчике «1С Web-service Extension», обрабатывающем запросы к данному приложению. Обработчик настроен таким образом, что все запросы передаются библиотеке wsisapi.dll, расположенной в каталоге bin, каталога с файлами «1С:Предприятие». В случае использования серверных информационных баз, версия библиотеки должна соответствовать версии кластера серверов «1С:Предприятия».
publikaciya_bd_na_web_server_IIS_18
Данный обработчик можно найти (или добавить, если его нет) в Диспетчере служб IIS. Для этого необходимо выделить вкладку с текущим приложением и в окне свойств выбрать пункт «Сопоставления обработчиков» (Handler Mappings).
publikaciya_bd_na_web_server_IIS_19
В таблице сопоставлений обработчиков увидим наш обработчик «1С Web-service Extension». Если такого обработчика в списке нет, его следует добавить выбрав в окне «Действия» (Actions) пункт «Добавление сопоставления сценария с подстановочными знаками» (Add Wildcard Script Map…).
publikaciya_bd_na_web_server_IIS_20
При добавлении вводим имя обработчика и указываем путь к файлу wsisapi.dll. Данные параметры можно изменить и для действующего обработчика выбрав пункт «Изменить…» (Edit…) в окне списка действий.
publikaciya_bd_na_web_server_IIS_21
Необходимо также убедиться, что для обработчика стоит флаг «Выполнение» (Execute) в окне изменений разрешений функции. Вызвать данное окно можно выбрав пункт «Изменение разрешений функции…» (Edit Feature Permissions…) в окне «Действия» (Actions).
publikaciya_bd_na_web_server_IIS_22

Split / разбить dump

//Разбить дамп по 50000 строк for i in `ls *.sql`; do split -d -l 50000 -a 4 --additional-suffix=.sql $i "$(basename "$i" .sq...