Advertisement:

Author Topic: Installing on Synology NAS - Installer doesn't detect Database support in PHP  (Read 547 times)

Offline jasonwatkins

  • Jr. Member
  • **
  • Posts: 101
I've got a Synology NAS and i've installed MariaDB 5 & 10 and PHP 5.6 and 7 as well as phpMyAdmin and Apache HTTP Server 2.2

I've enabled web services and uploaded the installation file into the folder and unzipped it.

I then go to my URL and add /install.php and I get the first page of the installer up and

"!!Critical Error!
The installer was unable to detect any database support in PHP. Please ask your host to ensure that PHP was compiled with the desired database, or that the proper extension is being loaded."

And I can't work it out.   I've created a couple of test databases with some users and granted all to each one, but it obvious won't do a lot if the installer doesn't even detect the database support.

I've googled around for a while and there's no hints i can find as the only other sites i've found mentioning synology drives and smf have people successfully installing it without an issue.

any ideas would be most welcome, thanks.

Offline Arantor

  • Resident Overthinker
  • SMF Friend
  • SMF Legend
  • *
  • Posts: 69,279
    • StoryBB/StoryBB on GitHub
How exactly did you install PHP on it? Depending on exactly how you installed it, you may not have added database support (or you may have added it but not enabled it)

Also, Apache 2.2 is no longer maintained and Apache 2.4 should be used instead.
Don’t try to tell me that some power can corrupt a person. You haven’t had enough to know what it’s like.

No good deed goes unpunished / No act of charity goes unresented.

Offline jasonwatkins

  • Jr. Member
  • **
  • Posts: 101
i just used the standard synology package installer for php.   i'll see if i can re-install it and check if there are any options i've missed.

i'll try apache 2.4 though - that's on there as well.

#edit

just re-installed php 5.6 and it doesn't ask for any settings or anything at any point - just click "install" then it's done.   installed apache 2.4 as well and i'm still getting the same error on the installation page.

Offline Arantor

  • Resident Overthinker
  • SMF Friend
  • SMF Legend
  • *
  • Posts: 69,279
    • StoryBB/StoryBB on GitHub
Hmm, I wonder if it sets up any database connectors and if so which one(s) it might use.
Don’t try to tell me that some power can corrupt a person. You haven’t had enough to know what it’s like.

No good deed goes unpunished / No act of charity goes unresented.

Offline jasonwatkins

  • Jr. Member
  • **
  • Posts: 101
i did try to find a separate mysql package for synology drives, but they all use mariadb unfortunately.  phpymyadmin has a mysql database in it, which i've also granted all on, but still no luck

Offline Arantor

  • Resident Overthinker
  • SMF Friend
  • SMF Legend
  • *
  • Posts: 69,279
    • StoryBB/StoryBB on GitHub
But that's not what you're missing.

PHP out of the box doesn't support any databases. All of the bits that let PHP talk to a database are plugins - even MySQL support - just mostly enabled by default.

If you make a little page with the phpinfo() command in it, what does that say?
Don’t try to tell me that some power can corrupt a person. You haven’t had enough to know what it’s like.

No good deed goes unpunished / No act of charity goes unresented.

Offline jasonwatkins

  • Jr. Member
  • **
  • Posts: 101
i've just made the page, but there's a ton of stuff on it - what would i be looking for ?

Offline Arantor

  • Resident Overthinker
  • SMF Friend
  • SMF Legend
  • *
  • Posts: 69,279
    • StoryBB/StoryBB on GitHub
Is there a section listed for either mysql or mysqli ?
Don’t try to tell me that some power can corrupt a person. You haven’t had enough to know what it’s like.

No good deed goes unpunished / No act of charity goes unresented.

Offline jasonwatkins

  • Jr. Member
  • **
  • Posts: 101
i've just got "mysqlnd"

Offline Arantor

  • Resident Overthinker
  • SMF Friend
  • SMF Legend
  • *
  • Posts: 69,279
    • StoryBB/StoryBB on GitHub
OK, so you're missing either of the connectors for MySQL itself (mysqlnd is only part of the story, on its own PHP can't talk to MySQL)

