PHP и WEB-хостинг

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: PHP и WEB-хостинг

Непрочитанное сообщение Olej » 24 дек 2019, 23:50

Olej писал(а):
24 дек 2019, 23:47
Здесь подробнейшим образом расписано как настроить ufw для самых разнообразных портов.
Но нам не нужно, сейчас, для самых разнообразных портов, а нужно для конкретных целей: установить и настроить форум под Apache.

Код: Выделить всё

olej@ACER:~$ aptitude search ufw
p   gufw                                                                                                 - графический интерфейс пользователя для ufw
p   python-ufw                                                                                           - Uncomplicated FireWall Python modules
p   ufw                                                                                                  - program for managing a Netfilter firewall

olej@ACER:~$ sudo apt install ufw
[sudo] пароль для olej:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Следующие НОВЫЕ пакеты будут установлены:
  ufw
Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 84 пакетов не обновлено.
Необходимо скачать 164 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 852 kB.
Пол:1 http://deb.debian.org/debian buster/main amd64 ufw all 0.36-1 [164 kB]
Получено 164 kB за 1с (253 kB/s)
Предварительная настройка пакетов …
Выбор ранее не выбранного пакета ufw.
(Чтение базы данных … на данный момент установлено 423097 файлов и каталогов.)
Подготовка к распаковке …/archives/ufw_0.36-1_all.deb …
Распаковывается ufw (0.36-1) …
Настраивается пакет ufw (0.36-1) …

Creating config file /etc/ufw/before.rules with new version

Creating config file /etc/ufw/before6.rules with new version

Creating config file /etc/ufw/after.rules with new version

Creating config file /etc/ufw/after6.rules with new version
Created symlink /etc/systemd/system/multi-user.target.wants/ufw.service → /lib/systemd/system/ufw.service.
Обрабатываются триггеры для man-db (2.8.5-2) …
Обрабатываются триггеры для rsyslog (8.1901.0-1) …
Обрабатываются триггеры для systemd (241-7~deb10u2) …

Код: Выделить всё

olej@ACER:~$ /sbin/ufw --help

Usage: ufw COMMAND

Commands:
 enable                          enables the firewall
 disable                         disables the firewall
 default ARG                     set default policy
 logging LEVEL                   set logging to LEVEL
 allow ARGS                      add allow rule
 deny ARGS                       add deny rule
 reject ARGS                     add reject rule
 limit ARGS                      add limit rule
 delete RULE|NUM                 delete RULE
 insert NUM RULE                 insert RULE at NUM
 route RULE                      add route RULE
 route delete RULE|NUM           delete route RULE
 route insert NUM RULE           insert route RULE at NUM
 reload                          reload firewall
 reset                           reset firewall
 status                          show firewall status
 status numbered                 show firewall status as numbered list of RULES
 status verbose                  show verbose firewall status
 show ARG                        show firewall report
 version                         display version information

Application profile commands:
 app list                        list application profiles
 app info PROFILE                show information on PROFILE
 app update PROFILE              update PROFILE
 app default ARG                 set default application policy

olej@ACER:~$ /sbin/ufw app list
ERROR: You need to be root to run this script
olej@ACER:~$
olej@ACER:~$ sudo /sbin/ufw app list
Available applications:
  AIM
  Bonjour
  CIFS
  CUPS
  DNS
  Deluge
  IMAP
  IMAPS
  IPP
  KTorrent
  Kerberos Admin
  Kerberos Full
  Kerberos KDC
  Kerberos Password
  LDAP
  LDAPS
  LPD
  MSN
  MSN SSL
  Mail submission
  NFS
  OpenSSH
  POP3
  POP3S
  PeopleNearby
  SMTP
  SSH
  Socks
  Telnet
  Transmission
  Transparent Proxy
  VNC
  WWW
  WWW Cache
  WWW Full
  WWW Secure
  XMPP
  Yahoo
  qBittorrent
  svnserve

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: PHP и WEB-хостинг

Непрочитанное сообщение Olej » 24 дек 2019, 23:53

Olej писал(а):
24 дек 2019, 23:50
настроить форум под Apache.

