EOMY.NET
Хостинг EOMY.NET: Форум поддержки
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
RSS Feed  

Веб-сервер со всем необходимым[LAMP+MTA+FTP]

 
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Администрирование серверов
Веб-сервер со всем необходимым[LAMP+MTA+FTP]
Автор Сообщение
lazutov
while (1==1);
Последний герой


Зарегистрирован: 30.04.2007
Сообщения: 3760

157905 Монеты

СообщениеДобавлено: Сб, 14 Фев, 2009 20:26    Заголовок сообщения: Веб-сервер со всем необходимым[LAMP+MTA+FTP] Ответить с цитатой

LAMP + MTA + FTP = 56mb

Красивый разноцветный оригинал (почему-то не дружит с оперой)

На написание данного меня сподвиг uforum и еще одна личность, которую я называть не буду.
Цель: пнуть совсем новичков на путь самообразования, команды man и флага --help
(//т.е на свой путь)

Условные обозначения: ip-адрес 123.123.123.123.
Доменное имя, на которое отзывается данный IP: test.serverstats.ru
OS : debian4

Для работы в консоли есть неплохой клиент Putty , для работы с файлами файл-менеждер WinSCP, о которых расскажет любой поисковик.

Если не понятно, что какая команда делает, пишем в консоли
Код:

man <команда>
или
<команда> --help



Зададим hostname нашего сервера.

Код:
hostname test.serverstats.ru


Обновим список пакетов

Код:
apt-get update


Ставим mysql

Код:
apt-get install mysql-server mysql-client libmysqlclient15-dev


Если на сервере менее 150мб памяти, установка не закончится и вылетит большой и страшный fail.
Это не страшно. Правим конфиг редактором nano

Код:
nano /etc/mysql/my.cnf


Сначала сократим использование памяти сервером. Привожу мзмененную часть конфига
Код:

#
# * Fine Tuning
#
key_buffer              = 16K
max_allowed_packet      = 2M
thread_stack            = 64K
thread_cache_size       = 4


И самое главное, что нужно сделать - раскомментировать строку #skip-innodb

Код:
skip-innodb


Нажимаем ctrl+X для выхода из nano. На вопрос о сохранении жмем кнопку Y, далее Enter для подтверждения имени файла
Заканчиваем неудачную установку (подчеркиваю. именно неудачную, если все поставилось, смысла в блоке команд ниже нет)

Код:
apt-get -f install
если это не помогло, удаляем записи по данным пакетам и "ставим" их снова
cd /var/lib/dpkg/info
rm mysql*
apt-get -f install
dpkg --configure -a
Проверяем:
apt-get install mysql-server mysql-client libmysqlclient15-dev
Должно сказать, что все уже установлено и ставить нечего :)


Обезопасим mysql: тут будет предложено ввести новый пароль.

Код:
mysql_secure_installation


Ставим вебсервер

Код:
apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert


И кучу прибамбасов к нему.(ненужное удалить.)

Код:
apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Я сократил список до

Код:
apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-imagick php5-imap php5-mcrypt php5-mysql php5-xmlrpc


Правим необходимые directoryIndex

Код:
nano /etc/apache2/mods-available/dir.conf


Сократим нагрузку,

Код:
nano /etc/apache2/apache2.conf


Привожу измененный кусок

Код:
<IfModule mpm_prefork_module>
    StartServers          1
    MinSpareServers       1
    MaxSpareServers       2 # можно поставить и больше, с соответственно большим расходом памяти.
    MaxClients           50
    MaxRequestsPerChild 4000
</IfModule>


Имеем:

Код:
Mem:    131072k total,    34964k used,


Ставим FTP-сервер vsftpd

Код:
apt-get install vsftpd libpam-mysql


Заходим в mysql с рутовым паролем и создаем необходимы таблицы и пользователей. (поменяйте пароль не свой)

Код:
mysql -u root -p
CREATE DATABASE vsftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'pass';
FLUSH PRIVILEGES;
USE vsftpd;
CREATE TABLE `accounts` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 30 ) NOT NULL ,
`pass` VARCHAR( 50 ) NOT NULL ,
UNIQUE (
`username`
)
) ENGINE = MYISAM ;
quit;


