1

I'm a .NET developer, currently writing an ASP.NET site hosted on our local servers with Windows, IIS, and SQL Server. We're speaking to a company in India about hiring a developer for a different site, written in PHP but ideally running on the same server: Windows, IIS, SQL Server. He does not know English very well.

He is hung up on LAMP — claiming that he needs to use Linux, Apache, and MySQL because he is writing in PHP. I have no experience with PHP, but it is supported by IIS and SQL Server. What am I missing here? I can't tell if he doesn't know what he's talking about or simply cannot understand us — equally bad problems.

6
  • 3
    I wish people who downvote would give a quick explanation. The intent of downvotes is to improve the site, but without legitimate feedback I don't see how I could be expected to avoid future ones.
    – Sinjai
    Jul 11, 2017 at 15:23
  • 1
    I'll negate one of the downvotes for you. I think they were before your edit. It sounds like this dev not only can't communicate well with your team, but also doesn't want to meet your requirements. Normally that's a reg flag in hiring that would result in looking for a different candidate.
    – NH.
    Jul 11, 2017 at 17:21
  • @NH. Were it up to me, he would have been tossed out long ago. My supervisors see only dollar signs. I appreciate the upvote.
    – Sinjai
    Jul 11, 2017 at 19:11
  • He might want/need to use existing PHP libraries/frameworks that only run on Linux/MySQL.
    – Kwebble
    Aug 8, 2017 at 21:44
  • @Kwebble He'd almost certainly have to use a different ORM, and possibly some others. But are any experience developers that locked in to their habits? I would think flexibility would be par for the course.
    – Sinjai
    Aug 8, 2017 at 21:47

2 Answers 2

4

Absolutely no additional ones. Surely, there are differences. But these are differences, not problems:

  • If you write SQL-Server tailored SQL you will obviously not be able to run it against MySQL/Maria/Aurora or Postgres
  • Some PHP packages ship with a .htaccess file which is Apache specific. You might have to translate those into your IISes web.config. There are tools to do so and not really that hard to do manually, either.
  • Any PHP extensions that you use must be available for Windows. The mainstream extensions are supported on both platforms; some exotic ones might not be available for Windows. You can check that beforehand; but for 99.9% of the purposes PHP is a good fit for, such extensions are not necessary.

Note: you can locally develop on Apache and then do Testing, QA, Staging and Production on IIS. Did that already and it forced us not to code towards an OS or a WebServer. I believe the code benefited from that.

4
  • Per your note: One of the things I'm trying to find is what problems may arise from going to Apache on Linux to IIS. Google was not particularly helpful -- which is why I'm here, getting valuable information at the expense of downvotes.
    – Sinjai
    Jul 11, 2017 at 15:17
  • @Sinjai I can only speak from experience here. I locally developed a PHP web application on a Linux LAMPP stack while other team members were working with Windows + LAMPP stack locally. This app was then QAed, staged and put into Production on Microsoft Azure Web running on Windows Server and IIS connecting to an Amazon Aurora DB. While we had issues with Azure, IIS did not cause any issues other than requiring me to learn the basics of IIS configuration.
    – marstato
    Jul 11, 2017 at 15:56
  • Issues with Azure, not Windows?
    – Sinjai
    Jul 11, 2017 at 16:12
  • Yes. The I/O threshhold on azure will kick your ass if you use file based sessions and cache. Also, the I/O threshhold will prevent you from doing composer install as a part of your deployment on the azure machine.
    – marstato
    Jul 11, 2017 at 16:41
2

I am not a PHP developer, but a developer that insists the code being developed has to be tied to a specific database is, in my opinion, not up to speed with modern development. The trend in development is to abstract the SQL database and write code following an ORM model so that your application is not coupled tightly to any one SQL platform. A quick Google search reveals that there is ORM in the PHP world, and data abstraction layer frameworks etc.

Here is a good discussion on Stack Overflow on PHP and ORM: https://stackoverflow.com/questions/753238/whats-the-best-way-to-abstract-the-database-from-a-php-application

For the rest of the stack (LAMP), you can run PHP on windows servers using IIS and PHP, or apache httpd and PHP, etc. That also should not be tied to a specific OS. However, your developer likely feels at home with the LAMP stack. I don't see that as a big problem. But saying the database platform has to specifically be MySQL, and not being flexible/adaptable on that point, is a red flag (for me).

2
  • We're a small company, and we have one server. We are trying to avoid running two different web servers and/or database servers concurrently.
    – Sinjai
    Jul 11, 2017 at 15:03
  • Using raw vendor-tailored sql is often an excellent idea. There are no ORM's that support MySQL, SQL Server, Oracle and Postgres 100%. If one were to use Postgres' json-support, then you're tied to that product, because the syntax is completely different in SQL Server 2016. I'd like to stress that it is not a red flag if someone did not choose an ORM.
    – Jan Sommer
    Aug 8, 2017 at 22:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.