php won't upload images? - php

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/

Related

Permission Issues

Having an issue with unlink() even when executing a script as root.
Getting this error:
Warning: unlink(/var/www/html/services/training/add.php): Permission denied in /var/www/html/sites/services/functions.php on line 228
The owner of the file is root and the file permissions are 775 so it should work.
Are there any further steps I can take to troubleshoot this? Not sure where to go from here...
Open your terminal .. I guess you are an ubuntu user
so just do this
sudo chmod 777 -R /var/www/html/services/
By Default your access is limited . So you have to extend your access using this chmod command :) .. that's it :)

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

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")

fopen() Permission Denied despite having correct file directory

$handle = fopen('/Applications/XAMPP/xamppfiles/htdocs/test/file.txt', 'w');
I tried doing the above and every time I try it, the following statement appeared on my browser:
Warning:fopen(/Applications/XAMPP/xamppfiles/htdocs/test/file.txt)
[function.fopen]: failed to open stream: Permission denied in
/Applications/XAMPP/xamppfiles/htdocs/test/index.php on line 26.
I tried looking through answered questions with the same type of questions but most of the things I tried did not work. For example, writing the full directory...
Maybe, you have no premissions to acces the file. One of the answet, is that, you must change CHMOD to e.g. 777. You can co it with your ftp explorer or with PHP.
chmod("/somedir/somefile", 777);
By default when XAMPP is installed, the htdocs folder does not have any read permissions. You can change the permissions through the terminal like this.
cd /Application/XAMPP/xamppfiles/htdocs/test/
sudo chmod 0664 file.txt
Alternatively, you can recursively set all the permission level of all files and folders
cd /Application/XAMPP/xamppfiles/
sudo chmod -R 0664 htdocs/
You could chmod to 777, but that is risky security. What I'm guessing you really want is change ownership of the file. You can do this using chown. PHP usually runs as user www-data, so you'd run a command something like this.
sudo chown www-data:root path/to/file.ext
If you're file permission on the file was something normal like 664, that'd give PHP the 6 permission (Read and Write) instead of the 4 (just Read).

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