php - Script Not Working After Being Uploaded To Live Server - php

I am developing a php script locally using XAMPP, it is working on my local server, but after being uploaded to the linux live server, there are many things those won't work. Most of the problems are caused by file path writing.
For example:
require('inc/config.php') working in XAMPP but it does not work on live server or vice versa. So I need to change it to require('config.php') in order to make it able to be called on live server.
That seem like ruining the whole of my works and make the times I invested become useless.
My question:
What's the common solution can I use to prevent that kind of problem? Is using full path to call a file the best practice?
Is there any local development environment for Windows like XAMPP that able to simulate linux server structure, so there will be nothing need to be fixed after finishing development on local server then upload it to linux live server?
Please somebody help..
Best Regards

You don't need to change anything, just in the index.php give your script proper path to your scripts using set_include_path().

Related

How do I use php rename across servers

I need to move a file from one server to another using PHP. What is the proper syntax for this? Everything I have tried has failed, yet I know permissions are correct. I believe it should be something like:
rename('//server1.host.com/folder/file.txt','//server2.host.com/folder/file.txt');
I am trying this on Windows 2012 servers and have access to everything.
The web server running this code currently has the file on it, I'm trying to move the file to another host.

How to run PHP scripts on server without updating server's files

I need to run PHP scripts on server without having to update files it stores - perform testing on real server before deployment. Server has access to database which is inaccessible from outside. For this reason I can't run my scripts locally, I need to run them within server's environment, but I don't want to update files stored on server. Is there any way to do so? Is there a tool for remote PHP debugging?
There are several ways to achieve this thing
You can export database from live server and import it to your local server for testing and debugging purpose.
You can Upload code into a separate folder or subdomain on server to connect with database and test with live server configurations. Once you are satisfied replace live files.
I have found a solution - XDebug for PHP. However as was mentioned in comments, testing against copy of DB and using virtualization is a more common approach, which I personally will probably stick to.
For those who are still determined to go the "hard" way, here is a link to HOWTO on XDebug installation for PHP on Ubuntu - http://ubuntuforums.org/showthread.php?t=525257.

Tiny PHP Script runs fine on dev server, fails on hosted server

Im pretty new to php, Ive got a linux server running php 5.5.9 , and all I want it to do is take whatever is sent to it in an http post, and dump it to a file.
Currently the code I have is this
<?php
file_put_contents("outputfile.txt", file_get_contents('php://input'));
It works 100%, does exactly what I want when its on my own server.
When I upload it to my web server (HostGator) it gets a 500 error. The web server is running php 5.4, Im not sure if thats the issue.
Basically what Im trying to learn is why doesnt this work, and how do I fix it, its a pretty simple script.
John and Louis pointed me to the right answer, it was entirely the permissions on the folder the files were in. The folder was 777 for some reason, and switching it to 755 like the files were fixed it.
I had no idea that could even cause a 500 error

Using PHP scripts from html on mac's default web server

I'm developing a site with PHP and I need to test it using my Web Server on Mac. I installed the server and made sure it's working. Localhost is seeing and serving whatever I put in /Library/WebServer/Documents.
Now I put a test script in the CGI-Executables directory, and tried calling it from an html file inside the Documents directory. It results in this error:
The requested URL /CGI-Executables/SM.php was not found on this server.
The file is there, so I'm assuming it's a configuration issue, and looking around I played with the /etc/apache2/extra/httpd-vhosts.conf file but it seems like an overkill. I don't need a virtual host, and I'm not going to serve anything from my development machine. I just want to develop my site.
You should either put your scripts in /Library/WebServer/Documents/ or call them like /cgi-bin/SM.php Also, are you sure you want cgi scripts or do you just need your php to work? If its the latter, then putting them up in the Document root is a better option than using it as cgi script.

How do I run a file on localhost?

How do I actually run a file on localhost?
I know it is working, but how do I run a file on it, and how do I verify that the file is in fact running on localhost?
Server newbie here, additional questions (I have xampp running Apache 2.2):
From your responses it sounds like I have to type in the path in the browser in order to open the file on the localhost. So, if I want to have the file in a subdirectory, I would have to type the full path including the directory?
Is there a way to have the browser point to the localhost while I am working on my html, instead of having to type in the path all the time?
I am working in Dreamweaver CS3, and want to use include commands (either SSI or PHP), but not have to keep putting my files up on HostGator in order to see if they are working.
What is the best way to do this (please be specific, I know nothing). If there is a detailed tutorial anywhere, really appreciate a link.
Thank you
Ok, thanks for the more specific info, ppl may remove their downvotes now...
What you are proposing is a very common thing to do! You want to run your web application locally without uploading it to your host yet. That's totally fine and that's what your Apache is there for. Your Apache is a web server meaning its main purpose is to serve HTML, PHP, ASP, etc. files. Some like PHP; it first sends to the interpreter and then sends the rendered file to the browser. All in all: it's just serving pages to your browser (the client).
Your web server has a root directory which is wwwroot (IIS) or htdocs (apache, xampp) or something else like public_html, www or html, etc. It depends on your OS and web server.
Now if you type http://localhost into your browser, your browser will be directed to this webroot and the server will serve any index.html, index.php, etc. it can find there (in a customizable order).
If you have a project called "mytutorial" you can enter http://localhost/mytutorial and the server will show you the index-file of your tutorial, etc. If you look at the absolute path of this tutorial folder then it's just a subfolder of your webroot, which is itself located somewhere on your harddrive, but that doesn't matter for your localhost.
So the relative path is
http://localhost/mytutorial
while the absolute path may be
c:/webservices/apache/www
or
c:/xampp/htdocs
If you're working with Dreamweaver you can simplify the testing process by setting up your local server as a testing server in your project settings. Try it! It's easy. Once it's done, you can just press the browser icon with any of your files and it will open on localhost.
You can do it by running with following command.
php -S localhost:8888
I'm not really sure what you mean, so I'll start simply:
If the file you're trying to "run" is static content, like HTML or even Javascript, you don't need to run it on "localhost"... you should just be able to open it from wherever it is on your machine in your browser.
If it is a piece of server-side code (ASP[.NET], php, whatever else, uou need to be running either a web server, or if you're using Visual Studio, start the development server for your application (F5 to debug, or CTRL+F5 to start without debugging).
If you're using a web server, you'll need to have a web site configured with the home directory set to the directory the file is in (or, just put the file in whatever home directory is configured).
If you're using Visual Studio, the file just needs to be in your project.
Localhost is the computer you're using right now. You run things by typing commands at the command prompt and pressing Enter. If you're asking how to run things from your programming environment, then the answer depends on which environment you're using. Most languages have commands with names like system or exec for running external programs. You need to be more specific about what you're actually looking to do, and what obstacles you've encountered while trying to achieve it.
Looking at your other question I assume you are trying to run a php or asp file or something on your webserver and this is your first attempt in webdesign.
Once you have installed php correctly (which you probably did when you got XAMPP) just place whatever file you want under your localhost (/www/var/html perhaps?) and it should run. You can check this of course at localhost/file.php in your browser.
Think of it this way.
Anything that you type after localhost/ is the path inside the root directory of your server(www or htdocs).
You don't need to specify the complete path of the file you want to run but just the path after the root folder because putting localhost/ takes you inside the root folder itself.
i am working in VScode currently. i was wanting to run my html page just to see all my main elements.
1) first, in vs, right click desired html file and choose "copy path". do not choose relative.
2) finally, paste html path in address bar (i used chrome) and hit enter. your html page should display. hope this helps someone out.

Categories