Код: Выделить всё

olej@ACER:~$ sudo ufw allow in "WWW FULL"
Rules updated
Rules updated (v6)


olej@ACER:~$ sudo ufw status
Status: inactive


olej@ACER:~$ sudo ufw enable
Firewall is active and enabled on system startup


olej@ACER:~$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
WWW Full                   ALLOW       Anywhere
WWW Full (v6)              ALLOW       Anywhere (v6)


olej@ACER:~$ sudo ufw allow in "OpenSSH"
Rule added
Rule added (v6)

olej@ACER:~$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
WWW Full                   ALLOW       Anywhere
OpenSSH                    ALLOW       Anywhere
WWW Full (v6)              ALLOW       Anywhere (v6)
OpenSSH (v6)               ALLOW       Anywhere (v6)
Очень важно здесь операции enable + disable, которых нет в --help, и которые активирует или выключает файервол.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: PHP и WEB-хостинг

Непрочитанное сообщение Olej » 24 дек 2019, 23:55

Olej писал(а):
24 дек 2019, 23:50
настроить форум под Apache.
В конечном счёте на боевом сервере этого вот форума мы имеем:

Код: Выделить всё

root@277938:/var/log/apt# sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
WWW Full                   ALLOW       Anywhere                  
8044                       ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
WWW Full (v6)              ALLOW       Anywhere (v6)             
8044 (v6)                  ALLOW       Anywhere (v6)       

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: PHP и WEB-хостинг

Непрочитанное сообщение Olej » 25 дек 2019, 02:06

Olej писал(а):
24 дек 2019, 18:26
Как оказалось, потребовалось доустановить (почему и как не объясняю - это описано в теме смены хостинга форума):
То, что забыл зафиксировать раньше: после доустановки модулей PHP, изменений в конфигурационных файлах, (да и периодически время от времени) нужно перезапускать Apache:

Код: Выделить всё

root@277938:/var/www/linux-ru.ru# systemctl restart apache2
И перепроверять как это произошло:

Код: Выделить всё

