we have an IIS 7 server hosting different sites/applications.
Take not that this server is hosting other site/site-applications running on either asp or php. There is already an existing site application running thru fastCGI php.
I now added a new site (not a site-application) - a laravel 5.1 framework, to the IIS server, but this new site is not loading anything. Tried a test php page which echos phpinfo() only and i also made a static html file with just "Hello world" on it but to no avail.
Checked my handlers, and my php handler is there.
When i try to browse the sites host name I get this error:
The server at [mysubdom].[domain].com can't be found, because the DNS
lookup failed. DNS is the network service that translates a website's name to
its Internet address. This error is most often caused by having no connection to
the Internet or a misconfigured network. It can also be caused by an
unresponsive DNS server or a firewall preventing Google Chrome from accessing
the network.
Is this really a DNS problem?
Can you open it local? http://127.0.0.1/{websitename}/index.html with the hello world ... Don't always go directly to your binding address.. try to load on the server itself first.
Related
I am trying to expose my website to internet, using ngrok, my website lives in xampp server which is running on my local machine. the path to my website is this: C:\xampp\htdocs\TheWebsite
when i use the following command for running ngrok client:
ngrok http -host-header=rewrite TheWebsite:8081
the client gets connected to ngrok server, but when i try to access my website on internet using http://234k2h4k24.ngrok.io which is the url ngrok provides for me, i end up with this error:
The connection to http://234k2h4k24.ngrok.io was successfully tunneled to your ngrok client, but the client failed to establish a connection to the local address TheWebsite:8081.
Make sure that a web service is running on TheWebsite:8081 and that it is a valid address.
The error encountered was: dial tcp: lookup TheWebsite: no such host
how exactly one should set the value for -host-header switch in order to to get the sub-directories (websites) living in htdocs folder in xampp server environment??
I have searched this site and also all over the Internet and i found some quick answers but they confused me even more. like this one:
https://helgesverre.com/blog/expose-local-webserver/
which doesn't even provide a small example
and this: Tunnel a localhost subdirectory through ngrok?
just the same as previous one (no example)
A real good answer needs to provide at least one complete example (i mean, if you want to answer this question, please provide a full example of ngrok command for the path of my website (TheWebsite). thank you
for this purpose i needed to define virtual hosts for each of my websites!
I found the answer in a related question at stackoverflow.com and here it is:
Tunnel a localhost subdirectory through ngrok?
this question leads you to this page which lets you know how to define virtual hosts in order for your local machine to identify where is the requested website, just take a look and you will learn in it no time. here is the page:
http://forum.wampserver.com/read.php?2,127757
although its for wamp but it is the same for xampp server too!
I’m currently running a wordpress IIS server for site hosting (lets call it Web01), then running a separate IIS server for web application hosting. (Apps01)
I’m trying to utilize virtual directories on Web01 to dish out the content provided by Apps01 on my website.
So Apps01 hosts an IIS application called FileRun in an IIS site simply called “FTP”. going to http://localhost shows the application launches properly and I can login and use it just fine.
On Web01, I created a virtual directory under my main web IIS site called “ftp” as well as provided it with proper "connect as" account permissions, performed test to verify successful connections and I can expand and see the virtual directory contents etc.... When I attempt to go to http://www.example.com/ftp from Web01. It loads a page stating “ION Loader is required” however, I already have this ION Loader, loaded on Apps01 and it is functional. (as it is part of the FileRun, install). So at this point I used PHP Manager to redirect Web01 on FTP Virtual Directory to point to PHP content on Apps01 since that is where the program is located. Now I'm receiving an internal 500 error when trying to load http://www.example.com/ftp from Web01.
I check the remote PHP servers logs (Apps01) and see the following errors:
[11-Jan-2018 11:46:58 America/New_York] PHP Warning: PHP Startup: Unable to load dynamic library '\apps01\PHP\v5.6\ext\php_sqlsrv.dll' - The specified module could not be found.
in Unknown on line 0
It appears to repeat this same error but with all php modules that are trying to be accessed from the remote Web01 server.
Any thoughts? Issues appear to be happening when running php based applications via virtual directories in IIS only. I tested by creating a test.php page with simple text. If I go to example.com/ftp/test.php, content loads fine. So it appears to be spefically an issue with PHP (either something about the UNC path in the VD settings or php.ini settings that need to be changed to allow this type of access etc...) I just can't find a clear answer for this issue with online searches.
P.S.
I searched on this site and found someone with a similar issue as me. However, their solution is not a real solution and will not work for me. He stated he simply copied the contents from the remote server onto the local Web server... I need the two servers separate so each can process its own roles independently (aka I need app server to process resources for app usage and web server to process web requests etc...)
How to enable the Virtual Directory Support php?
My server is on DigitalOcean cloud. I am using Ubuntu with Apache web server. My home computer is running Windows 7. I am using putty for terminal.
Followed all of the directions on https://laracasts.com/series/laravel-5-fundamentals/episodes/1. Made it up to 8:40, where it directs you to run php -S localhost:8888 -t public. I run that, then open a web browser and tried the following:
-http://mywebsite.com:8888
-http://www.mywebsite.com:8888
-http://mywebsite.com/learning-laravel-5/public
-http://mywebsite.com/learning-laravel-5/public/index.php
None of the above work.
In Google Chrome, the first two options where I list the port number, I get a page saying This webpage is not available. ERR_CONNECTION_REFUSED. In IE, I just get a page with big font saying "This page can't be displayed."
For the last two options, I just get a completely blank page. In the console, I get this error: Failed to load resource: the server responded with a status of 500 (Internal Server Error).
I'm trying to pick up a web app framework to broaden my php skill set. Can someone help me out? What am I doing wrong/what is the video tutorial missing that I have to do in order to get Laravel up and running?
php -S localhost:8888 -t public is meant for running a site locally, which is what the video is showing.
If you are using a Digital Ocean droplet with Ubuntu and Apache, you will need to configure Apache to use /public as the document root and have Laravel installed in the /var/www directory.
From there you can visit the droplet's IP address (http://XXX.XXX.XXX.XXX) instead of the domain name (unless you have configured the DNS for that domain name). You won't need the port in the URL either, since Apache will be serving it on the default port 80.
This probably is not the answer you want, but here's my advice based on setting up a few VPSs on Digital Ocean. Step back. Spin a new VPS. Keep your old one around, if you want, but start afresh.
Create a new droplet
Setup your SSH and PuTTY and make sure that works
Setup your FTP (if you're using it)
Setup your DNS
Setup your Apache config files. DO has a very good tutorial on this: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-14-04
Now, work on getting your "Hello world" html page to show when you access your domain www.yourdomain.com, yourdomian.com. Don't fixate on ports at this point, just get a minimal server running. This might help too: https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-14-04-lts
Make an saved "image" of this basic working setup so you can spin a new VPS if you need to.
Now that you have a server that loads your domain index page, you can start to install your Laravel.
In a nutshell, I'd advise you to establish a stable working server platform before you try to install and launch a more complex technology like Laravel, or Rails, etc.
Tutorials often make complex technologies seem easy, the 10-minute expert, but there is tremendous complexity masked under the hood of these frameworks. Start simple and build on a server one piece at a time. You have to walk before you run.
I use Laravel often, but my experience with servers is more relevant here. Everything you've said indicates an access problem, and knowing how hosting companies work, they probably have that port blocked (along with all other non-standard ports).
You can test this using PuTTY, open it up and enter the host name of your server. Change the port to 80 and change close on window exit to never, then connect. Enter:
GET / HTTP/1.1
Host: yourwebsite.com
Then press enter twice and the server will process the result. It should show you the HTML of your home page.
Now try it again with port 8888 and see if you can even connect. If you can connect then it's not a port issue, but my guess is you'll get a fatal error Network error: Connection refused, which means the port is closed or blocked via firewall.
Even though DigitalOcean give you complete control over the server, the connection probably still runs through their firewall. It's possible that you have your own firewall, but otherwise if the server runs through their firewall and the port is blocked nothing you can do on the server will open that port.
did you try chmod -R 0777 storage ?
I've build a Jekyll website on my localhost (MacOS Mavericks). The website is served at http://localhost:4000/website/ and everything regarding Jekyll is running just fine.
However, I now want to have a contact form in PHP that allows me to receive emails. I placed a contact.php file in the website/ folder and have the form POST to that file. On my remote web server, this is working perfectly. However, on the localhost, the PHP isn't parsed, and plain text is displayed on contact.php. However, PHP is parsed perfectly on localhost/contact.php.
How do I get my localhost (Apache? PHP?) to process PHP files on my local Mac http://localhost:4000/ (without breaking my Jekyll website that listens on the same :4000 port)?
You can't use the same port. The port determines the application endpoint that will handle the request on the IP address. The Jekyll server (WEBrick library) uses port 4000 as a default.
The typical way to handle this problem, is to use a "web service" to add dynamic functionality. For instance, the jekyll docs suggest using something like FormKeep, or SimpleForm.
What you're asking is to setup a "web service" yourself. To do this it would need to be on another port or another IP address. The "service" will simply act as an endpoint to accept and process your form post. In this case you could setup a webserver using Apache/PHP on a different port than Jekyll -- such as the standard port 80 -- then write a PHP script (e.g., webform.php) that in combination with the static form is setup to respond and process your form.
Note: It is possible to configure both Jekyll and Apache to respond to requests on port 4000. However, both applications (aka servers) can't be running at the same time. The ip:port combination determines which application an internet request is sent to.
I realize the post is old but this may help someone...
The answer by Mike Stewart is excellent and describes what needs to be done to accomplish the goal.
To add to that answer, here are the specifics of how I do this type of development on a Mac.
Configure CORS in Apache
Run the Jekyll site on default port 4000
Run MAMP stack on default port 8888
Code goes in MAMP's htdocs folder (htdocs/your_project)
PHP resides in a separete "php" or other folder inside the "your_project" folder
Jekyll watches the "your_project" folder and compiles to _site as normal
The CORS issues you'll experience can be resolved locally during development several ways. Here is a good resource for enabling CORS on Apache: http://enable-cors.org/server_apache.html
Once you have CORS configured you'll be able to make Ajax calls to the PHP on port 8888.
I'm running the PHP built-in web server alongside the Jekyll server. I opened a second Terminal window and navigated to the _site folder. The command is php -S localhost:8000 (or whatever port you want to use that is not 4000).
Note that I'm using viewing localhost:8000 in the browser, but having the Jekyll server running simultaneously is nice because Jekyll keeps the build updated as I make changes to the source code (refresh required).
After ten years of ASP.net development (i.e. I know very little about PHP), I have just installed my first PHP web site running on a Windows Server 2008 R2 IIS 7.5 web server.
The web server is one of three servers running in a small network.
I have set up DNS to reference the web server.
If I open a browser on any of the local network machines and enter the url, the web site opens and runs perfectly.
If I do the same thing with a PC that is not part of the network I am unable to open the web site.
I'm not sure if this is a PHP or IIS problem (or maybe both).
Can anyone point me in the right direction?
Thanks.
I'd be very surprised if it is a PHP problem. I have found some very odd behaviour in IIS with it apparently tunelling NTLM authentication to access resources on network drives, but you need to start by looking at the simple things first.
Can you access static content on the webserver? If not then you need to have a look at how your DNS, network routing and firewalls are configured.
If you can access static content but not PHP content, then the webserver should be lofgging the reason why it's turning down requests for PHP files - go read your logs.