Поднимаем сервер для домашней работы

3.88K
.
(\/)____o_O____(\/)
кстати крыса на старые кеды чем то похожа
.
апач я так понял по зависимостям встал?
Я бы предпочёл nginx + php-fpm.
.
(\/)____o_O____(\/)
reaper, апач и планировался
точнее я сейчас все на nginx + fpm переделал, но апач будет. даже тест сравнение будет
сейчас второй раз ставлю ось и пробую инструкцию, если все норм публикую, и буду доделывать уже апач
.
(\/)____o_O____(\/)
фтп уже настроил. папка с шарой для ананимусов и общий доступ к /srv
я специально при установке делал раздел, все добро там
.
(\/)____o_O____(\/)
reaper, на самом деле апач ещё тянет пхпмайадмин, потому для nginx я его просто скачал и поставил в папку гг
.
# Koenig (03.09.2016 / 00:12)
reaper, апач ещё тянет пхпмайадмин
не наоборот?
.
(\/)____o_O____(\/)
reaper, ну я имел ввиду если с консольки ставить пма, апач тянет
.
(\/)____o_O____(\/)
Инструкция уже оттестированная на xubuntu 16.04

sudo apt-get update
sudo apt-get upgrade

sudo apt-get install mc nano python-software-properties snmp

Mysql

sudo apt-get install mariadb-server mariadb-client


настройка

sudo service mysql stop
sudo mysql_install_db
sudo service mysql start
sudo mysql_secure_installation
//вводим рут пароль = просто жмем энтер (пароль у нас еще не установлен, хотя можно что то ввести), потом предложит установить пароль для рута мускула
ставим новый пароль мускулу
далее несколько раз надо будет нажать y на предложеные вопросы
// проверим
mysql -V
// зайдем под рутом, надо будет пароль написать
sudo mysql -p
// вывод помощи
\h
// выход
exit

// теперь нам нужен пользователь для phpmyadmin
sudo mysql --user=root mysql
// выполняем три запроса, где qwerty это пароль
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'qwerty';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

ставим пых и сервер

sudo apt-get install php-fpm php-gd php-gmp php-ldap php-mysql php-recode php-snmp php-sqlite3 php-tidy php-xml php-xmlrpc php-bz2 php-bcmath php-enchant php-intl php-mbstring php-mcrypt php-soap php-xsl php-zip php-curl php-imagick
sudo apt-get install nginx-full

создаем папки

cd /srv
sudo mkdir www www/localhost ftp logs logs/server logs/mysql logs/ftp logs/php

добавляем группу и пользователя нашего сервера

sudo addgroup server
sudo useradd -d /srv -g server -s /bin/bash server
sudo passwd server

sudo chmod -R 777 /srv
sudo chown server:server /srv

настраиваем nginx

делаем резервные копии файлов которые будем редактировать (позже, тонкая настройка)
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.def
добавляем хост localhost
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/localhost
удаляем симлинк на дефолтную конфигурацию
sudo rm /etc/nginx/sites-enabled/default
активируем наш новый хост
sudo ln -nfs /etc/nginx/sites-available/localhost /etc/nginx/sites-enabled/

редактируем конфиг
sudo nano /etc/nginx/sites-available/localhost
зажать ctrl + k держать пока файл не очистится
вставить все что между //

//
server {
listen 80 default_server;
listen [::]:80 default_server;

root /srv/www/localhost;

index index.html index.php;

server_name localhost;

location / {
try_files $uri $uri/ =404;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}

location ~ /\.ht {
deny all;
}
}

//

sudo service nginx configtest
sudo service nginx reload

настройка php-fpm

резервные копии (тюнинг позже)
sudo cp /etc/php/7.0/fpm/php-fpm.conf /etc/php/7.0/fpm/php-fpm.conf.def
sudo cp /etc/php/7.0/fpm/php.ini /etc/php/7.0/fpm/php.ini.def

sudo cp /etc/php/7.0/fpm/pool.d/www.conf /etc/php/7.0/fpm/pool.d/server.conf
переименовываем для памятки в файл без расширения, инклюды только conf файлов
sudo mv /etc/php/7.0/fpm/pool.d/www.conf /etc/php/7.0/fpm/pool.d/default

настройка
так же стереть все и вставить (тюнинг позже)
sudo nano /etc/php/7.0/fpm/pool.d/server.conf

//
[server]

;prefix = /path/to/pools/$pool

user = server
group = server

listen = /run/php/php7.0-fpm.sock

;listen.backlog = 511

listen.owner = server
listen.group = server
listen.mode = 0666

;listen.acl_users =
;listen.acl_groups =

;listen.allowed_clients = 127.0.0.1

pm = dynamic

pm.max_children = 5

pm.start_servers = 2

pm.min_spare_servers = 1

pm.max_spare_servers = 3

;pm.process_idle_timeout = 10s;

;pm.max_requests = 500

;pm.status_path = /status

;ping.path = /ping

;ping.response = pong

;access.log = log/$pool.access.log

;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"

;slowlog = log/$pool.log.slow

;request_slowlog_timeout = 0

;request_terminate_timeout = 0

;rlimit_files = 1024

;rlimit_core = 0

;chroot =

;chdir = /var/www

;catch_workers_output = yes

;clear_env = no

;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"

;slowlog = log/$pool.log.slow

;request_slowlog_timeout = 0

;request_terminate_timeout = 0

;rlimit_files = 1024

;rlimit_core = 0

;chroot =

;chdir = /var/www

;catch_workers_output = yes

;clear_env = no

;security.limit_extensions = .php .php3 .php4 .php5 .php7

;env[HOSTNAME] = $HOSTNAME
;env[PATH] = /usr/local/bin:/usr/bin:/bin
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp

;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
;php_flag[display_errors] = off
;php_admin_value[error_log] = /var/log/fpm-php.www.log
;php_admin_flag[log_errors] = on
;php_admin_value[memory_limit] = 32M

//

sudo service php7.0-fpm reload

делаем тест файл

sudo nano /srv/www/localhost/index.php
//
<?php

$start_time = microtime(true);
$done = 0;
$count = 0;

while (!$done) {
for ($idx = 0; $idx < 10000; $idx++) {
$x = 45 * 67 / 2 + $idx - 239892382.23232323;
$y = 3483434.33483 / 28328372 * 384 + $idx - $x;
}
$count++;
$now = microtime(true);
if ($now - $start_time >= 1.0) { $done = 1; }
}

echo 'CPU Benchmark: ' . $count . "\n";
phpinfo();
//
сохранить комбинация клавиш ctrl + o
выйти ctrl + x


ставим pma

cd /srv/www/localhost
sudo wget https://files.phpmyadmin.net/p ... ar.gz
sudo tar -zxf phpMyAdmin-4.6.4-all-languages.tar.gz
sudo mv /srv/www/localhost/phpMyAdmin-4.6.4-all-languages /srv/www/localhost/pma
файл архива оставляем для теста фтп

настройка
удалить директорию setup
переименовать config.sample.inc.php -> config.inc.php
отредактировать config.inc.php
// $cfg['blowfish_secret'] = SHA1('1234567890qwerty');
sha1 обязателен
в самом пма нижний правый угол отобразит ссылку на установку таблиц phpmyadmin

FTP

sudo apt-get install vsftpd
sudo usermod -d /srv/ftp ftp
sudo addgroup ftpuser
sudo useradd -d /srv/ftp -g ftpuser ftpuser
sudo passwd ftpuser

sudo chmod 555 /srv/ftp
sudo chown ftpuser:ftpuser /srv/ftp

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.def

sudo nano /etc/vsftpd.conf
зажать ctrl + k держать пока файл не очистится

# Запускать vsftpd в независимом режиме
listen=YES
# Делаем анонимный доступ
anonymous_enable=YES
# Анонимные входят без пароля
no_anon_password=YES
# Анонимные будут попадать в публичную директорию
anon_root=/srv/ftp
anon_umask=022
# Разрешаем вход локальным пользователям с правом записи в домашних директориях
local_enable=YES
write_enable=YES
local_umask=022
# Локальные пользователи будут входить только в свои домашние каталоги
chroot_local_user=YES
chroot_list_enable=NO
allow_writeable_chroot=YES
# Сообщения будут записываться в собственный журнал
#xferlog_enable=YES
#xferlog_file=/var/log/vsftpd.log
# Установки публичного FTP
max_clients=100
max_per_ip=10
hide_ids=YES
idle_session_timeout=600
data_connection_timeout=120
dirmessage_enable=YES
ftpd_banner=Welcome!

sudo service vsftpd reload
.
(\/)____o_O____(\/)
чистый нижний правый угол, без ошибок
Прикрепленные файлы:
.
Koenig, PMA может сразу не поехать, тогда нужно еще это проделать
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin
sudo /etc/init.d/apache2 reload
Всего: 108