вложения (файлы) к сообщениям

phpBB но не только...

Модераторы: Olej, adminn

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

Re: вложения (файлы) к сообщениям

Непрочитанное сообщение Olej » 26 янв 2020, 13:00

Olej писал(а):
25 янв 2020, 20:35
2. какой максимальный допустимый размер файлов вложений? зависит он от типа файла?
Тут как-раз вовремя подсказали:

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

olej@277938:/etc/php/7.2/apache2$ php --version
PHP 7.2.26-1+0~20191218.33+debian10~1.gbpb5a34b (cli) (built: Dec 18 2019 15:01:47) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.26-1+0~20191218.33+debian10~1.gbpb5a34b, Copyright (c) 1999-2018, by Zend Technologies

olej@277938:/etc/php/7.2/apache2$ pwd
/etc/php/7.2/apache2
Вот оно:

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

olej@277938:/etc/php/7.2/apache2$ cat php.ini | grep post_max_size
post_max_size = 8M

olej@277938:/etc/php/7.2/apache2$ cat php.ini | grep upload_max_filesize
upload_max_filesize = 2M

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

Re: вложения (файлы) к сообщениям

Непрочитанное сообщение Olej » 26 янв 2020, 13:03

Olej писал(а):
26 янв 2020, 13:00
Вот оно:
Здесь же объяснение факта:
Olej писал(а):
25 янв 2020, 22:47
P.S. Фиксируем тот факт, что размер многих файлов вложений, помещённых когда-то в форум, значительно превышают (106Mb) то ограничение (2.5Mb), которое форум сегодня (phpBB 3.2.8) накладывает на файлы,

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

olej@277938:/etc/php$ ls /etc/php
5.6  7.0  7.1  7.2  7.3  7.4
Т.е. для каждой версии именно PHP и свои конфигурационные файлы + и свои ограничения!

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

Re: вложения (файлы) к сообщениям

Непрочитанное сообщение Olej » 26 янв 2020, 13:09

Olej писал(а):
26 янв 2020, 13:03
Т.е. для каждой версии именно PHP и свои конфигурационные файлы + и свои ограничения!
Читаем php.ini :
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 8M
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 2M
Там же рядом читаем ещё одно ограничение, перекрывающее ограничения phpBB:
; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20

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

Re: вложения (файлы) к сообщениям

Непрочитанное сообщение Olej » 26 янв 2020, 13:17

Olej писал(а):
26 янв 2020, 13:09
Читаем php.ini :
Увеличил ограничение на размер файлов вложений:

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

olej@277938:/etc/php/7.2/apache2$ cat php.ini | grep upload_max_filesize
; upload_max_filesize = 2M
upload_max_filesize = 8M
Проверяю на фото Сад Скульптур...
... и снова получаю ошибку!
И только после перезагрузки сервера Apache:

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

root@277938:/etc/php/7.2/apache2# systemctl restart apache2
... теперь большие вложения загружаются ОК.
Вопрос в п.2 - решён.

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

Re: вложения (файлы) к сообщениям

Непрочитанное сообщение Olej » 26 янв 2020, 19:33

Olej писал(а):
25 янв 2020, 22:58
Все поля (они нам все не нужны!) посмотрим 1 раз для 1-й записи:
Возвращаемся к БД и команд манипулирования с БД.
Сверх того, что уже показано (где найти в phpBB регистрационные параметры БД, как выбрать нужную БД и таблицу в ней) все "необходимые и достаточные" находим, справку по ним, здесь: MySQL/MariaDB: наиболее используемые команды, примеры
Автор: setevoy | 07/15/2012
Сверх этого ничего более для наших целей и не надо... ;-)

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

Re: вложения (файлы) к сообщениям

Непрочитанное сообщение Olej » 26 янв 2020, 19:56

Olej писал(а):
26 янв 2020, 19:33
Возвращаемся к БД и команд манипулирования с БД.
Продолжаю...

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

