Был локальный web-сервер для библиотекарей (Ubuntu 12). Сейчас накрылся.
Сайт, написанный разработчиками, может работать только под PHP 4.3.11 не выше (и БД Firebird 1.5)
Я пытался ставить PHP4.3.11 на Ubuntu sever 12, 16, 18 везде были разные ошибки.
Сейчас пытаюсь установить на Ubuntu 12.04.
Устанавливаю по следующему алгоритму:wget https://museum.php.net/php4/php-4.3.11.tar.gz
tar zxf php-4.3.11.tar.gz
cd php-4.3.11/
./configure
make
sudo make installВыдает следующее:
bib1io@bib1io-server:~$ cd php-4.3.ll
bib1io@bib1io-server:~/php-4.3.11$ ./configure
loading cache ./config.cache
checking host system type... i686-pc-linux-gnu
checking for gcc... gcc
checking whether the C compiler (gcc ) works... yes
checking whether the C compiler (gcc ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking whether gcc and cc understand -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for AIX... no
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking for re2c... exit 0;
checking whether ln -s works... yes
checking for mawk... mawk
checking for bison... no
checking for byacc... no
configure: warning: You will need bison if you want to regenerate the FHP parsers.
checking for flex... lex
checking for yywrap in -ll... no no
checking lex output file root... ./configure: 2422: ./configure: lex: not found
configure: error: cannot find output from lex; giuing up
bib1io@bib1io-server:~/php-4.3.11$ make
checking whether gcc Accepts ~g... yes
checking whether gcc end cc understand -c and -o together... yes
checking how to run the C preprocessor... gcc -E
make: *** No targets specified and no makefile found. Stop.
bib1io@bib1io-server:~/php-4.3.11$ sudo make install
[sudol password for biblio:
make: *** No rule to make target 'install'. Stop.
bib1io@bib1io-server:~/php-4.3.11$Тут на форуме нашел похожую проблему с "./configure: lex: not found", которую решили так:
/usr/bin/lex
#!/bin/sh
exec /usr/bin/flex -l "$@"Но у меня нет таких файлов.
>[оверквотинг удален]
> bib1io@bib1io-server:~/php-4.3.11$ sudo make install
> [sudol password for biblio:
> make: *** No rule to make target 'install'. Stop.
> bib1io@bib1io-server:~/php-4.3.11$
> Тут на форуме нашел похожую проблему с "./configure: lex: not found", которую
> решили так:
> /usr/bin/lex
> #!/bin/sh
> exec /usr/bin/flex -l "$@"
> Но у меня нет таких файлов.Не получится, уж больно софт очень древний!
Некоторых библиотек уже нет!
Посмотрите в сторону докера, может есть уже готовый образ с древним софтом.
Получилось установить php 4.3.11. Установил следующие пакеты, потом продолжил установку PHP:sudo apt-get install biso flex
Но при загрузке локального сайта скачивается файл index.php и код
<?php phpinfo(); ?>
не выполняется.
Всё собирается
sudo apt install gcc make flex bison
./configure --prefix=/opt/php4
make
> Всё собирается
> sudo apt install gcc make flex bison
> ./configure --prefix=/opt/php4
> makeсделал так, прошло все успешно, перегрузил сервер, при загрузке локального сайта предлагает сохранить index.php
>> Всё собирается
>> sudo apt install gcc make flex bison
>> ./configure --prefix=/opt/php4
>> make
> сделал так, прошло все успешно, перегрузил сервер, при загрузке локального сайта предлагает
> сохранить index.phpВ httpd.conf надо же
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Я заново переустановил сервер Ubuntu 12.Sudo apt-get install make bison flex
wget https://museum.php.net/php4/php-4.3.11.tar.gz
tar zxf php-4.3.11.tar.gz
cd php-4.3.11/
./configure –prefix=/opt/php4
make
sudo make installвроде прошло все успешно, я написал
biblio@biblio-server:~/php-4.3.11$ php -v
Программа 'php' на ранный момент не установлена. Вы можете установите ее,выполнив:
sudo apt-get install php5-cliКак так php не установлен?
>[оверквотинг удален]
> tar zxf php-4.3.11.tar.gz
> cd php-4.3.11/
> ./configure –prefix=/opt/php4
> make
> sudo make install
> вроде прошло все успешно, я написал
> biblio@biblio-server:~/php-4.3.11$ php -v
> Программа 'php' на ранный момент не установлена. Вы можете установите ее,выполнив:
> sudo apt-get install php5-cli
> Как так php не установленСистема ничего не знает о том, что вы ей из исходников понаставили. Поэтому и хочет из пакетов установить php5-cli
В /opt/php4 ищите ваш php
>[оверквотинг удален]
>> make
>> sudo make install
>> вроде прошло все успешно, я написал
>> biblio@biblio-server:~/php-4.3.11$ php -v
>> Программа 'php' на ранный момент не установлена. Вы можете установите ее,выполнив:
>> sudo apt-get install php5-cli
>> Как так php не установлен
> Система ничего не знает о том, что вы ей из исходников понаставили.
> Поэтому и хочет из пакетов установить php5-cli
> В /opt/php4 ищите ваш phpперешел в каталог /opt/php4/bin
ввел: php -v
а мне опять выдало:
Программа 'php' на ранный момент не установлена. Вы можете установите ее,выполнив:
sudo apt-get install php5-cli
>[оверквотинг удален]
>>> sudo apt-get install php5-cli
>>> Как так php не установлен
>> Система ничего не знает о том, что вы ей из исходников понаставили.
>> Поэтому и хочет из пакетов установить php5-cli
>> В /opt/php4 ищите ваш php
> перешел в каталог /opt/php4/bin
> ввел: php -v
> а мне опять выдало:
> Программа 'php' на ранный момент не установлена. Вы можете установите ее,выполнив:
> sudo apt-get install php5-cliвыполните /opt/php4/bin/php -v
Эта команда помогла:
/opt/php4/bin/php -vТеперь другое, прописал в /etc/apache2/httpd.conf :
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phpsсделал файл index.php:
<?php phpinfo(); ?>Загружаю страницу:
http://192.168.1.20/index.php
а мне выводит текст на странице:
<?php phpinfo(); ?>
>[оверквотинг удален]
> /opt/php4/bin/php -v
> Теперь другое, прописал в /etc/apache2/httpd.conf :
> AddType application/x-httpd-php .php
> AddType application/x-httpd-php-source .phps
> сделал файл index.php:
> <?php phpinfo(); ?>
> Загружаю страницу:
> http://192.168.1.20/index.php
> а мне выводит текст на странице:
> <?php phpinfo(); ?>mod_php4 собрали? Его же тоже подключить надо
> mod_php4 собрали? Его же тоже подключить надоНет. А как это делается?
>> mod_php4 собрали? Его же тоже подключить надо
> Нет. А как это делается?Можно с libphp - libphp4.so нужен. Посмотрите в /opt/php/libexec - нет ли его там.
Пересобрать php со сборкой модуля для Apache
Найдите, где у вас APache eXStension tool - apxs находится
#which apxs
или
#which apxs2
Допустим, обнаружился в /usr/local/sbin/apxs
пересобираете PHP
cd php-4.3.11/
./configure –-prefix=/opt/php4 --with-apxs2=/usr/local/sbin/apxsВ результате должен модуль появиться в /opt/php/
Ну и подключаете в httpd.conf
LoadModule php4_module /путь/к/вашему/libphp4.so
Вам наверное, проще какую-нибудь машину древнюю тех лет поднять для начала, чтобы посмотреть как оно работало. Ну а потом уж на что-то современное переносить.
> Пересобрать php со сборкой модуля для ApacheЭто Apache тоже ручками ставить нужно? (http://apache.volia.net//httpd/httpd-2.4.39.tar.gz )
А пройтись по коду системы единоразово и исправить все некорректные места - это не вариант?
Я так делал при переводе своего кода, который был на 5.4 сделан, а я решил перейти на 7-ую ветку. Ничего, посидел, включил вывод ошибок в лог и просто поочерёдно исправил все затыки.
>[оверквотинг удален]
> bib1io@bib1io-server:~/php-4.3.11$ sudo make install
> [sudol password for biblio:
> make: *** No rule to make target 'install'. Stop.
> bib1io@bib1io-server:~/php-4.3.11$
> Тут на форуме нашел похожую проблему с "./configure: lex: not found", которую
> решили так:
> /usr/bin/lex
> #!/bin/sh
> exec /usr/bin/flex -l "$@"
> Но у меня нет таких файлов.
> А пройтись по коду системы единоразово и исправить все некорректные места -
> это не вариант?
> Я так делал при переводе своего кода, который был на 5.4 сделан,
> а я решил перейти на 7-ую ветку. Ничего, посидел, включил вывод
> ошибок в лог и просто поочерёдно исправил все затыки.Такая мысль была, но не настолько хорошо знаю PHP
>> А пройтись по коду системы единоразово и исправить все некорректные места -
>> это не вариант?
>> Я так делал при переводе своего кода, который был на 5.4 сделан,
>> а я решил перейти на 7-ую ветку. Ничего, посидел, включил вывод
>> ошибок в лог и просто поочерёдно исправил все затыки.
> Такая мысль была, но не настолько хорошо знаю PHPНасколько я знаком с пыхом, он настолько очевидный что вы во-первых сами скилы свои поднимите, а во-вторых ошибки которые он выдаёт вполне понятные. Так что свою мысль о перелопачивании вы может рассмотрите ещё раз. Так что поддерживаю вышеозвученную идею.
> Насколько я знаком с пыхом, он настолько очевидный что вы во-первых сами
> скилы свои поднимите, а во-вторых ошибки которые он выдаёт вполне понятные.
> Так что свою мысль о перелопачивании вы может рассмотрите ещё раз.
> Так что поддерживаю вышеозвученную идею.Насколько я понял, там написано на каком-то фреймворке.
Если это не самописный фреймворк, то подскажите какой, чтоб почитать о нем.
Ссылка на архив PHP - https://drive.google.com/file/d/1jiIWRqpHPeO7kQItUqbXlnsKdjF...
> Насколько я понял, там написано на каком-то фреймворке.
> Если это не самописный фреймворк, то подскажите какой, чтоб почитать о нем.Друг, ну какой фреймворк! Там настолько тёплый и ламповый php что я аж студенчество вспомнил :)
> Ссылка на архив PHP - https://drive.google.com/file/d/1jiIWRqpHPeO7kQItUqbXlnsKdjF...
Код скачал, посмотрел.
В общем, это простейший код. Ошибок на 7.3 не выдаёт. Ну кроме того, что ругается на отсутствие функций для работы с ibase. Но у меня такой БД нет, потому и модуль для работы с ней не установлен.
А так, всё вполне работает и не ругается. Код несмотря на свою предельную примитивность ещё и доступно откомменчен. Так что вообще всё ясно.Единственно что я у себя сделал. Фаерфокс всё показывал кракозябрами, т.к. код и текст в windows-1251, а мой апач выдаёт клиенту utf-8. Решил это добавлением в начале index.php, inc_Heading и ещё тех на которые переходы делаются отдачи клиенту заголовка:
header('Content-type: text/html; charset=windows-1251');В общем Друг, не пасуй.
1. Установи apache + php7.3+interbase модуль.
2. Всё должно работать, если пути будут теми же и доступ к БД не пропадёт.
> Единственно что я у себя сделал. Фаерфокс всё показывал кракозябрами, т.к. код
> и текст в windows-1251, а мой апач выдаёт клиенту utf-8. Решил
> это добавлением в начале index.php, inc_Heading и ещё тех на которые
> переходы делаются отдачи клиенту заголовка:
> header('Content-type: text/html; charset=windows-1251');
> В общем Друг, не пасуй.
> 1. Установи apache + php7.3+interbase модуль.
> 2. Всё должно работать, если пути будут теми же и доступ к
> БД не пропадёт.Еще вопрос: первоначально ставил на Ubuntu, но сейчас думаю поставить Debian - по описанию там пакетов много и ставить удобней. Но я Debian ни разу не пользовался. Что посоветуете?
> Еще вопрос: первоначально ставил на Ubuntu, но сейчас думаю поставить Debian -
> по описанию там пакетов много и ставить удобней. Но я Debian
> ни разу не пользовался. Что посоветуете?Ну, лично моё мнение тут таково, что я всё что мне требуется поднимаю на FreeBSD, так что тут не советчик :)
Да, и ещё по поводу кода. Там его объём настолько мал, что вам ещё раз не стоит париться насчёт того влезать в него или нет.
Я установил
- Ubuntu Server 14
- Apache2
- FireBirdSS-1.5
- PHP 5.5
Скрипт к базе конектится, но останавливается на такой ошибке:
Warning: ibase_query(): Unable to complete network request to host "127.0.0.1". Error writing data to the connection. in /var/www/biblioteka.muk/html/page_Form.php on line 291там строка:
$Result = ibase_query($db1,"select groupcode from usergroup where alias = '$UserName'" );Пробовал создавать отдельно файл с кодом:
<?php
$host = 'localhost:library';
$username= 'SYSDBA';
$password='135';$dbh = ibase_connect($host, $username, $password);
$stmt = 'SELECT * FROM DOC_ITEM';
$sth = ibase_query($dbh, $stmt);
while ($row = ibase_fetch_object($sth)) {
$content[] = $row;
print_r ($content[0]);
}
ibase_free_result($sth);
ibase_close($dbh);
?>
этот скрипт отрабатывает и выводит данные. В чем ошибка?