Добавляем пользователя

Код:
useradd --home /home/web --gid nogroup -m --shell /bin/false vsftpd


Переименовываем старый конфиг и создаем новый

Код:
mv /etc/vsftpd.conf /etc/vsftpd.conf_orig
touch /etc/vsftpd.conf
nano /etc/vsftpd.conf


Пишем:

Код:
force_dot_files=YES
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
nopriv_user=vsftpd
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
guest_enable=YES
guest_username=vsftpd
local_root=/home/web/$USER
user_sub_token=$USER
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd_user_conf
data_connection_timeout=600
idle_session_timeout=600
ftpd_banner=Come silently, ask a little, leave quickly.vdsadmin@lazutov.ru


Создаем папке для доп. конфигурации, напстраиваем идентификацию.

Код:
mkdir /etc/vsftpd_user_conf
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_orig
cat /dev/null > /etc/pam.d/vsftpd
nano /etc/pam.d/vsftpd


Пишем (не забываем про пароль)

Код:
auth required pam_mysql.so user=vsftpd passwd=pass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
account required pam_mysql.so user=vsftpd passwd=pass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2

перезапускаем

Код:
/etc/init.d/vsftpd restart


Добавление пользлвателей: 1) добавить запись в БД.

Код:
mysql -u root -p
USE vsftpd;
INSERT INTO accounts (username, pass) VALUES('site', PASSWORD('111111'));
quit;


2.Создать каталог и проставить нужные права

Код:
mkdir /home/web/site
chown vsftpd:nogroup /home/web/site


Все. Заходите по FTP с логином site и паролем 111111
Конфигурирование apache.
Обнуляем дефолтный файл.
правим виртуалхосты

