Настройка сервера Ubuntu 16.
1. Настройка после установки сервера.
2. Устанавливаем VmWare Tools
3. Приступам к установке web компонент
3.1 php и nginx
3.2 тот самый spawn-fcgi
4. Устанавливаем базу данных MySQL
4.1 Загрузим сам дамп баз
4.2 Выполните процесс апгрейда баз данных MySQL:
4.3 Перезапустите MySQL
1. Настройка после установки сервера.
Включаем возможность войти в систему под привилегиями ROOT
Комманда смены пароля root в консоли звучит::
sudo passwd root
Обновляем пакеты системмы:
apt-get update
apt-get dist-upgrade
apt-get autoclean
Установим файловый менеджер mc и антивирь clamav
apt-get install mc clamav clamav-daemon
Сразу обновляем базы антивируса clamav
sudo freshclam
Теперь настроим подсветку конфигов для удобства чтения и правки.
$ sudo mcedit /etc/skel/.bashrc
найти и раскомментировать строку
force_color_prompt=yes
Дальше ищем файл
$ sudo mcedit /usr/share/mc/syntax/Syntax
в конце файла меняем
include unknown.syntax
на
include sh.syntax
теперь все файлы в mcedit будут с подсветкой синтаксиса.
2. Устанавливаем VmWare Tools
Для начала установим дополнительные пакеты
sudo apt-get update && sudo apt-get install build-essential linux-headers-$(uname -r)
т.к. система чистая то доставляем
apt-get install make gcc
Загружаемся в установленную Ubuntu и вставляем в виртуальный привод образ диска "C:\Program Files (x86)\VMware\VMware Workstation\linux.iso", не забывая при этом нажать кнопку Connect на приводе для его подключения.
Смотрим подключенные диски
sudo blkid
находим cdrom (у меня это был sr0) и вводим
mount /dev/sr0 /media/cdrom
Копируем все в папку /tmp, распаковываем
sudo tar xvfz /media/cdrom/VMwareTools-*.tar.gz -C /tmp/
Установку VMware Tools запускаем командой:
sudo perl /tmp/vmware-tools-distrib/vmware-install.pl
Оставим все значения по0умолчанию, нажимая в процессе установки Enter. После установки vmTools перезагрузите систему:
sudo shutdown -r now
3. Приступам к установке web компонент
3.1 php и nginx
apt-get install libpcre3-dev libcurl4-openssl-dev gcc nginx
Установка php из исходников -большая возня и отнимает много времени, по этому будем ставить из репозиториев:
apti-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-xmlrpc php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-xsl php5-recode php5-snmp php5-sqlite php5-tidy snmp-mibs-downloader
переходим в конфигурационный файл PHP:
nano /etc/php5/php.ini
находим строку cgi.fix_pathinfo = 1 и снимаем с нее комментарий
Было:
cgi.fix_pathinfo = 1
Стало:
cgi.fix_pathinfo = 0
Сохраняем изменения, выходим.
3.2 тот самый spawn-fcgi
Нам необходимо установить web сервер lighttpd, сам сервер нам не нужен, но вместе с ним идет весьма ценный для нас модуль-spawn-fcgi
apt-get install lighttpd
После установки выйдет ошибка, что порт 80 занят-это нормально у нас там Nginx.
Теперь удаляем из автозагрузки lighttpd:
update-rc.d -f lighttpd remove
Нам необходимо запустить spawn-fcgi
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
Из написанного видно что закупается spawn-fcgi на порту 9000, от имени пользователя www-data.
Теперь свяжим вместе nginx и spawn-fcgi. Для этого правим конфигурационный файл нашего сайта
/etc/nginx/sites-available/www.example.com
------------------------------------------------------------------------------------------------------------
server {
server_name www.example.com example.com;
access_log /srv/www/www.example.com/logs/access.log;
error_log /srv/www/www.example.com/logs/error.log;
root /srv/www/www.example.com/public_html;
location / {
index index.html index.htm;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/www.example.com/public_html$fastcgi_script_name;
}
}
----------------------------------------------------------------------------------------------------------------
Теперь создадим конфиг для spawn-cgi
touch /usr/bin/php-fastcgi
---------------------------------------------------------------------------------------------------------------
#!/bin/bash
FASTCGI_USER=www-data
FASTCGI_GROUP=www-data
ADDRESS=127.0.0.1
PORT=9000
PIDFILE=/var/run/fastcgi-php.pid
CHILDREN=6
PHP5=/usr/bin/php5-cgi
/usr/bin/spawn-fcgi -a $ADDRESS -p $PORT -P $PIDFILE -C $CHILDREN -u $FASTCGI_USER -g $FASTCGI_GROUP -f $PHP5
---------------------------------------------------------------------------------------------------------------
Сохраняем и даем права
chmod +x /usr/bin/php-fastcgi
Создадим ссылку на наш сайт в nginx
cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/www.example.com
Создадим файл запуска spawn-cgi:
touch /etc/init.d/php-fastcgi
---------------------------------------------------------------------------------------------------------------
#!/bin/bash
PHP_SCRIPT=/usr/bin/php-fastcgi
FASTCGI_USER=www-data
FASTCGI_GROUP=www-data
PID_DIR=/var/run
PID_FILE=/var/run/fastcgi-php.pid
RET_VAL=0
case "$1" in
start)
if [[ ! -d $PID_DIR ]]
then
mkdir $PID_DIR
chown $FASTCGI_USER:$FASTCGI_GROUP $PID_DIR
chmod 0770 $PID_DIR
fi
if [[ -r $PID_FILE ]]
then
echo "php-fastcgi already running with PID `cat $PID_FILE`"
RET_VAL=1
else
$PHP_SCRIPT
RET_VAL=$?
fi
;;
stop)
if [[ -r $PID_FILE ]]
then
kill `cat $PID_FILE`
rm $PID_FILE
RET_VAL=$?
else
echo "Could not find PID file $PID_FILE"
RET_VAL=1
fi
;;
restart)
if [[ -r $PID_FILE ]]
then
kill `cat $PID_FILE`
rm $PID_FILE
RET_VAL=$?
else
echo "Could not find PID file $PID_FILE"
fi
$PHP_SCRIPT
RET_VAL=$?
;;
status)
if [[ -r $PID_FILE ]]
then
echo "php-fastcgi running with PID `cat $PID_FILE`"
RET_VAL=$?
else
echo "Could not find PID file $PID_FILE, php-fastcgi does not appear to be running"
fi
;;
*)
echo "Usage: php-fastcgi {start|stop|restart|status}"
RET_VAL=1
;;
esac
exit $RET_VAL
--------------------------------------------------------------------------------------------------------
Выдаем права и помещаем файл в автозагрузку
chmod +x /etc/init.d/php-fastcgi
update-rc.d php-fastcgi defaults
Запускаем сервисы
/etc/init.d/php-fastcgi start
/etc/init.d/nginx start
Теперь создадим следующий PHP файл в корневом каталоге документов
Цитировать
vi /var/www/nginx-default/info.php
-------------------------------------
<?php
phpinfo();
?>
-------------------------------------
4. Устанавливаем базу данных MySQL
Теперь, когда у нас есть веб-сервер, нам необходимо установить MySQL - базу данных, где будет храниться информация для нашего сайта.
Сделать это достаточно просто, открываем консоль и вбиваем:
apt-get install mysql-server
В процессе установки вам будет предложено ввести пароль администратора MySQL, который вам стоит запомнить или записать.
Все, MySQL установлен, но еще не настроен до конца.
Во-первых, необходимо создать первичную структуру для хранения данных самой MySQL. Мы можем это сделать командой:
mysql_install_db
Далее нам необходимо запустить сценарий безопасности, который изменит некоторые настройки идущие по умолчанию:
mysql_secure_installation
Вам нужно будет ввести пароль администратора MySQL, который Вы выбрали во время установки.
Далее, вам будет предложено изменить его. Если в этом нет необходимости, введите "N" и нажмите "ENTER". После этого вам будет предложено удалить некоторых тестовых пользователей и базы данных. Вы должны просто нажимать "ENTER" при появлении вопросов, чтобы удалить опасные настройки по умолчанию.
После того, как сценарий завершиться, MySQL готов к использованию.
Но нам нужно восстановить дамп базы со старой версии MySQL.
4.1 Загрузим сам дамп баз
mysql -u root -p < dump.sql
Дамп всех баз данных в MySQL создается командой:
mysqldump --all-databases -u root -p > dump.sql
4.2 Выполните процесс апгрейда баз данных MySQL:
mysql_upgrade -u root -p --force
4.3 Перезапустите MySQL
service mysql restart
Процесс обновления MySQL завершен. Можно проверить версию СУБД.
mysql -u root -p -e 'SHOW VARIABLES LIKE "%version%";'
На этом всё. Базы подгружены и конвертированы под новую версию.