Majordomo на Arhclinux-е - установка и настройка Apache, PHP, MySQL
Код: Выделить всё
wifi-menu Код: Выделить всё
systemctl start sshd.serviceКод: Выделить всё
passwdКод: Выделить всё
ssh [email protected]Настроим русский язык и шрифт с кириллицей
Код: Выделить всё
loadkeys ru
setfont cyr-sun16Код: Выделить всё
timedatectl set-ntp trueКод: Выделить всё
nano /etc/locale.genКод: Выделить всё
ru_RU.UTF-8 UTF-8Код: Выделить всё
locale-gen
export LANG=ru_RU.UTF-8swap 1 ГБ (по желанию),
boot 100 МБ,
root 15 ГБ,
home все остальное.
У меня на ноуте один диск /dev/sda. Если у вас их несколько, поменяйте букву на нужную. Ниже все команды на примере моего диска.
Сначала очистим таблицы на диске командой
Код: Выделить всё
sgdisk --zap-all /dev/sdаКод: Выделить всё
сfdisk /dev/sdaТеперь форматируем и создаем разделы с нужными типами файловых систем
Код: Выделить всё
mkswap /dev/sda1 -L swap
mkfs.ext2 /dev/sda2 -L boot
mkfs.ext4 /dev/sda3 -L root
mkfs.ext4 /dev/sda4 -L homeКод: Выделить всё
mount /dev/sda3 /mntКод: Выделить всё
mkdir /mnt/{boot,home}Код: Выделить всё
mount /dev/sda2 /mnt/boot
mount /dev/sda4 /mnt/home
swapon /dev/sda1Код: Выделить всё
pacstrap /mnt base base-devel netctl dialog wpa_supplicantКод: Выделить всё
genfstab -pU /mnt >> /mnt/etc/fstabКод: Выделить всё
arch-chroot /mntКод: Выделить всё
echo "archlinux" > /etc/hostnameКод: Выделить всё
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtimeЛокализуемся
Код: Выделить всё
echo -e "en_US.UTF-8 UTF-8\nru_RU.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
echo 'LANG="ru_RU.UTF-8"' > /etc/locale.confКод: Выделить всё
echo 'KEYMAP=ru' >> /etc/vconsole.conf
echo 'FONT=cyr-sun16' >> /etc/vconsole.confКод: Выделить всё
mkinitcpio -p linuxpasswd
Ставим загрузчик Граб
Код: Выделить всё
pacman -S grub
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfgКод: Выделить всё
exit
umount /mnt/{boot,home,}
rebootПосле перезагрузки введите логин root и пароль.
Локализация системы
Код: Выделить всё
localectl set-keymap ru
setfont cyr-sun16
localectl set-locale LANG="ru_RU.UTF-8"
export LANG=ru_RU.UTF-8
Код: Выделить всё
mkinitcpio -p linuxКод: Выделить всё
useradd -m -g users -G wheel -s /bin/bash ваше_имя
passwd ваше_имяКод: Выделить всё
nano /etc/sudoersКод: Выделить всё
%wheel ALL=(ALL) ALLКод: Выделить всё
sudo pacman -S openssh wget unzip git mcИксы на сервер ставим по желанию. Я в этом смысла не вижу, все равно вся работа будет идти либо через веб-интерфейс, либо по SSH.
Если тема интересна, могу написать как делать бекап системы и файлов, про настройку сетевого экрана и что-нибудь еще.
sudo pacman -S apache
Добавляем своего пользователя в группу http
Код: Выделить всё
sudo gpasswd -a username httpКод: Выделить всё
sudo systemctl start httpd.serviceДалее займемся настройкой Apache. Открываем главный файл с настройками:
Код: Выделить всё
sudo nano /etc/httpd/conf/httpd.confКод: Выделить всё
Listen 80Код: Выделить всё
Listen 127.0.0.1:80Ниже строки
Код: Выделить всё
User http
Group httpВпишем имя сервера в строку
Код: Выделить всё
ServerName localhostКод: Выделить всё
DocumentRoot "/srv/http"
<Directory "/srv/http">В этом же блоке ниже меняем строку
Код: Выделить всё
AllowOverride NoneКод: Выделить всё
AllowOverride AllКод: Выделить всё
Require all deniedКод: Выделить всё
Require all grantedКод: Выделить всё
LoadModule mpm_event_module modules/mod_mpm_event.soКод: Выделить всё
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule rewrite_module modules/mod_rewrite.soКод: Выделить всё
LoadModule php7_module modules/libphp7.soКод: Выделить всё
Include conf/extra/php7_module.confВ файле
Код: Выделить всё
sudo nano /etc/httpd/conf/mime.types Код: Выделить всё
application/x-httpd-php phpКод: Выделить всё
apachectl configtestИзменим права доступа к корневой папке сервера
Код: Выделить всё
cd /srv
sudo chown -R root:http http/
sudo chmod -R 775 http/Код: Выделить всё
/var/log/httpd/access_log
/var/log/httpd/error_logКод: Выделить всё
sudo pacman -S php php-apache php-gd libmcryptКод: Выделить всё
sudo nano /etc/php/php.iniКод: Выделить всё
date.timezone = Europe/MoscowКод: Выделить всё
max_execution_time = 90
max_input_time = 180
post_max_size = 200M
upload_max_filesize = 50MКод: Выделить всё
extension=gd
extension=curl
extension=iconv
extension=zip
extension=mysqli
extension=pdo_mysql
extension=mcrypt
extension=sockets.soКод: Выделить всё
open_basedir = Код: Выделить всё
short_open_tag = OnКод: Выделить всё
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICTКод: Выделить всё
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICEПерезапускаем веб-сервер
Код: Выделить всё
sudo systemctl restart httpd.serviceКод: Выделить всё
sudo touch /srv/http/test.phpКод: Выделить всё
<?php phpinfo();?>Если появится информация о php, значит вы все сделали правильно.
Код: Выделить всё
sudo pacman -S mariadb
sudo systemctl start mariadb.service
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
sudo mysql_secure_installationНа что будет предложено установить его для рут-пользователя, соглашаемся и вводим новый пароль, потом повторяем его.
На все дальнейшие вопросы отвечаем утвердительно (жмем энтер).
Запрещаем доступ к БД из вне. В файле
Код: Выделить всё
sudo nano /etc/mysql/my.cnfраскомментируем строчку
Код: Выделить всё
skip-networkingКод: Выделить всё
cd /usr/src
sudo pacman -S git
sudo git clone https://github.com/sergejey/majordomo.git
Код: Выделить всё
sudo cp -rp /usr/src/majordomo/* /srv/http/
sudo cp -rp /usr/src/majordomo/.htaccess /srv/http/Код: Выделить всё
sudo cp /srv/http/config.php.sample /srv/http/config.phpКод: Выделить всё
sudo nano /srv/http/config.phpКод: Выделить всё
Define('DB_USER', 'root');
Define('DB_PASSWORD', qwerty123);Define('SERVER_ROOT', '/srv/http');
Подключаемся к БД
Код: Выделить всё
mysql -u root -pдолжно появиться приглашение
Код: Выделить всё
MariaDB [(none)]> Код: Выделить всё
CREATE DATABASE db_terminal;
USE db_terminal;
quitКод: Выделить всё
sudo mysql -u root -p db_terminal < /srv/http/db_terminal.sqlКод: Выделить всё
cd /srv
sudo chown -R root:http http/
sudo chmod -R 775 http/Код: Выделить всё
sudo nano /etc/systemd/system/majordomo.serviceКод: Выделить всё
[Unit]
Description=Majordomo
[Service]
Requires=mariadb.service
Requires=apache.service
Type=simple
WorkingDirectory=/srv/http
ExecStart=/usr/bin/php /srv/http/cycle.php
Restart=always
User=http
Group=http
[Install]
WantedBy=multi-user.targetКод: Выделить всё
sudo systemctl start majordomo.serviceДолжен открыться наш сайт Majordomo. В левом верхнет углу должно быть три зеленые иконки. Если они не зеленые, значит у вас не работаю какие-либо циклы, о чем будет написано там же.
Для убодства все нужные нам сервисы можно сделать автозапускаемыми
sudo systemctl enable httpd.service
sudo systemctl enable mariadb.service
sudo systemctl enable majordomo.service
На этом установка завершена. Можете настроить систему по своему усмотрению.