So basically, I ran XAMPP on my Mac and I built a pretty huge CI website. It worked perfectly.
I then when to make a DigitalOcean account, installed Ubuntu+Lamp, put my database there, and then uploaded my website.
On the very first page, I get this error:
Unable to load the requested file: Login_view.php
I checked, and indeed there was no file called Login_view.php WITH AN UPPERCASE L. But there was a file called login_view.php, that on my XAMPP server it was able to load perfectly well.
I guess this has to do with case sensitivity, and since it's 1:1 the exact same CI project I have on my localhost, I guess it's something to do with the configuration of the server.
How can I configure my Ubuntu server, or the Apache, to be case insensitive with CI?
You can use Apache mod_speling with the CheckCaseOnly directive.
Related
My local installation of a Typo3 Page worked perfectly fine on a Xampp Server but when I tried moving it to my webserver I get the error
The Fluid template files [Path to my layout.html] could not be loaded.
More information regarding this error might be available online.
I transferred the files from Htdocs with FTP and the database with phpmyadmin import/export.
What could cause this error?
In this generality there are multiple reasons possible:
Can the apache user access the files? (the FTP user mostly is different than the apache user and the correct file- und folder-permissions can be lost easily)
Have you the same filenames and pathes?
don't use the windows folder separator \ on unix-servers.
is your local file systems case insensitive? Linux is case sensitive and /test/is another folder than /Test/.
Did you set your correct domain record on the pagge tree root?
If not please set the domain record to the actual url you try to reach the page.
i was working on Codeigniter Application in WAMP and then i had to move my project to a LINUX machine.
Now When i have installed LAMP there. but When i try to access my application i get an error:
An Error Was Encountered
Unable to load the requested file: helpers/url_helper.php
i checked my autoload.php. This worked on my windows don't why its not working here.
$autoload['helper'] = array('url','html','crm_helper','form');
Can you please guide me where i am going wrong?
From your modified question, it seems that you are in fact missing the url_helper in your autoload line. It should be like this:
$autoload['helper'] = array('url','html','url_helper','form');
Also include the exact version of codeigniter that you've installed, in your question.
This happened to me ! on my local windows system it was fine ,but when i migrated to Linux server (my hosting server )then it generate the same error: it was due to case-sensitivity of Linux.
these are two deffrent words in linux:
'crm_helper'
'Crm_helper'
so i suggest you to check your files name ,
Linux system crm_helper and Crm_helper are two different files.
remove _helper while loading any helper file / code
I want to start learning php, I install apache 2.2 and I want to run my first.php file, I look for www folder in the installation folder of ApacheSoftwareFoundation but I couldn't find it.
here's the files in the apache
I tried to put my php file in htdocs but it doesn't work , can some one help ?
Edit
Doesn't work means when I make http:localhost/first.php , returns Unable to connect
Now the apache is running, when I open htt'://localhost/
returns "it works"
but when I open any php file, it opens as-is ?!
You'll need to check a couple of things...
Make sure the Web Server is running ,either the service
or the program, is running and that you have the correctly configured the Virtual Directories.
If the web server just outputs the
content of the .php file, it could
mean that you don't have mod_php
installed. Meaning the server does
not have the Mime type registered so
it will just try to treat it as a
text file ...
And as your on windows you might consider using something like XAMPP. It gives you a Full Working AMP (Apache Mysql Php) Stack with one install and a easy control manager to start/stop the servers. Other wise do a couple of Google searches on how to install the php module for your Web Server on Windows
Update
To start the server try executing the executable bin/httpd.exe .
Now the apache is running, when I open
http://localhost/ returns "it works"
but when I open any php file, it opens
as-is ?!
A default installation of Apache on windows does not include the necessary modules to run PHP. After installing Apache, you must either:
Install PHP separately and follow the instructions described here to configure Apache to use the installed version of PHP to serve .php files. I've been through this and took me hours to get every thing to work.
Recommended for you: uninstall Apache; install WAMP instead.
if you look in your httpd.conf file you will find the default root directory, it doesnt have to be called www. It is the htdocs by default.
error 500 covers a whole host of things. from compile error, to permissions.
Have you put a simple file of
<?php
echo "test";
?>
As your test php page to rule out other issues?
You need to:
Construct your URI correctly: http://localhost/first.php (with the //)
Ensure that Apache is running
all files in htdocs can be referenced from outside
Just put a basic file named index.php
and visit site http://localhost/
In general type in http://localhost/filename
You say that you get a connection error when you try to go to your webpage. Since it looks like you're using Windows Vista or 7, make sure you're running Apache as an administrator; it can't bind to port 80 otherwise. Also check that other programs like Skype aren't binding to port 80. If you still can't find the problem, check the error log. (logs/error.log by default I think)
The problem is that Apache was installed but not started
If you are using xampp start it and then start apache through control panel
for others look for similar instruction
Oooops I did it again.
My site worked perfectly locally
My development machine is a windows WAMP2 setup
My server is a CentOS 5.5 APACHE 2.2 PHP5 seup
I'm getting a 404 on the codeigniter site that I've deployed, and I really can't make out what's wrong, so please help me find the error.
It's the root url. I haven't set up dns so it's just the ip address of the server. It was showing the standard apache page before I uploaded codeigniter. I've looked over the config file, and it looks ok. Could it be a file permissions error? i have set chmod o+rw in the whole /var/www/html dir. the error_log in the httpd shows nothing
I've tried testing if it was the mod_rewrite module, but I created a test directory with a .htaccess file with RewriteEngine ON that didn't give me an error, so that can't be it.
In codeigniter I've set the log_threshold to 4 in the config, but I don't get any log messages, so I can't really make out if it's a pre-> codeigniter error, but I really don't think it is, as it's loading my Error view, still Why isn't there any log being written, what's it about?
Any help would be extremely appreciated as I'm running on fumes to get this working...
Update
Thanks to #jondavidjohn I have discovered that hitting the controller directly IE:
http://addr/index.php/GeoController/markers/
Will provide me with a controller specific error saying:
unable to locate your model "modelname"
SOLVED
Thanks to #jondavidjohn, and #timdream for giving me the clues to solve this one. It was a naming problem, I had filenames that were camelcased, and they can only be small from what I understand now, so the ROUTE was innefective in that it lead to Site, but should've lead to site although I had a Site.php I had to change it and the route to site.php
make sure you have the correct settings in system/application/config/config.php.. pay special attention to
$config['base_url'] = "http://www.example.com";
Make sure you are putting in the root domain of your site, also check your routing config and make sure you have the correct default controller set in system/application/config/routes.php
I recently started using a fresh install of codeignitor 3.0 and had no problems on my dev server (Windows) then when I moved to my live server (Linux) I started getting a 404 error.
The reason for this is that in 3.0 you are meant to capitalise the first letter of your controllers/models and also the file name.
e.g.
class Test_model extends CI_Model {
Test_model.php
Hope this helps some people who end up here!
For reference:
http://www.codeigniter.com/userguide3/installation/upgrade_300.html
$config['uri_protocol'] could also play a part. It's default to AUTO, which looks for environment variable that contains the actual URL automatically.
I had a web app that fails when I switch to php-cgi from mod_php for my server. Changing the config to REQUEST_URI solves the issue. I found the valve by digging phpinfo() outputs, you could try to do that.
My first bet is that you were developing this and modified the .htaccess file.
HOWEVER, if you went from a Windows -> Linux system change (dev on Win, prod on nix) then you have to keep the Controller names in mind, if a file on windows was "Home.php", and you used "home.php" in the config as your default route, then it will fail.. as there is no "home.php" file.
Home.php != home.php
Linux is case sensitive. Check that out, it might be a simple thing but could cause snags.
Again I am just guessing due to lack of details.
I am trying to run web application scripted in PHP on windows server 2008. I have configured PHP (as fastcgi) and IIS. Everything goes fine except the following scenario.
In the php.ini document "doc_root" edited with the correct root path for my php projects which is "c:\inetpub\wwwroot\". I created a new site on IIS and mapped it's path to "c:\inetpub\wwwroot\application1". When I try to open this site, I see that somehow (IIS or PHP no idea ) does nt run my new application on the path "c:\inetpub\wwwroot\application1". It tries to run on "c:\inetpub\wwwroot\", which returns 404 of course. What am I missing here ?
Check to see whether you are changing and loading Correct php.ini file using phpinfo()
For those who have the same problem;
I have figured out the problem. setting "doc_root" is not right. As I commented that property in php.ini file it got ok.
Also checking the following url was helpful:
http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-7/
Its written there that you can make your php web sites use seperate php.ini files. I found this link really usefull.
Don t want to choose my answer as the right one but have to. Hope this helps.