So... the next question is whether the PHP installer actually bundled any of the connectors or not and that, unfortunately, I can't tell you - I don't have a Synology NAS :(

If this were a Windows installation, I'd say it probably came with all the libraries and it was just a case of commenting out the line in php.ini (the one mentioned at the top of phpinfo()) and restarting Apache.

If this were a Ubuntu/Debian installation, I'd be saying to go use apt-get (or apt) to install php-mysql and php-mysqli.

But I've never come across a Synology NAS before now, sorry :(
Don’t try to tell me that some power can corrupt a person. You haven’t had enough to know what it’s like.

No good deed goes unpunished / No act of charity goes unresented.

Offline jasonwatkins

  • Jr. Member
  • **
  • Posts: 101
no worries, i appreciate your help so far.   i can actually get to the php.ini file if it helps ..

Offline Arantor

  • Resident Overthinker
  • SMF Friend
  • SMF Legend
  • *
  • Posts: 69,279
    • StoryBB/StoryBB on GitHub
In there will be a section called extensions, and very likely every entry has a ; at the start indicating it is commented out. Look for ones referencing mysql and mysqli (maybe not pdo_mysql though) and if they're commented out, try taking the ; off the start, saving and restarting Apache.
Don’t try to tell me that some power can corrupt a person. You haven’t had enough to know what it’s like.

No good deed goes unpunished / No act of charity goes unresented.

Offline jasonwatkins

  • Jr. Member
  • **
  • Posts: 101
ok i'll give it a go and hope i don't blow my nas up .. hehe :)

Offline jasonwatkins

  • Jr. Member
  • **
  • Posts: 101
well this is what i found in the php.ini file regarding mysql .. as you can see, nothing commented out

Code: [Select]
[mysql]
mysql.allow_persistent = 1
mysql.connect_timeout = 60
mysql.max_persistent = -1
mysql.default_socket =
mysql.max_links = -1
mysql.default_host =
mysql.allow_local_infile = 1
mysql.default_port =
mysql.trace_mode = 0
mysql.default_password =
mysql.default_user =

[mysqli]
mysqli.max_persistent = -1
mysqli.allow_persistent = 1
mysqli.max_links = -1
mysqli.reconnect = 0
mysqli.rollback_on_cached_plink = 0
mysqli.default_socket =
mysqli.default_pw =
mysqli.default_host =
mysqli.default_user =
mysqli.default_port = 3306
mysqli.allow_local_infile = 1

Offline Arantor

  • Resident Overthinker
  • SMF Friend
  • SMF Legend
  • *
  • Posts: 69,279
    • StoryBB/StoryBB on GitHub
What about the [extensions] section as I previously mentioned?
Don’t try to tell me that some power can corrupt a person. You haven’t had enough to know what it’s like.

No good deed goes unpunished / No act of charity goes unresented.

Offline jasonwatkins

  • Jr. Member
  • **
  • Posts: 101
there isn't one in there

Offline Arantor

  • Resident Overthinker
  • SMF Friend
  • SMF Legend
  • *
  • Posts: 69,279
    • StoryBB/StoryBB on GitHub
A quick Google search took me to the Synology FAQs where it shows how to enable the extensions - you will need the mysql and mysqli extensions on PHP 5.6.

https://www.synology.com/en-uk/knowledgebase/DSM/tutorial/Application/How_to_host_a_website_on_Synology_NAS
Don’t try to tell me that some power can corrupt a person. You haven’t had enough to know what it’s like.

No good deed goes unpunished / No act of charity goes unresented.

Offline jasonwatkins

  • Jr. Member
  • **
  • Posts: 101
considering the amount of time i spent googling for a solution, you'd think i'd probably look at the one thing that's right under my nose :)

enabled the relevant extensions and it's now working.  thanks again for your help

Offline Arantor

  • Resident Overthinker
  • SMF Friend
  • SMF Legend
  • *
  • Posts: 69,279
    • StoryBB/StoryBB on GitHub
Glad you got it working.
Don’t try to tell me that some power can corrupt a person. You haven’t had enough to know what it’s like.

No good deed goes unpunished / No act of charity goes unresented.