How do I change chmod settings to allow for file upload? - php

I've been trying to get get my PHP script to upload files. However, I come across this error:
Warning: move_uploaded_file(images/faceBackground.png) [function.move-uploaded-file]: failed to open stream: Permission denied in /f5/mvcsf/public/portfolios/members_profile_chg.php on line 31
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/f5/mvcsf/tmp/phpjY9EBB' to 'images/faceBackground.png' in /f5/mvcsf/public/portfolios/members_profile_chg.php on line 31
After scouring multiple solutions on Stackoverflow, I got the hint that I should change the chmod settings. So I went into Filezilla and tried to change the file permissions for members_profile_chg.php(which contains the upload script) to 0755 and then to 0644, but neither worked. Any ideas? I'm using nearlyfreespeech as my web server if that makes any difference.

chmod 0777 the images folder instead of files.

Make sure your images directory is accessible and writeable (rwx) for the server user (probably apache).
~$ chmod g+rwx,o+rwx images/
Note that this makes the directory world-writable. Better is to only give the server user access (assuming it is apache):
~$ chown apache images/
~$ chmod g+rwx,o+rx images/
More information can be found here.
The numerical values you want to try are 0775 or 0777.

give permission to target folder folder in which permission 0755 or 0777 will work .also make sure that there is a folder named 'images' in the 'portfolios'
if the images is on the root try
move_uploaded_file("/images/faceBackground.png")

Related

php won't upload images?

I have a php script with no erros (I tested it in other servers), the problem is, in this server I cannot upload images from php.
I add 755 to folder, php.ini file upload is on, max file size is 12mb.
I run this:
chown apache /var/www/html/img-img/
chmod 755 /var/www/html/img-img/
but also didn't solve my problem.
my php also try to create a folder to upload images inside img-img (no success):
$pasta = date("dmy");
$pasta_dir2 = "img-img/$pasta";
if(!file_exists($pasta_dir2)){
mkdir($pasta_dir2, 0755);
}
I have this warnings:
move_uploaded_file(img-img/14719222_886454304825512_8860750091242176512_n.jpg): failed to open stream: Permission denied in /var/www/html/teste.php on line 38, referer: http://example.com/teste2.php
PHP Warning: move_uploaded_file(): Unable to move '/tmp/phptZYSam' to 'img-img/14719222_886454304825512_8860750091242176512_n.jpg' in /var/www/html/teste.php on line 38, referer: http://example.com/teste2.php
any ideas how to solve this without break server security?
this solve my problem:
I don't know what it does, but works... if anyone knows, please, answer this and let me know.
sudo chcon -t httpd_sys_rw_content_t /var/www/html/img-img -R
Check if img-img folder exist and try to set 744 permission to all the folders and subfolders of html using chmod -R 0755 /var/www/html/

move_uploaded file:failed to open stream: Permission denied in /srv/http/upload.php

I am trying to run a server on ArchLinux, I have apache and PHP running normally, but i can't upload a file with PHP. I have seen many questions of this sort on Stackoverflow and I seem to have used all the suggestions I found, but I still get a
failed to open stream: Permission denied in /srv/http/upload.php
error.
To be precise
Warning: move_uploaded_file(): Unable to move '/tmp/phpZvJK1l' to '/home/administrator/SCRIPTS/tr/solution.cpp' in /srv/http/upload.php on line 20
I set the permissions for /tmp/, /home/administrator/SCRIPTS/tr and /srv/http to 777 (I know thats not right, but I am working locally right now and I want to get it working somehow).
Also I set all the owner of these directories to http (that is the user running PHP), but the thing still doesnt work.
Some PHP configurations do not allow file access outside the users docroot directory, so you may not have access to /tmp from within PHP. Try uploading your file(s) to a temp directory within your /home/administrator directory - preferably to a directory that isn't accessible to web browsers (a sibling directory to your docroot).
give permission to the /tmp dir :
sudo chmod 777 /tmp
As an Arch user I have the same issue when I work on web projects.
I'll recommend you to see this part of the Arch Wiki
User directories are available by default through http://localhost/~yourusername/ and show the contents of ~/public_html (this can be changed in /etc/httpd/conf/extra/httpd-userdir.conf).
So do to so you have to create the ~/public_html directory then
You must make sure that your home directory permissions are set properly so that Apache can get there. Your home directory and ~/public_html must be executable for others ("rest of the world"):
$ chmod o+x ~
$ chmod o+x ~/public_html
$ chmod -R o+r ~/public_html
After that you don't need to put your file under /srv/http/ you can now use ~/public_html as development directory.

Warning: require(file): failed to open stream

I've changed development machines and have moved across one of my projects. However, when I try to run one of the files in this project, I get the following error message:
Warning: require(/var/www/libraries/facebook.php): failed to open stream: Permission denied in /var/www/logout.php on line 11 Fatal error: require(): Failed opening required '/var/www/libraries/facebook.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/logout.php on line 11
Anyone know why this would be happening?
It might be that I have the permissions set incorrectly. What should the file and folder permissions be?
All files are currently set to -rw-r--r-- and folders are set to drwx------, is that right?
Sometimes when things get moved paths can change. The error indicates that the file '/var/www/libraries/facebook.php' could not be found. Make sure that the file exists in that location.
Sometimes the web server runs with different credentials than the user. Try setting the directories to drwxr-x---, and the files to -rw-r--r--. If that doesn't work, then try changing the directories to drwxr-xr-x.
You are getting a Permission denied error which means that your libraries folder can only be accessed by the root user. Try to execute the script as a root user or give read permissions to the folder.
## use only for files ##
chmod 0444 /var/www/*
chmod 0444 /var/www/*.php
TO set directories in read-only mode, enter:
## use only for dirs ##
chmod 0544 /var/www/
chmod 0444 /path/to/your/dir/
You say the permissions are drwx------. Try changing to the /var/www/libraries directory in the shell as a non-root user. If you get an error there, the web server will also. You might need 755 permissions so the server can traverse to that directory. Just be careful what else is in that folder since it could be readable by the whole world.

Ubuntu Server won't upload files with PHP 'move_uploaded_file'

I'm trying to upload files using my Ubuntu Virtual Server.
The PHP function moving the uploaded files returns the following error:
"Warning: move_uploaded_file(files/Site Logo.png): failed to open stream: Permission denied in /var/www/test.php on line 5 Warning: move_uploaded_file(): Unable to move '/tmp/phpZB7Mxi' to 'files/Site Logo.png' in /var/www/test.php on line 5"
The directory has permissions 0777 which I set through the SSH and it still doesn't upload. PHP.ini is configured to upload ON and stuff but no luck. I'd guess its permissions problems but I have set it to pretty much RWX for every user?
My code originally was too complex for a video system so I tried a basic code like below:
$file = $_FILES['video']['name'];
echo $file;
move_uploaded_file($_FILES['video']['tmp_name'],"files/".$file);
echo "Done";
This wouldn't work either. So I am guessing it's how the server is configured?
I was getting the same problem, it was permission problem. Just
sudo chmod 777 /var/www/work_pathname/the_upload_pathname/*
A few things to check:
You did check the permissions on files/ using ls -l?
Did you run
chmod 777 /var/www without the -R flag?
Still sounds like a permissions error, something small you might have missed...

Why is my folder not being visible to the web? or upload-able?

For some odd reason I can no longer access my images in my image folder or any of its contents https://ksc105.kscserver.com/images/list.png or https://ksc105.kscserver.com/images/bold.png. I orginally could not upload files to images and attempted to use chmod a=rw /var/www/images but that did not help. I also upgrade php5 to the latest ubuntu build. What can I do to fix this issue, and what can I do to fix my upload issue?
The current images do not display becuase I get a 403 error:
Forbidden
You don't have permission to access /images/bold.png on this server.
Apache Server at [..].com Port 443
Upload gives me:
warning: move_uploaded_file(/[..].png): failed to open stream: Permission denied in [..]/images.php on line 37
Warning: move_uploaded_file(): Unable to move '/var/tmp/[...].png' to '/var/www/images/nzoom.png' in [..]/images.php on line 37
The [..] is just me taking out useless variables.
PHP 5 on Apache 2 on Ubuntu 9.
I suspect you've messed up the permissions on the directory. You probably want to do:
# chmod 757 /var/www/images
# chmod 644 /var/www/images/*.*
to allow the nobody/apache webserver user to access them
This is a permissions related probably most certainly. I suggest you chmod your:
files to 0644 (or 0666 if Apache is not running as the same [FTP] user)
directories to 0755 (or 0777 if Apache is not running as the same [FTP] user)
This way they will always be executable and you have further write permissions from within your scripts.

Categories