Препоръчайте читав Linux сървар за PHP 7

Здравейте,
Необходим ми е домашен сървар с поддръжка на PHP 7.4. Ще свързвам към него няколко IoT джаджи и програмирани от мен Arduino-платки. Не мисля, че дори ще опра до Apache, мисля че вградения "php -S" сървар ще ми е напълно достатъчен. Базите данни са ми на sqlite3, а за ORM съм ползвал RedBeanPHP. Това означава, че трябва да мога да ползвам pdo_sqlite (както и GD2). Което всъщност е и причината да създам темата. Опитах с Ubuntu няколко дистрота, включително и Ubuntu Server и навсякъде срещам един и същ проблем - невъзможност да се зареди pdo_sqlite. Пробвах доста неща - трих библиотеки, преинсталирах напълно няколко версии на PHP и не става. Ако някой е срещал подобен проблем, ще съм благодарен да сподели, как го е решил. В момента мисля, че проблема в Ubuntu дистротата и за това моля за препоръка за някакво друго дистро, което да работи с PHP 7 и поне pdo_sqlite, а още по-добре и с GD2. Ще ми отнеме доста ценно време, да тествам всякакви дистрота, което време мога да ползвам за програмиране. Надявам се коректно да съм обяснил какъв ми е дерта.
 

Sky

Well-Known Member
Е то ако не е убунто ще е центос. Тъй че няма да отнеме много време
 

alexkuzmov

Active Member
Здравейте,
Необходим ми е домашен сървар с поддръжка на PHP 7.4. Ще свързвам към него няколко IoT джаджи и програмирани от мен Arduino-платки. Не мисля, че дори ще опра до Apache, мисля че вградения "php -S" сървар ще ми е напълно достатъчен. Базите данни са ми на sqlite3, а за ORM съм ползвал RedBeanPHP. Това означава, че трябва да мога да ползвам pdo_sqlite (както и GD2). Което всъщност е и причината да създам темата. Опитах с Ubuntu няколко дистрота, включително и Ubuntu Server и навсякъде срещам един и същ проблем - невъзможност да се зареди pdo_sqlite. Пробвах доста неща - трих библиотеки, преинсталирах напълно няколко версии на PHP и не става. Ако някой е срещал подобен проблем, ще съм благодарен да сподели, как го е решил. В момента мисля, че проблема в Ubuntu дистротата и за това моля за препоръка за някакво друго дистро, което да работи с PHP 7 и поне pdo_sqlite, а още по-добре и с GD2. Ще ми отнеме доста ценно време, да тествам всякакви дистрота, което време мога да ползвам за програмиране. Надявам се коректно да съм обяснил какъв ми е дерта.
Можеш ли да дадеш повече инфо?
Като каваш невъзможност да се зареди, какво имаш предвид? Хвърля ли ти грешки някакви при рестарт на сървъра, при request?
Ако имаш някакъв лог от грешки, пусни го в темата.
Отделно, пробва ли заявка с PDO? Там хвърля ли ти грешка?
 

s1yf0x

Well-Known Member
От цялата тема не разбрах:

- какво имаш предвид под Читав? Да го инсталираш и с 3 клика всичко да тръгне или нещо друго?
- какво имаш предвид под Linux Server? - дистрибуция, хардуер?
 
Е то ако не е убунто ще е центос. Тъй че няма да отнеме много време
Горещо благодаря! С CentOS 7 се получи от раз. Реших да не инсталирам последната веерсия 8, защото за 7-цата има доста информация, а се опасявах, че пак ще има ръчно творчество. Останах с много приятни впечатления от това дистро. Тая ос ми създаде една импресия за едни минали времена на RedHat, Slackware, Mandriva... Ето това е от Убунту и въобще не разбирам как да го интерпретирам :) :
Bash:
$ php -i | grep sqlite
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_sqlite' (tried: /usr/lib/php/20190902/pdo_sqlite (/usr/lib/php/20190902/pdo_sqlite: cannot open shared object file: No such file or directory), /usr/lib/php/20190902/pdo_sqlite.so (/usr/lib/php/20190902/pdo_sqlite.so: undefined symbol: php_pdo_unregister_driver)) in Unknown on line 0
/etc/php/7.4/cli/conf.d/20-pdo_sqlite.ini,
/etc/php/7.4/cli/conf.d/20-sqlite3.ini,
sqlite3
sqlite3.defensive => 1 => 1
sqlite3.extension_dir => no value => no value
Bash:
$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 20.04 LTS
Release:    20.04
Codename:    focal
Някакъв тотален нон-сенс - хем е инсталиран со-файла, хем няма такъв файл, а при инфото вади че всичко си е ок. Както казах - пробвах с няколко дистрота на Убунту и с реален хардуер, и на виртуалка. Ако някой успее да го подкара, нека пише как, че аз изгубих няколко часа за тая дивотия. Поне да не страдат други.
 
Като си решиш проблема със сървъра, сподели какъв е проекта. Жалко че няма(все още) iot секция във форума.
Идеята на проекта е да имам централна система за мониторинг на всичките устройства с които си играя. Датчици за отваряне на прозорци и врати, датчик за ниво на течност в един резервоар, колко пъти се включва през Wi-Fi едно устройство и колко време седи включено, няколко температури и относителна влажност. Както казах - играчки :). За тази цел си сглобих и ъндърклокнах една машина, да е енергийно-икономична и тиха. Сега се оглеждам за някакъв UPS за нея, може би нещо offline или най-евтиното line-interactive, колкото да обира по-сериозни моментни прекъсвания или токови удари.
 

alexkuzmov

Active Member
Горещо благодаря! С CentOS 7 се получи от раз. Реших да не инсталирам последната веерсия 8, защото за 7-цата има доста информация, а се опасявах, че пак ще има ръчно творчество. Останах с много приятни впечатления от това дистро. Тая ос ми създаде една импресия за едни минали времена на RedHat, Slackware, Mandriva... Ето това е от Убунту и въобще не разбирам как да го интерпретирам :) :
Bash:
$ php -i | grep sqlite
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_sqlite' (tried: /usr/lib/php/20190902/pdo_sqlite (/usr/lib/php/20190902/pdo_sqlite: cannot open shared object file: No such file or directory), /usr/lib/php/20190902/pdo_sqlite.so (/usr/lib/php/20190902/pdo_sqlite.so: undefined symbol: php_pdo_unregister_driver)) in Unknown on line 0
/etc/php/7.4/cli/conf.d/20-pdo_sqlite.ini,
/etc/php/7.4/cli/conf.d/20-sqlite3.ini,
sqlite3
sqlite3.defensive => 1 => 1
sqlite3.extension_dir => no value => no value
Bash:
$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 20.04 LTS
Release:    20.04
Codename:    focal
Някакъв тотален нон-сенс - хем е инсталиран со-файла, хем няма такъв файл, а при инфото вади че всичко си е ок. Както казах - пробвах с няколко дистрота на Убунту и с реален хардуер, и на виртуалка. Ако някой успее да го подкара, нека пише как, че аз изгубих няколко часа за тая дивотия. Поне да не страдат други.
На база грешките ми идват на акъла няколко неща:

- Имаш повече от едно PHP инсталирано на сървъра и има конфликт между двете версии. Има шанс да се оправи ако почистиш всички версии и направиш чист инстал на PHP
- Проблем с php.ini може би имаш, не търси lib-a в правилната папка. Трябва да провериш extension_dir какво е сетнато
- Самата библиотека я няма в правилната папка, може просто да я преместиш.
- User-а с който run-ваш няма права в/у папката където е lib-a, но това не е вероятно изобщо

Може да пробваш, ама ако е заработило с CentOS, не се занимавай.
 
Омазана машинка е това с Убунтуто. Както пише в предния пост, щом си успял някак си да го подкараш на нещо друго, по-добре не си губи времето. След това ще има други мотики за настъпване
 

AMitrev

Well-Known Member
Нищо не разбрах от поста ти, но ако искаш php 7.4 на Debian базирани дистротата:

Код:
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.4 php7.4-gd php7.4-mysql
 
Благодаря за съветите, но нищо от това, което препоръчвате, не работи. Пробвах с Mint 19.3, след това инсталирах Debian 10, пробвах на хардуер, на VirtualBox, сменях настройки и какво ли не... навсякъде pdo_sqlite е счупено. Проблема при всички debian-базирани ОС си го има. Предим малко пробвах и с Fedora Server 32. Там всичко си се инсталира гладко, без грам проблем. Много съм подтиснат, защото трябва да мигрирам на друга ОС заради някаква тотална простотия.
Много ми се щеше да ползвам Ubuntu, но явно си страда от бъгове по отношение на някои PHP модули. Последния ми шанс е да си компилирам ръчно сорса на PHP, а това не ми се беше налагало последните години. Но от отчаяние вероятно и това ще пробвам.
 

AMitrev

Well-Known Member
Нищо не е счупено. Проблема е някъде в настройвача ;).
 
Нищо не е счупено. Проблема е някъде в настройвача ;).
Това би било чудесно, защото ако пропускам нещо специфично само за Ubuntu, ще имам шанс да го настроя. Ако ползваш Ubuntu, можеш ли да ми кажеш коя версия, дали при теб модула pdo_sqlite работи безпроблемно. Просто ми покажи, какво ти връща тази команда:
Код:
php -i | grep pdo_sqlite
 

AMitrev

Well-Known Member
Не знам за какви специфични неща говориш, но току що за 5-10мин. инстлирах нещата на ondrej (тоест php7.4, sqlite3) даже от интернето намерих един код от далечната 2012 година (click here) и всичко работи - създаде си базата, напълни я, прочете я отпечатая :D

Не е ubuntu, а Debian но все тая. Ето ти и резултата, щом те вълнува:
Код:
/etc/php/7.4/cli/conf.d/20-pdo_sqlite.ini,
pdo_sqlite
 
Не знам за какви специфични неща говориш, но току що за 5-10мин. инстлирах нещата на ondrej (тоест php7.4, sqlite3) даже от интернето намерих един код от далечната 2012 година (click here) и всичко работи - създаде си базата, напълни я, прочете я отпечатая :D

Не е ubuntu, а Debian но все тая. Ето ти и резултата, щом те вълнува:
Код:
/etc/php/7.4/cli/conf.d/20-pdo_sqlite.ini,
pdo_sqlite
Благодаря ти, AMitrev! Оценявам усилието ти! Странно, и аз пробвах на Debian 10 с ondrej. Само още един въпрос, теста ти на Debian 10 ли е или по-стар, за да знам накъде да се насоча. Thanks again!
 

AMitrev

Well-Known Member
Излъгъл съм те :D. Пише Debian в името на машината, ама всъщност e:
Код:
Distributor ID: Ubuntu
Description:    Ubuntu 19.10
Release:        19.10
Codename:       eoan
Сега ще видим кой младеж ще изгори, че не си е свършил работата (наложил съм конвенция за наименоване, че Server-Do-Vratata и Debian-Do-Vratata са къде къде по ясни...) :D
 

Sky

Well-Known Member
Излъгъл съм те :D. Пише Debian в името на машината, ама всъщност e:
Код:
Distributor ID: Ubuntu
Description:    Ubuntu 19.10
Release:        19.10
Codename:       eoan
Сег аще видим кой младеж ще изгори, че не си е свършил работата :D
Ама е хитър, за малко да те метне :D
 

AMitrev

Well-Known Member
Метна си ме отвсякъде, ама ей на заради форума го хванах в крачка :D
 
Да се похваля - подкарах го най-накрая. Ако има и други каръци, като мен, да имат идея, как се оправих. Разбрах, че каузата да търся работещо debian-дистро е обречена на неуспех, заради този стар бъг: https://bugs.php.net/bug.php?id=48614&edit=1
След това се върнах на любимото Ubuntu 20.04 с решението да компирам от сорс код, докато стане. И всъщност стана от първия път. Според мен тайната е в този ред от конфигурирането преди компилиране:
Код:
--without-sqlite --with-sqlite3=shared --with-pdo-sqlite=shared,/usr
Сега си имам PHP 8.0.0 - чистак бърсак, че даже си ембеднах в компилация някои необходими неща (като mbstring), за да ми е по-семпъл ini-файла:
php_sqlite.png
 
  • Like
Реакции: Sky

Горе