Код:
# логичнее все-таки оставить один образец.
mv /etc/apache2/sites-available/* /home/
rm /etc/apache2/sites-enabled/*
nano /etc/apache2/httpd.conf

mkdir /home/web/site/123.123.123.123
mkdir /home/web/site/test.serverstats.ru


Пишем в конфиг

Код:
NameVirtualHost *:80
ErrorLog /home/web/site/error.log
CustomLog /home/web/site/access.log combined
ServerAdmin vdsadmin@lazutov.ru
<VirtualHost *:80>
  DocumentRoot "/home/web/site/123.123.123.123"
  ServerName "123.123.123.123"
  ServerAlias "123.123.123.123"
  php_admin_value memory_limit 32M
  CustomLog /home/web/site/~logs/123.123.123.123.log combined
</VirtualHost>
<VirtualHost *:80>
  DocumentRoot "/home/web/site/test.serverstats.ru"
  ServerName "test.serverstats.ru"
  ServerAlias "test.serverstats.ru" "www.test.serverstats.ru"
  php_admin_value memory_limit 64M
  CustomLog /home/web/site/~logs/vds1.serverstat.ru.log combined
</VirtualHost>



Проверяем:

Код:
touch /home/web/site/test.serverstats.ru/index.php
Туда пишем: <? phpinfo(); ?>
Выполняем:
cp /home/web/site/test.serverstats.ru/index.php /home/web/site/123.123.123.123/


Заходим браузером на домен и IP адрес. Видим phpinfo - ура. все работает.
При работе с файлами и каталогими сайта из под root -не забывайте скидывать права

Код:
chown -R vsftpd:nogroup /home/web/site


ставим phpMyAdmin. Загрузим и распакуем.

Код:
cd /home/web/site/123.123.123.123
mkdir pma
cd pma
wget http://prdownloads.sourceforge.net/phpmyadmin/phpMyAdmin-3.1.2-all-languages.tar.gz
tar -xvf php*
cd php*
mv * /home/web/site/123.123.123.123/pma
cd /home/web/site/123.123.123.123/pma
 mv config.sample.inc.php  config.inc.php
nano config.inc.php


Пишем билиберду в $cfg['blowfish_secret'] = '';
Сохраняем.
Сбрасываем права.
Код:

chown -R vsftpd:nogroup /home/web/site


Заходим браузером в PMA 123.123.123.123/pma .
Также можно поставить net2ftp - популярный браузерный ftp-клиент.

Код:
mkdir /home/web/site/123.123.123.123/ftp
cd /home/web/site/123.123.123.123/ftp
wget http://www.net2ftp.com/download/net2ftp_v0.97.zip


Архив-то зипвый. Поставим нудные утилиты

Код:
apt-get install zip unzip
unzip net2ftp*
cd net2*
mv files_to_upload/* /home/web/site/123.123.123.123/ftp
rm -rf *
cd ..
nano settings.inc.php


Меняем $net2ftp_settings["encryption_string"] и

Код:
nano settings_authorizations.inc.php


и делаем вот так:
Код:
//$net2ftp_settings["allowed_ftpservers"][1] = "ALL";
$net2ftp_settings["allowed_ftpservers"][1] = "localhost";


Сбрасываем права. Идем 123.123.123.123/ftp и радуемся.

Код:
Mem:    131072k total,    56044k used


Конечно, phpMyadmin можно закачать и по фтп, однако, совместное использование разархиваторов существенно усоряет и упрощает процесс.
Я специально показал извлечение из 2 архивов - tar и популярный среди пользователей Win zip.
Такими-же командами вы можете извлекать из архивов CMS, форумы и многое другое.
Да, и на последок. Oтправка почты из скриптов. Exim4
Все замечания принимаются.

Код:
apt-get install exim4
dpkg-reconfigure exim4-config
выбираем: NO, internet-site, <имя сервера>, 127.0.0.1,<имя сервера>,пусто,пусто,no, /var/mail/, server,

да. и самое важное. Читай маны, %username%!!
Лазутов Александр. 13.02.2009 (с). mailto: lazutov[c0баka]lazutov.ru
_________________
сервис DNS | разные http, DNS и прочие утилиты
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DEXIF
#!/bin/bash
Согнул ложку


Зарегистрирован: 27.09.2006
Сообщения: 894
Откуда: Минск
48203 Монеты

СообщениеДобавлено: Сб, 14 Ноя, 2009 10:25    Заголовок сообщения: Ответить с цитатой

Вот решил я почитать... поискать может я чего плохо делаю... хотелось уменьшить потребление рамы... и вот тут я не могу понять... а почему бы не использовать sshfs... хотя для виндоюзеров я не уверен что есть подобная возможность но линуксоидам должно быть полезно... ведь мы сразу избавляемся от ftp демона... вобщем если кому интересно:
Для того чтобы примонтировать удалённую ФС:
Ставите себе sshfs для debian юзеров:
Код:
# apt-get install ssh sshfs

Далее... Для подключения модуля ядра:
Код:
# modprobe fuse

Собственно всё... теперь чтобы примонтировать удалённую ФС:
Цитата:
sshfs [имя_пользователя]@[адрес_сервера]:[что_монтируем] [куда_монтируем]

Код:
sshfs user@domain.com:/ /media/serv -p 9999

-p 9999 в данном примере используется если у вас прописан не стандартный порт ssh на сервере, а 9999
также после ":" можно указать не "/", a например "/home/user" тогда будет монтироваться домашняя папка пользователя, а не корень ФС сервера

Для отмонтирования используем:
Цитата:
fusermount -u [куда_монтируем]

Код:
fusermount -u /media/serv


Скажите если я не прав Smile
©Dexif Smile
_________________


S
|D|EG| Let's Rock! | XAP в ЛИЧКУ, SAPE
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
girafenok
Два пингвиненка
Два пингвина


Зарегистрирован: 17.11.2007
Сообщения: 330

13690 Монеты

СообщениеДобавлено: Сб, 14 Ноя, 2009 21:11    Заголовок сообщения: Ответить с цитатой

Скорость передачи по ssh меньше, чем по ftp, нагружает ssh систему больше, так как шифрует соединение. Если сервер используется под хостинг, т.е. нужно большое количество пользователей, то ssh заметно нагрузит систему.
Кроме того, активное ssh-соединение "кушает" гораздо больше памяти, чем активное ftp-соединение. Так, что выигрыша по памяти не получится.

Для снижения потребления памяти стоит заменить apache на nginx.

nginx+php5-fastcgi+mysql+ ftp+couchdb+собственный сервер на Питоне, +2 irc-бота (+активное ssh-соединение) = 51МБ. Из них ftp-демон занимает порядка 600КБ, что несущественно.

P.S. Для ftp протокола есть curlftpfs. Также есть еще nfs и smbfs.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
DEXIF
#!/bin/bash
Согнул ложку


Зарегистрирован: 27.09.2006
Сообщения: 894
Откуда: Минск
48203 Монеты

СообщениеДобавлено: Сб, 14 Ноя, 2009 23:27    Заголовок сообщения: Ответить с цитатой

Хм... я не думаю что мануал написан для администраторов хостингов... мануал написан для людей которым надо поднять сервак для 1-2 своих проектов... а => не большое количество пользователей...
например я использую ftp доступ редко... только для экстренных случаев... а зачем демона держать... его конечно можно отключить... но тогда каждый раз придётся включать заново... по мне так проще 1 разок примонтировать... сделать... и отмонтировать... ибо ssh демон мне полюбому нужен)

Да, пусть он медленнее работает... но мне пока так выгоднее... да и хлопот по содержанию ещё одного демона меньше )

А вот собственно изза чего всё началось...
nginx+php5-fastcgi+mysql+sendmail+ssh(без подключения)= 53 мб...
а вот что меня особенно смущает так это 2 процесса php в сумме весящие 21мб... хотя раньше я не обращал внимания... может это и нормально...

P.S.:Кстати никто не думал насчёт того что можно на сервере отрезать кусочек веника и сделать своп раздел... оперативку бы не пришлось докупать если например дисковое пространство не сильно используется... Есть конечно угроза потерять сервак... но всё-же... Smile
_________________


S
|D|EG| Let's Rock! | XAP в ЛИЧКУ, SAPE
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
lazutov
while (1==1);
Последний герой


Зарегистрирован: 30.04.2007
Сообщения: 3760

157905 Монеты

СообщениеДобавлено: Вс, 15 Ноя, 2009 05:38    Заголовок сообщения: Ответить с цитатой

Отрезаем своп и п****ц жестким дискам.
Гораздо проще думать в другое русло и использовать ulimit .
Но глава "вредные советы" выходит за пределы данной статьи.
Я не собираюсь рассказывать про команды, которые забыл один нолик и система летит куда-то в даль при нестартующем init

PS уже написана половина аналогичного мана про nginx
_________________
сервис DNS | разные http, DNS и прочие утилиты
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
girafenok
Два пингвиненка
Два пингвина


Зарегистрирован: 17.11.2007
Сообщения: 330

13690 Монеты

СообщениеДобавлено: Пн, 16 Ноя, 2009 10:08    Заголовок сообщения: Ответить с цитатой

DEXIF писал(а):
по мне так проще 1 разок примонтировать... сделать... и отмонтировать... ибо ssh демон мне полюбому нужен)


Непонятно только зачем тогда использовать sshfs. Протокол sftp поддерживают многие программы - dolphin, gftp, например я пользуюсь krusader'om.


DEXIF писал(а):

а вот что меня особенно смущает так это 2 процесса php в сумме весящие 21мб...


Если скрипт будет потреблять много памяти они еще больше будут занимать. Тут вопрос в другом, насколько больше занимает php в режиме fastcgi по сравнению с режимом mod_php. Думаю, что при 1 процессе fastcgi разница небольшая.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
lazutov
while (1==1);
Последний герой


Зарегистрирован: 30.04.2007
Сообщения: 3760

157905 Монеты

СообщениеДобавлено: Пн, 16 Ноя, 2009 16:11    Заголовок сообщения: Ответить с цитатой

Код:
0.0  4.2  24688  5604 ?        S    21:46   0:00 /usr/bin/php-cgi -q -b localhost:9000 -c /etc/php5/cgi/php.ini

И таких пять.
_________________
сервис DNS | разные http, DNS и прочие утилиты
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Администрирование серверов Часовой пояс: GMT
Страница 1 из 1

 


EOMY TOP 100 Rambler's Top100   Рейтинг@Mail.ru    



Powered by phpBB © 2001, 2005 phpBB Group


Рейтинг SIMPLETOP.NET