olej@277938:~$ sudo mysql -u xxxxxxxx --password=zzzzzzzz
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 29591
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]> DESCRIBE rlf1_attachments;
+-------------------+-----------------------+------+-----+---------+----------------+
| Field             | Type                  | Null | Key | Default | Extra          |
+-------------------+-----------------------+------+-----+---------+----------------+
| attach_id         | int(10) unsigned      | NO   | PRI | NULL    | auto_increment |
| post_msg_id       | int(10) unsigned      | NO   | MUL | 0       |                |
| topic_id          | int(10) unsigned      | NO   | MUL | 0       |                |
| in_message        | tinyint(1) unsigned   | NO   |     | 0       |                |
| poster_id         | int(10) unsigned      | NO   | MUL | 0       |                |
| is_orphan         | tinyint(1) unsigned   | NO   | MUL | 1       |                |
| physical_filename | varchar(255)          | NO   |     |         |                |
| real_filename     | varchar(255)          | NO   |     |         |                |
| download_count    | mediumint(8) unsigned | NO   |     | 0       |                |
| attach_comment    | text                  | NO   |     | NULL    |                |
| extension         | varchar(100)          | NO   |     |         |                |
| mimetype          | varchar(100)          | NO   |     |         |                |
| filesize          | int(20) unsigned      | NO   |     | 0       |                |
| filetime          | int(11) unsigned      | NO   | MUL | 0       |                |
| thumbnail         | tinyint(1) unsigned   | NO   |     | 0       |                |
+-------------------+-----------------------+------+-----+---------+----------------+
15 rows in set (0.006 sec)

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

MariaDB [forum]> SELECT post_msg_id,topic_id,physical_filename,real_filename,filesize FROM rlf1_attachments WHERE post_msg_id='0' AND topic_id='0'; 
+-------------+----------+---------------------------------------+--------------------------------------------------------+----------+
| post_msg_id | topic_id | physical_filename                     | real_filename                                          | filesize |
+-------------+----------+---------------------------------------+--------------------------------------------------------+----------+
|           0 |        0 | 4065_b0f8f879b897ef63fe14afd5730d9982 | Снимок экрана от 2019-10-06 01-07-43.png               |   102805 |
|           0 |        0 | 4065_ce7212619c7e4cc4518ee4d96b52869e | Снимок экрана от 2019-10-07 14-58-17.png               |   235976 |
|           0 |        0 | 4065_71530345cadb949a00311ffbd068af0d | t3.png                                                 |    59652 |
|           0 |        0 | 4065_9c16459f5429b331dad6fb2197e7ada6 | Снимок экрана от 2019-10-11 23-32-00.png               |    77270 |
|           0 |        0 | 4065_36fe2ea08526d1271be6179dca677239 | Снимок экрана от 2019-10-14 19-23-10.png               |   135208 |
|           0 |        0 | 4065_be0f058ea632b55d0bf11e916fe65658 | Снимок экрана от 2019-10-29 22-16-36.png               |   186669 |
|           0 |        0 | 4065_14662370478f82dff9985e124ef328ae | Снимок экрана от 2019-10-29 22-16-36.png               |   186669 |
|           0 |        0 | 4065_f0626c323a33d78435a3d81187a6ca43 | ua.py                                                  |      162 |
|           0 |        0 | 4065_8131c27fe8950c2704c15c51571e4343 | c1.jpg                                                 |  2441344 |
|           0 |        0 | 4065_7c8182e88b1437a5ae36c9611a95c5d0 | loc4.png                                               |   150425 |
|           0 |        0 | 4065_1da9e38d0f8becb2e214fa3c123d2aa5 | loc5.png                                               |   142609 |
|           0 |        0 | 4065_b95a91a99eacda48670be225f7142745 | loc6.png                                               |   176525 |
+-------------+----------+---------------------------------------+--------------------------------------------------------+----------+
12 rows in set (0.003 sec)
Вот это те, в точности, 12 вложений, которые phpBB считает потерянными.

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

