Никакое задание и никакой клиент не стоят рабочего PHP 4, если они не платят Вам огромную сумму денег, поскольку рабочий PHP 4 налагает большую угрозу безопасности, и в этом случае Вы не будете спрашивать здесь.
Изолированная установка PHP 4 так, как Вы можете и помещать его в отдельный сегмент сети предпочтительно позади некоторого веб-прокси, где можно санировать запросы, прибывающие из сети для общие уязвимости (nginx, лак, и т.д.).
необходимо также удостовериться, что выполнение код PHP имеет как можно меньше полномочий. Имейте другого пользователя для владельца .php файлов и различных интернет-пользователей и сожмите полномочия записи как можно больше, удостоверившись, что файлы в записываемых местоположениях не могут быть выполнены (или оболочкой или с PHP).
машина рабочий PHP 4 успешно подвергнется нападению, или это уже было, если это не firewalled от широкой публики.
мне жаль говорить, но никто в их правильном уме не предоставит PHP 4 пакета, поскольку PHP 4 был EOLed 7 лет 8 месяцев назад: https://secure.php.net/eol.php, таким образом, я - испуганное выполнение из источников, является Вашей единственной опцией.
Поэтому, если Вы спрашиваете, что можно сделать, я определенно рекомендовал бы Вам находящий лучшее задание, где они не вынудят Вас, запускает устаревшее программное обеспечение :).
Я ценю весь вклад в этот вопрос, но так как никто не придумал простого решения, которое соответствовало бы нашим обстоятельствам, я решил решить проблему самостоятельно.
Я создал инструмент (специально для Ubuntu), который я назвал apt-spy2
.
Основная цель этого инструмента - быстро найти работающее зеркало . Работа определяется тем, что зеркальный сервер доступен и (мы надеемся :) обновлены.
Я не делаю предположений о том, является ли выбранный сервер обязательно самым близким и самым быстрым. Я не делаю пинг или трюки с GEO DNS - но пока это работает, когда что-то ломается.
Как это работает - в двух словах:
/etc/apt/sources.list
. Обратите внимание: Это предполагает, что люди играют красиво и ставят дополнительные зеркала (например, сторонние репозитории в /etc/apt/sources.list.d
. Но я думаю, это означает, что есть место для улучшений.
] Вы можете получить этот инструмент следующим образом:
$ [sudo] gem install apt-spy2
Cli поставляется с list
, check
, fix
и help
(с расширенной информацией о том, как использовать его).
Я пытался документировать как можно больше в проекте README .
Текущая версия очень консервативна 0.5.0
.
В Debian 6.0.4 была такая команда:
apt-spy
blockquote>Это помогло автоматически найти следующий ближайший доступный сервер и сгенерировать a new sources.list
В Ubuntu эта команда, кажется, не существует?
Она все еще существует в Debian 7.0 wheezy:
https://launchpad.net / debian / wheezy / + source / apt-spy / + copyright
Вы можете скачать свой пакет * .deb здесь:
http: //packages.debian. org / sid / apt-spy
... все еще ищет источники ...
Вам, очевидно, нужна Debian-7.0-Installation для получения исходного кода после редактирования списка источников с записью:
deb-src http://http.debian.net / debian wheezy main
blockquote>Затем, после обновления sudo apt-get, вы просто всасываете код:
sudo apt-get source apt-spy [ 1115] blockquote>
Я написал скрипт Python под названием apt-select , который будет служить альтернативой CLI методу GUI.
Сценарий запрашивает каждое зеркало через TCP, печатает на стандартные зеркала с наименьшей задержкой и генерирует новый файл sources.list
. Есть также несколько опций, которые позволяют вам выбирать из списка ранжированных зеркал и получать информацию, например, когда зеркало было обновлено в последний раз и его пропускную способность.
Вы можете попробовать настроить свое собственное зеркало Ubuntu. Таким образом, обновления будут локальными.
apt-mirror требуется высокоскоростное подключение к Интернету и много дискового пространства
Настроить собственное зеркало Ubuntu очень просто, используя apt-mirror.
1) Зайдите в репозиторий apt-mirror. Создайте резервную копию файла sources.list следующим образом:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
2) Отредактируйте файл sources.list следующим образом:
gksudo gedit /etc/apt/sources.list
3) И вставьте следующее в новую строку:
deb http://apt-mirror.sourceforge.net/ apt-mirror
4) Давайте обновим индекс пакета
sudo apt-get update
5) И установим apt-mirror
sudo apt-get install apt-mirror
6) Apt-mirror теперь настроен Итак, давайте расскажем, какие серверы для зеркалирования:
sudo cp /etc/apt/mirror.list /etc/apt/mirror.list.old
gksudo gedit /etc/apt/mirror.list
Конфигурация по умолчанию поместит ваши скачанные файлы в папку / var / spool / apt-mirror. Вот как выглядит файл mirror.list:
############# config ##################
#
set base_path /media/silo/repo
#
# if you change the base path you must create the directories below with write privlages
#
# set mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch <running host architecture>
set nthreads 20
set tilde 0
#
############# end config ##############
deb http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu lucid -updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu lucid -backports main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu lucid -security main restricted universe multiverse
clean http://archive.ubuntu.com/ubuntu
он отражает только двоичные пакеты, но если вы хотите исходные пакеты, вы должны вставить соответствующие строки. Они обычно принимают вид:
deb-src http://gh.archive.ubuntu.com/ubuntu/ lucid main restricted
7) Теперь запустите apt-mirror
. Это займет много времени. Не волнуйтесь, если вы не можете загрузить все файлы за один раз, apt-mirror
может возобновить загрузку (убить его комбинацией клавиш Ctrl kbd> + C kbd> и перезапустить его когда хочешь продолжить). Хорошо, запустите apt-mirror примерно так:
sudo apt-mirror /etc/apt/mirror.list
Также посмотрите Как создать локальное зеркало Debian / Ubuntu с помощью apt-mirror
Source : Используйте Apt-mirror для создания собственного зеркала Ubuntu sup>
mirrors.ubuntu.com
должен работать.:)
– Thomas Kekeisen
18.05.2020, 05:36
mirrors.ubuntu.com
никогда не будет решать mirrors.ubuntu.com
, но сервер, который является самым близким Вам. Проблема состоит в том, что сервер, который это разрешает, является ненадежным. Ваша лучшая игра использует надежный сервер из официального списка.
– bohoej
18.05.2020, 05:36
apt-mirror
доступно в репозиториях человечности.
– Gloson
18.05.2020, 05:37
Лично я считаю, что лучший способ выбрать лучшие зеркала репозиториев Ubuntu - это использовать метод GUI:
Теперь, чтобы улучшить ситуацию, описанную в вопрос, вам нужно как-то установить некоторые правила. Эти правила должны действовать по mirrors.ubuntu.com
. Я могу предложить следующие правила:
netselect
, apt-spy
или apt-fast
Далее, чтобы увидеть, как вы можете обойти это, я могу дать вам метод, описанный шаг за шагом с тремя примерами скриптов bash. Первый сценарий использует зеркала из страны, в которой вы находитесь в данный момент, вместо mirrors.ubuntu.com/mirrors.txt
(для каждой страны есть текстовый файл с ассоциированными зеркалами; см. http://mirrors.ubuntu.com/ ) :
mkdir -p bin
- эта команда создаст каталог bin
в вашей папке home
, если у вас его еще нет. [1142 ] gedit ~/bin/change_sources.sh
- это создаст новый файл change_sources.sh
в gedit. #!/bin/bash
export DISPLAY=:0
if ! [ "`ping -c 1 google.com`" ]; then
notify-send "No internet connection"
exit 0
fi
ip=$(curl -s 'http://ipecho.net/plain')
country=$(curl -s 'http://geoiplookup.net/geoapi.php?output=countrycode' \
| awk '{ print toupper($2) }')
release=$(lsb_release -sc)
file="/etc/apt/sources.list"
old_file="/etc/apt/sources.list.old"
line=$(head -n 1 $file)
new_line="## Ubuntu Repos for $ip"
if [ "$line" == "$new_line" ] ; then
exit 0
fi
cp -f $file $old_file
printf "$new_line
deb mirror://mirrors.ubuntu.com/$country.txt $release main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/$country.txt $release-updates main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/$country.txt $release-backports main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/$country.txt $release-security main restricted universe multiverse
" > $file
notify-send "$file has been changed" "The old file has been put in $old_file"
exit 0
или что-то похожее на то, что можно найти на http: // repogen .simplylinux.ch / :
#!/bin/bash
export DISPLAY=:0
if ! [ "`ping -c 1 google.com`" ]; then
notify-send "No internet connection"
exit 0
fi
ip=$(curl -s 'http://ipecho.net/plain')
country=$(curl -s 'http://geoiplookup.net/geoapi.php?output=countrycode' \
| awk '{ print tolower($2) }')
release=$(lsb_release -sc)
file="/etc/apt/sources.list"
old_file="/etc/apt/sources.list.old"
line=$(head -n 1 $file)
new_line="## Ubuntu Main Repos for $ip"
if [ "$line" == "$new_line" ] ; then
exit 0
fi
cp -f $file $old_file
printf "$new_line
deb http://$country.archive.ubuntu.com/ubuntu/ $release main restricted universe multiverse
deb-src http://$country.archive.ubuntu.com/ubuntu/ $release main restricted universe multiverse
## Ubuntu Update Repos for $ip
deb http://$country.archive.ubuntu.com/ubuntu/ $release-security main restricted universe multiverse
deb http://$country.archive.ubuntu.com/ubuntu/ $release-updates main restricted universe multiverse
deb-src http://$country.archive.ubuntu.com/ubuntu/ $release-security main restricted universe multiverse
deb-src http://$country.archive.ubuntu.com/ubuntu/ $release-updates main restricted universe multiverse
" > $file
notify-send "$file has been changed" "The old file has been put in $old_file"
exit 0
или сценарий, использующий netselect
(скачать из здесь , установить инструкции здесь ) как ] izx объяснил очень хорошо в этот ответ :
#!/bin/bash
export DISPLAY=:0
if ! [ "`ping -c 1 google.com`" ]; then
notify-send "No internet connection"
exit 0
fi
url=$(netselect \
`wget -q -O- https://launchpad.net/ubuntu/+archivemirrors \
| grep -P -B8 "statusUP|statusSIX" \
| grep -o -P "(f|ht)tp.*\"" \
| tr '"\n' ' '` \
| awk '{print $2}')
release=$(lsb_release -sc)
if [ "$url" == "" ] ; then
exit 0
fi
file="/etc/apt/sources.list"
old_file="/etc/apt/sources.list.old"
cp -f $file $old_file
printf "## Ubuntu Best Repos
deb http://extras.ubuntu.com/ubuntu $release main
deb-src http://extras.ubuntu.com/ubuntu $release main
deb $url $release main universe restricted multiverse
deb http://security.ubuntu.com/ubuntu/ $release-security restricted universe main multiverse
deb $url $release-updates restricted universe main multiverse
" > $file
notify-send "$file has been changed" "The old file has been put in $old_file"
exit 0
chmod +x ~/bin/change_sources.sh
- предоставить доступ для выполнения скрипта. ~/bin/change_sources.sh
. Это даст вам ошибку, потому что вы не имеете права редактировать /etc/apt/sources.list
. Итак, используйте sudo ~/bin/change_sources.sh
sudo crontab -e
и добавьте следующую строку: @hourly /home/$USER/bin/change_sources.sh
#change $USER with your user name
sudo crontab -l
. ПРИМЕЧАНИЕ. Чтобы отменить изменения, внесенные этим сценарием, удалите задание cron и следуйте указаниям из рисунка выше или используйте следующую команду в терминале:
blockquote> [ 1158] С этого момента файл будет динамически изменяться после обнаружения изменения IP-адреса.cp -f /etc/apt/sources.list.bak /etc/apt/sources.list
Возможно, это не лучшее решение, но, на мой взгляд, хорошее решение может быть дано таким образом, как в приведенных выше сценариях .
Возможно, вы не используете решение, которое вам нравится, но настройка локального кэша для файлов .deb должна быть идеальной, когда вы загружаете несколько МБ пакетов (в основном, я уверен, что они одинаковы) и поскольку вы загружаете из того же пакета. сервер, вы можете пожертвовать ПК, чтобы сделать кеш и сделать сервер менее загруженным.
Вы должны иметь возможность установить apt-cacher
на машине, на которой много свободного места на жестком диске (она вам понадобится). Вы можете настроить это, используя Руководство по серверу Apt-cacher , но давайте сделаем быстрое резюме.
Установить apt-cacher
sudo apt-get установить apt-cacher apache2
/etc/default/apt-cacher
и установить значение autostart
в 1 поэтому ваш кеш запускается при включении машины. sudo /etc/init.d/apache2 restart
http://ip-of.your.cache:3142/apt-cacher
. /etc/apt-cacher/apt-cacher.conf
и найдите строку allowed_hosts
. Вы можете установить подсети, такие как 192.168.0.0/24
или просто *
для всех хостов apt-spy
для этого (эта команда может занять несколько часов, так как она также проверяет скорость каждого сервера). В ваших клиентах у вас есть две опции:
sources.list
следующим образом: deb http: // ip- of.your.cache: 3142 / the.server.you.like / ubuntu / lucid главная ограниченная вселенная мультивселенная
Измените ip-of.your.cache
для ip вашего кеша и the.server.you.like
для хоста имя сервера, который вы будете использовать. Вы можете использовать несколько строк.
/etc/apt/apt.conf.d/01proxy
и добавьте строку: Acquire :: http :: Proxy " http: // ip-of .your.cache: 3142 ";