root@277938:/var/www/linux-ru.ru# systemctl status apache2
* apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-12-25 01:53:48 MSK; 26s ago
     Docs: https://httpd.apache.org/docs/2.4/
  Process: 30906 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
 Main PID: 30910 (apache2)
    Tasks: 7 (limit: 544)
   Memory: 86.8M
   CGroup: /system.slice/apache2.service
           |-30910 /usr/sbin/apache2 -k start
           |-30911 /usr/sbin/apache2 -k start
           |-30912 /usr/sbin/apache2 -k start
           |-30913 /usr/sbin/apache2 -k start
           |-30914 /usr/sbin/apache2 -k start
           |-30915 /usr/sbin/apache2 -k start
           `-30916 /usr/sbin/apache2 -k start

Dec 25 01:53:48 277938.local systemd[1]: Starting The Apache HTTP Server...
Dec 25 01:53:48 277938.local apachectl[30906]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 277938.local. Set the 'ServerName' directive globally to suppress this message
Dec 25 01:53:48 277938.local systemd[1]: Started The Apache HTTP Server.
Если там возникают серьёзные ошибки (да и вообще ошибки по ходу работы форума), то смотрим их детализацию здесь (error.log или error.log.1):

Код: Выделить всё

root@277938:~# tail /var/log/apache2/error.log
[Mon Dec 23 22:04:49.638248 2019] [php7:error] [pid 13206] [client 193.28.177.118:37266] PHP Fatal error:  Uncaught Error: Class 'DOMDocument' not found in /var/www/linux-ru.ru/phpbb/textformatter/s9e/utils.php:105\nStack trace:\n#0 /var/www/linux-ru.ru/phpbb/notification/type/quote.php(78): phpbb\\textformatter\\s9e\\utils->get_outermost_quote_authors('<r><QUOTE autho...')\n#1 /var/www/linux-ru.ru/phpbb/notification/manager.php(273): phpbb\\notification\\type\\quote->find_users_for_notification(Array, Array)\n#2 /var/www/linux-ru.ru/phpbb/notification/manager.php(266): phpbb\\notification\\manager->add_notifications('notification.ty...', Array, Array)\n#3 /var/www/linux-ru.ru/includes/functions_posting.php(2356): phpbb\\notification\\manager->add_notifications(Array, Array)\n#4 /var/www/linux-ru.ru/posting.php(1479): submit_post('quote', 'Re: \\xD0\\xB8\\xD0\\xB7\\xD0\\xBC\\xD0\\xB5\\xD0\\xBD\\xD0...', 'Olej', 0, Array, Array, true, true)\n#5 {main}\n  thrown in /var/www/linux-ru.ru/phpbb/textformatter/s9e/utils.php on line 105, referer: http://linux-ru.ru/posting.php?mode=quote&f=8&p=23089

Код: Выделить всё

root@277938:~# tail -n1 /var/log/apache2/error.log  
[Mon Dec 23 22:10:11.656164 2019] [php7:error] [pid 13228] [client 54.36.149.62:41848] PHP Fatal error:  Uncaught Error: Class 'DOMDocument' not found in /var/www/linux-ru.ru/vendor/s9e/text-formatter/src/Renderer.php:19\nStack trace:\n#0 /var/www/linux-ru.ru/vendor/s9e/text-formatter/src/Renderers/PHP.php(127): s9e\\TextFormatter\\Renderer->loadXML('<r><URL url="ht...')\n#1 /var/www/linux-ru.ru/vendor/s9e/text-formatter/src/Renderer.php(31): s9e\\TextFormatter\\Renderers\\PHP->renderRichText('<r><URL url="ht...')\n#2 /var/www/linux-ru.ru/phpbb/textformatter/s9e/renderer.php(250): s9e\\TextFormatter\\Renderer->render('<r><URL url="ht...')\n#3 /var/www/linux-ru.ru/includes/functions_content.php(600): phpbb\\textformatter\\s9e\\renderer->render('<r><URL url="ht...')\n#4 /var/www/linux-ru.ru/viewtopic.php(1764): generate_text_for_display('<r><URL url="ht...', '1wczxbhf', 'mA==', 3, true)\n#5 {main}\n  thrown in /var/www/linux-ru.ru/vendor/s9e/text-formatter/src/Renderer.php on line 19

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: PHP и WEB-хостинг

Непрочитанное сообщение Olej » 25 дек 2019, 02:16

Как найти и посмотреть используемую БД форума?

1. Смотрим как заливалась из бэкапов БД (или создавалась новая), например:

Код: Выделить всё

root@277938:/var/www/linux-ru.ru# pwd
/var/www/linux-ru.ru

root@277938:/var/www/linux-ru.ru# cat config.php
<?php
// phpBB 3.0.x auto-generated configuration file
// Do not change anything in this file!

$dbms = 'mysqli';
$dbhost = 'localhost';
$dbport = '';
$dbname = 'forum';
$dbuser = 'root';
$dbpasswd = 'xxxxxxxx';
$table_prefix = 'rlf1_';
$acm_type = 'file';
$load_extensions = '';

@define('PHPBB_INSTALLED', true);
@define('DEBUG', true);
@define('DEBUG_EXTRA', true);
?>
2. Смотрим, например, структуру таблиц БД, для этого заходим в mysql от того же пользователя, который указан в config.php, с тем же паролем, с которым от этого пользователя создавалась БД (это может не совпадать с паролем того же пользователя в систем Linux, да и имя пользователя БД может отсутствовать в системе):

Код: Выделить всё

root@277938:~# mysql --password
Enter password: xxxxxxxx
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 52387
Server version: 10.3.18-MariaDB-0+deb10u1 Debian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use forum;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [forum]> show tables;
+--------------------------+
| Tables_in_forum          |
+--------------------------+
| rl_comments              |
| rl_eval                  |
| rl_pages                 |
| rlf1_acl_groups          |
| rlf1_acl_options         |
| rlf1_acl_roles           |
| rlf1_acl_roles_data      |
| rlf1_acl_users           |
| rlf1_attachments         |
| rlf1_banlist             |
| rlf1_bbcodes             |
| rlf1_bookmarks           |
| rlf1_bots                |
| rlf1_captcha_answers     |
| rlf1_captcha_questions   |
| rlf1_clicks              |
| rlf1_config              |
| rlf1_config_text         |
| rlf1_confirm             |
| rlf1_disallow            |
| rlf1_drafts              |
| rlf1_ext                 |
| rlf1_extension_groups    |
| rlf1_extensions          |
| rlf1_forums              |
| rlf1_forums_access       |
| rlf1_forums_track        |
| rlf1_forums_watch        |
| rlf1_groups              |
| rlf1_icons               |
| rlf1_lang                |
| rlf1_log                 |
| rlf1_login_attempts      |
| rlf1_migrations          |
| rlf1_moderator_cache     |
| rlf1_modules             |
| rlf1_notification_types  |
| rlf1_notifications       |
| rlf1_oauth_accounts      |
| rlf1_oauth_states        |
| rlf1_oauth_tokens        |
| rlf1_poll_options        |
| rlf1_poll_votes          |
| rlf1_posts               |
| rlf1_privmsgs            |
| rlf1_privmsgs_folder     |
| rlf1_privmsgs_rules      |
| rlf1_privmsgs_to         |
| rlf1_profile_fields      |
| rlf1_profile_fields_data |
| rlf1_profile_fields_lang |
| rlf1_profile_lang        |
| rlf1_qa_confirm          |
| rlf1_ranks               |
| rlf1_reports             |
| rlf1_reports_reasons     |
| rlf1_search_results      |
| rlf1_search_wordlist     |
| rlf1_search_wordmatch    |
| rlf1_sessions            |
| rlf1_sessions_keys       |
| rlf1_sitelist            |
| rlf1_smilies             |
| rlf1_styles              |
| rlf1_teampage            |
| rlf1_topics              |
| rlf1_topics_posted       |
| rlf1_topics_track        |
| rlf1_topics_watch        |
| rlf1_user_group          |
| rlf1_user_notifications  |
| rlf1_users               |
| rlf1_warnings            |
| rlf1_words               |
| rlf1_zebra               |
+--------------------------+
75 rows in set (0.001 sec)

MariaDB [forum]> quit
Bye

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: PHP и WEB-хостинг

Непрочитанное сообщение Olej » 25 дек 2019, 20:43

Olej писал(а):
25 дек 2019, 02:16
1. Смотрим как заливалась из бэкапов БД (или создавалась новая), например:
Как по ходу эксплуатации по-новой создавать (в консоли) бэкапы форума phpBB:

- бэкап файлов корневого каталога форума - это достаточно просто и понятно: архивирование и сжатие корневого каталога форма, вот этого:

Код: Выделить всё

root@277938:~# du -hs /var/www/linux-ru.ru/
1.2G	/var/www/linux-ru.ru/
- бэкап БД mysql - здесь сложнее, здесь простой логикой не прокатит ... здесь нужна команда, а для неё параметры, например так:

Код: Выделить всё

root@277938:/var/www/linux-ru.ru# cat /var/www/linux-ru.ru/config.php 
<?php
// phpBB 3.0.x auto-generated configuration file
// Do not change anything in this file!

$dbms = 'mysqli';
$dbhost = 'localhost';
$dbport = '';
$dbname = 'forum_title';
$dbuser = 'forum_user';
$dbpasswd = 'xxxxxxxx';
$table_prefix = 'rlf1_';
$acm_type = 'file';
$load_extensions = '';

@define('PHPBB_INSTALLED', true);
@define('DEBUG', true);
@define('DEBUG_EXTRA', true);
?>
Теперь с этими параметрами можем бэкапить:

Код: Выделить всё

root@277938:~# mysqldump -u forum_user -p xxxxxxxx  forum_title > new_backup.sql

root@277938:~# ls -l new_backup.sql 
-rw-r--r-- 1 root root 48685683 Dec 25 20:29 new_backup.sql

root@277938:~# file new_backup.sql 
new_backup.sql: UTF-8 Unicode text, with very long lines

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей