LAMP + MTA + FTP = 67mb
Условные обозначения: ip-адрес 123.123.123.123.
Доменное имя, на которое отзывается данный IP: test.serverstats.ru
эти команды можно вводить без изменений
эти команды требуют редактирования.
Чаще всего - подстанока своего домена, IP etc
эти команды важны. Запомните их.
Приведено для для примера, они не всегда
нужны.
Если не понятно, что какая команда делает, пишем в консоли
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 -w /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,
Лазутов Александр. 13.02.2009 (с). mailto: lazutov[c0баka]lazutov.ru
Перепечатка разрешена с
уведомлением автора посредствам email и активной ссылкой на источник
lazutov.ru