MariaDB [forum]> SELECT COUNT(*) FROM rlf1_attachments WHERE post_msg_id='0' AND topic_id='0'; 
+----------+
| COUNT(*) |
+----------+
|       12 |
+----------+
1 row in set (0.002 sec)
Удалить потерянные сообщения я могу из админстраницы phpBB ... но, опасаюсь из предыдущих сообщений, что соответствующий файл physical_filename так и останется висеть в каталоге files форума. :-(

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

Re: вложения (файлы) к сообщениям

Непрочитанное сообщение Olej » 26 янв 2020, 20:03

Olej писал(а):
26 янв 2020, 19:56
Удалить потерянные сообщения я могу из админстраницы phpBB ... но, опасаюсь из предыдущих сообщений, что соответствующий файл physical_filename так и останется висеть в каталоге files форума.
Возьму за пробный самый большой из файлов:
Olej писал(а):
26 янв 2020, 19:56

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

|           0 |        0 | 4065_8131c27fe8950c2704c15c51571e4343 | c1.jpg                                                 |  2441344
f3.png

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

Re: вложения (файлы) к сообщениям

Непрочитанное сообщение Olej » 26 янв 2020, 20:09

Olej писал(а):
26 янв 2020, 20:03
Возьму за пробный самый большой из файлов:

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

MariaDB [forum]> SELECT COUNT(*) FROM rlf1_attachments WHERE post_msg_id='0' AND topic_id='0'; 
+----------+
| COUNT(*) |
+----------+
|       11 |
+----------+
1 row in set (0.002 sec)

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

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

root@277938:/var/www/linux-ru.ru/files# ls -l 4065_8131c27fe8950c2704c15c51571e4343
ls: невозможно получить доступ к '4065_8131c27fe8950c2704c15c51571e4343': Нет такого файла или каталога
Ан нет!
Всё благополучно удаляется, никакие остаточные файлы не остаются. Это при том (для перестраховки), что его ближайшие соседи благополучно присутствуют:

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

root@277938:/var/www/linux-ru.ru/files# ls -l 4065_f0626c323a33d78435a3d81187a6ca43
-rw-r--r-- 1 www-data www-data 162 дек 22 01:15 4065_f0626c323a33d78435a3d81187a6ca43

root@277938:/var/www/linux-ru.ru/files# ls -l 4065_7c8182e88b1437a5ae36c9611a95c5d0
-rw-rw-rw- 1 www-data www-data 150425 янв 15 18:25 4065_7c8182e88b1437a5ae36c9611a95c5d0

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

Re: вложения (файлы) к сообщениям

Непрочитанное сообщение Olej » 26 янв 2020, 20:12

Olej писал(а):
26 янв 2020, 20:09
Ан нет!
Всё благополучно удаляется, никакие остаточные файлы не остаются. Это при том (для перестраховки), что его ближайшие соседи благополучно присутствуют:
Тогда я могу все потерянные вложения без проблем удалить через админстраницу phpBB.
И в итоге:

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

MariaDB [forum]> SELECT COUNT(*) FROM rlf1_attachments WHERE post_msg_id='0' AND topic_id='0'; 
+----------+
| COUNT(*) |
+----------+
|        0 |
+----------+
1 row in set (0.001 sec)
Вложения
f4.png

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

Re: вложения (файлы) к сообщениям

Непрочитанное сообщение Olej » 27 янв 2020, 01:04

Следующая задача: установть однозначное соотношение вложения с URL сообщения к которому оно прикреплено.
Цель: удалить самые (излишне) большие вложения из числа самых старых, уже не актуальных.

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

root@277938:/var/www/linux-ru.ru/files# ls -lS | head -n5
итого 1149468
-rw-r--r-- 1 www-data www-data 106286599 дек 22 01:20 11018_a5775236643fc95166f4fd9e3e8005e1
-rw-r--r-- 1 www-data www-data  66433524 дек 22 01:16 files.zip
-rw-r--r-- 1 www-data www-data  47272089 дек 22 01:19 4065_7da5d7a86f5943115aa0197608b3ab6b
-rw-r--r-- 1 www-data www-data  14426203 дек 22 01:25 4065_442d457b2de43d143da50ab79cab2074
Самое 1-е их этих вложений:

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

MariaDB [forum]> SELECT post_msg_id,topic_id,physical_filename,real_filename,filesize FROM rlf1_attachments WHERE physical_filename='11018_a5775236643fc95166f4fd9e3e8005e1';
+-------------+----------+----------------------------------------+------------------+-----------+
| post_msg_id | topic_id | physical_filename                      | real_filename    | filesize  |
+-------------+----------+----------------------------------------+------------------+-----------+
|       17985 |     1311 | 11018_a5775236643fc95166f4fd9e3e8005e1 | gcc-4.7.1.tar.gz | 106286599 |
+-------------+----------+----------------------------------------+------------------+-----------+
1 row in set (0.010 sec)
То сообщение, к которому прикреплено это вложение находим по URL записанному так:

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

http://linux-ru.ru/viewtopic.php?t=1311&p=17985#p17985
(почему именно так - не знаю и не хочу разбираться ... но именно так!)

Ответить

Вернуться в «Управление WEB ресурсами»

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

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