Что лучшее место должно поместить php файлы выше корневого каталога сервера?

Я должен все же встретить файловую систему общего назначения на Linux, который пожертвовал бы, переписывают пропускную способность, имеющую непрерывные файлы. Таким образом, каждая файловая система фрагментируют, если части записаны в непоследовательном порядке, особенно с редкими файлами.

Простой способ: Петляйте через клиент потока - предпочтительно что-то, что не предварительно выделяет файл. BitTornado или rtorrent соответствуют этому счету. (У первого есть настраиваемые режимы выделения),

Твердый путь: Разделите исходный файл на части некоторого КБ в размере, переставьте их. Откройте целевой файл. Для каждой части ищите на ее правильное положение и запишите это.

Вот сценарий Perl, который делает это:

#!/usr/bin/perl

use List::Util qw/shuffle/;
use IO::Handle;

use constant BLOCK_SIZE => 4096;

my ($src, $dst) = @ARGV;

my $size = (stat($src))[7];
my @blocks = shuffle(0 .. ($size / BLOCK_SIZE));

my ($srcfh, $dstfh);
open $srcfh, "<", $src or die "cannot open $src: $!";
open $dstfh, ">", $dst or die "cannot open $dst: $!";
truncate $dstfh, $size; # undefined behaviour

my $buf;
for my $blockno (@blocks) {
  seek $_, $blockno * BLOCK_SIZE, 0 for ($srcfh, $dstfh);
  read $srcfh, $buf, BLOCK_SIZE;
  print $dstfh $buf;
  $dstfh->flush;
}

close $dstfh;
close $srcfh;

Можно проверить на фрагментацию с filefrag команда, содержавшаяся в e2fsprogs пакете.

Вот пример того, что делает поток:

# ls -sh amd64memstick-5.1.2.fs.gz
239M amd64memstick-5.1.2.fs.gz
# filefrag amd64memstick-5.1.2.fs.gz
amd64memstick-5.1.2.fs.gz: 585 extents found

Вот то, что я получил со своим сценарием (на ext3):

$ ls -sh source.tar
42M source.tar
$ perl fragment.pl source.tar fragmented.tar
$ md5sum fragmented.tar source.tar
f77fdd7ab526ede434f416f9787fa9b3  fragmented.tar
f77fdd7ab526ede434f416f9787fa9b3  source.tar
# filefrag fragmented.tar
fragmented.tar: 395 extents found

Править: Неважно это, кажется, не работает что много позже всех, за исключением великоватых файлов (файл на 1,5 ГБ фрагменты наверняка.)

Система VM, вероятно, кэширует и откладывает/переупорядочивает слишком маленькие записи. Поэтому клиентам потока удается фрагментировать (так как они обычно не загружают в> 10MB/s), но мой сценарий не делает. Я думаю, что это можно настроить путем понижения vm порогов. Посмотрите /proc/sys/vm/dirty_*

3
28.06.2016, 02:30
2 ответа

Я использую структуру как:

/var/www/sites/
/var/www/sites/project.com/
/var/www/sites/project.com/includes/
/var/www/sites/project.com/library/
/var/www/sites/project.com/www/
/var/www/sites/project.com/www/index.php

Где /var/www/sites/project.com/www/ установлен как корень документа виртуального хоста, и я использую index.php включать файлы от library/ & includes/

Таким образом, я организовал свой проект иметь объем PHP за пределами корня документа апача - поскольку Вы надеетесь делать. Так, чтобы сервер не 'блеял' содержание Сценариев PHP и т.д.

Однако - если это - управляемый хостинг, Вы оказываетесь перед необходимостью играть в поле, оттянутом хостом.

Я сказал бы на том же уровне как public_html/ хорошее место состоит в том, чтобы поместить Ваши каталоги с файлами PHP. public_html/ об эквиваленте /var/www/sites/project.com/www/ в моей структуре каталогов в качестве примера.

Относительно природы php/ каталог, возможно, только Ваш хост знает. Если бы это пусто, я сказал бы, что они поощряют Вас использовать его.

5
27.01.2020, 21:17

На арендованных серверах путь обычно похож на/home/username/public_html, который является корнем виртуальной веб-конфигурации хоста, на которую указывают в в Apache.

Если хостинговая компания поместила каталог PHP там, разногласия, она используется для пользователя определенные параметры конфигурации, такие как php.ini, но стоит согласовать с ними, если это - ваше беспокойство.

Во-вторых, это зависит, если следование коду PHP является доступной сетью или нет. Если бы это, я, вероятно, оставил бы его в/home/username/public_html, если не я создал бы новый каталог под/home/username (/home/username/newdirectory). Идеально для безопасности, Вы могли изменить владельца папки и полномочий, но на общих веб-серверах обычно Вам не дают ту гибкость.

0
27.01.2020, 21:17

Теги

Похожие вопросы