I'm trying to get the new Drupal 7 beta running under MSSql, and I'm getting a PHP crash when doing the install. The system this is running on is running the original alpha version just fine, so I'm not sure what's changed which would cause this error. I'm running with PHP 5.3.3, IIS 7 under Windows 7, and SQL Server 2008 R2.
I've tried both the version of the DB driver that's built into the alpha available from http://www.microsoft.com/web/drupal/ , and the latest version of the driver available, the version in the alpha fails with a PHP crash, and the latest SVN version fails with a PHP error, so I'm not sure which direction to go in, or even if anyone has made SQL Server work with the beta.
| Comment | File | Size | Author |
|---|---|---|---|
| #9 | 940452-crash-merge-queries.patch | 3.64 KB | damien tournoud |
| #8 | 940452-crash-merge-queries.patch | 3.64 KB | damien tournoud |
| #6 | phpinfo.zip | 11.54 KB | DavidM-1 |
Comments
Comment #1
Anonymous (not verified) commentedIs there anything in the php error log file by chance? On Windows its generally located at C:\Windows\temp\php-errors.log
Comment #2
DavidM-1 commentedI've just emptyed the log and tried again, I'm getting an error displayed as 'HTTP Error 500.0 - Internal Server Error
C:\Program Files\PHP\php-cgi.exe - The FastCGI process exited unexpectedly', nothing appears in the php error log.
Comment #3
Anonymous (not verified) commentedhmm, did you use the Web PI to configure your machine for IIS and PHP?
There's a handy tool you can install into IIS that you can use to troubleshoot PHP on IIS issues called PHP Manager. Try installing that tool. Then open IIS again, select Drupal 7 sub web and look for the PHP Manager module in the main window off to the right. Run that and see if it says PHP is configured properly. Also run the phpinfo() from there too. Lastly, check to see if the SQL Server extension is actually installed.
Install that tool at http://phpmanager.codeplex.com/
Comment #4
DavidM-1 commentedI didn't use the Web PI to configure PHP or Drupal as apparently the PHP version it installs is out of date. I've just tried PHP Manager, and it reported a couple of minor issues (adding index.php to the default doc types, and restarting IIS when the PHP config changes), I've corrected those, even though I wouldn't have thought they'd cause this issue, and indeed it didn't help.
The pdo_sqlsrv extension is enabled, and appears in the phpinfo() output, and I have a Drupal 7 alpha install running under the same IIS site using a database from the same SQL instance, so I'm reasonable confident that it's working correctly at some level, it's only under the Drupal B1 install code that I'm experiencing this issue.
Thanks for your ongoing help.
Comment #5
piercou commentedHello there,
Do you have a phpInfo() output, or your php.ini settings, so that I can check you run the required extensions ? Also, which php 5.3.3 are you using : NTS or TS, VC6 or VC9 ? Also, if you install PHP Manager you'll get a detailed view of the php settings associated to the web site along with the ability to update the location of the log files to make sure you get the rigt information. From my past installations, the most probable cause is you're not using the right binary for the PDO driver for Sql Server, or the account that runs the site does not have required permissions (filesystem or sql server)
Pierre
Comment #6
DavidM-1 commentedI've attached the output of phpinfo() run on the system. I wouldn't have though permissions would be an issue as I already have an instance of Drupal running under the same IIS instance with no issues, but I can post any details on that if required. I'm not quite sure what you mean by PHP version - do you mean the version of the sqlsrv module?
Comment #7
piercou commentedSome progress here :
I retraced installation steps on a old (alpha6) d7 version, then on the beta. Here is the error message I geton beta1 :
Fatal error: Call to undefined method MergeQuery_sqlsrv::preExecute() in C:\inetpub\wwwroot\drupal-7.0-beta1\includes\database\sqlsrv\query.inc on line 255
So, there is something tied to beta1. I pinged Damien, we should get more info soon.
Thanks for spotting this,
Pierre
Comment #8
damien tournoud commented@piercou, thanks for the analysis.
What happens here is that #844186: Clarify merge queries significantly changed the MergeQuery API, and as a consequence our SQL Server-specific overrides is not compatible with the base class anymore.
So, we will need a two-part fix here. Here is the most trivially possible fix: we just remove most of the overridden implementation, because it is not needed any more. That will the most pressing bug.
After this, we will still have two tasks (I'm opening separate issues for those):
->forUpdate()parameter for SelectQuery (currently, it is just ignored): we need row-level locking here, and we will need to figure out what is the best transaction isolation for DrupalAttached patch should fix the pressing issue.
Comment #9
damien tournoud commentedOups. We need to return the status too. With this, and a few unrelated fixes in:
The Database test suite passes as good as before.
Comment #10
damien tournoud commentedCommitted to HEAD.