I want to creat a folder for all user connect and include if use php command.
Example:
/folder/file.php
I can use php command to include in php file
My file: /home/user/public_html/test.php
PHP Code:
include('/folder/file.php');
Please help me
I try with root permission and chmod 0777 for all folder and file but can not include
try checking the apache logs
tail -f /etc/httpd/logs/error_log
While you are loading the page test.php in browser. See what you gets.
Also where is the file test.php is located .
Related
I have downloaded the yiidebugtb extension and put it in the protected/extensions directory, so the path to the XWebDebugRouter.php file is protected/extensions/yiidebugtb/XWebDebugRouter.php. Then I updated the main.php config file so that I added this line 'application.extensions.yiidebugtb.*', in the 'import' section, so this extension is loaded automatically.
However, when I try to access the main page of my application I am getting this error
include(XWebDebugRouter.php): failed to open stream: No such file or directory
in YiiBase.php(421). Anyone could help? Thanks.
The directory
protected/extensions/yiidebugtb
had incorrect access rights. It only had rwx------, after chmod to rwxr-xr-x it is alright.
I recently had to reinstall Ubuntu and everything else as my SSD crashed.
I've got Apache/MySQL/PHP set up and can access localhost/ without problems. Running PHP and MySQL works fine as well.
I keep my projects in a Dropbox folder (since the crash) located at /home/powerbuoy/Dropbox/Projects/ and have set up VHOSTs that point to some of the projects in there. I've also set up /etc/hosts so that I can access my projects through http://project-name.dev.
However, when I try to visit http://any-project.dev all I get is 403 forbidden. I've run chmod -R 777 Projects/ and all the files and folders are now green in the terminal. That didn't help.
I checked the error-logs and they say:
[crit] [client 127.0.0.1] (13)Permission denied: /home/powerbuoy/Dropbox/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
But there isn't even supposed to be a .htaccess file anywhere there.
I even set up a completely empty project (/home/powerbuoy/Dropbox/Projects/test/index.php with just <?php phpinfo() inside), set up a VHOST and a http://test.dev URL. I get the same error here.
Any ideas?
Thanks
Edit: I tried moving my test project to the desktop (/home/powerbuoy/Desktop/test/) and now it works :P
Perhaps it has something to do with the projects being located inside the Dropbox folder??
Most probably this is a chmod issue. You must change all trees chmod settings. If you have ssh access you can try this commands:
chmod 755 $(find /home/user/public_html -type d)
chmod 644 $(find /home/user/public_html -type f)
Please replace /home/user/public_html part to 'your real path'.
Apparently simply chmoding the directory the project is in wasn't enough. I had to chmod all the directories higher up in the tree as well.
So even though my VHOST pointed to /home/powerbuoy/Dropbox/Projects/AProject/ simply chmoding /AProject/ is not enough but it has to be done all the way from /home/powerbuoy/ it seems.
The reason you had to chmod the permission going up the directory tree is that Linux doesn't permit you to simply access a folder such as /home/jsmith/my_folder directly. You have to also have execute permissions to / /home/ and /home/jsmith . The execute bit allows the affected user to enter the directory, and access files and directories within it.
I have ~/public_html and few subdirectories with sites inside. But I have also ~/projects with all my projects (not only websites). I'm trying to link ~/projects/X with ~/public_html/X.
ln -s ~/projects/X ~/public_html/X
But I have error 403, access forbiden. Directory and files into it have rx rights. How should I do that?
You should enable "FollowSymLinks" option for your public_html folder.
OK first of all, I am a PHP programmer but I have never done anything with CGI and don't know what it is. I know it stands for Common Gateway Interface, but I do not know what it does or what its for.
I was just told that I can upload a shell script to my cgi-bin folder and execute it.
I made a shell script myscript.sh and uploaded it to my cgi-bin folder. The first thing I noticed was my cgi-bin folder is a sibling to my root directory not a child. So I do not know how I would access it?
So I created a directory under my root called cgi-bin2 and put my script there (and chmod them to 755). Then I accessed it from my browser, and all it did was download the file.
Am I missing something?
CGI should send a Content-Type header:
#!/bin/sh
printf "Content-Type: text/plain\n\n"
your_commands_here
Save as anything.sh (extension does not matter) in your cgi-bin folder and chmod 755.
cgi-bin does not have to be a child of your public html folder, it can be an alias.
I have a feeling that Apache is using a different php.ini file that the one I am editing. I make a change in my php.ini file, restart Apache, and the change doesn't take affect. So I don't know what to do anymore.
Any ideas?
Update: Found out it's using the right php.ini file...but I still don't know what to do!
To find the file that's being run by PHP, create a phpinfo file (just <?php phpinfo();?>) and look for the 'Configuration File (php.ini) Path' directive.
from the command line, run
php -i |grep "php.ini"
This will describe the location php is loading its ini file from. You can reconfigure the php.ini location by recompiling php.
The output from phpinfo() will contain this. When using PHP as an Apache module, it can be configured using PHPIniDir in httpd.conf (or similar).
To get the php.ini file which is being used by Apache you will probably have to add phpinfo() into a .php file and open it in the browser. As php -r "phpinfo();" | grep php.ini will outout the same as php --ini would. Which php.ini is used for the CLI.
Question for you, what platform are you running on unix or windows?
If it is unix based, check if your php.ini is residing in the same directory as /etc/httpd. Again, installation of apache can vary so check...or issue the command "find / -name php.ini -print" (without quotes) to see which one is it you are using
Ok. Since you said you have found the correct php.ini, sounds like something is missing when you edited the php.ini and reloaded apache. Look in the log directory /var/log/httpd for error_log and check to see if there was errors...that would be a start!