I have a really strange error. PHP can't read a file that do exists... Some ideas? I have not SELinux installed. I'm using fedora 17 and php 5.4.
I already try everything I know, but the problem still remains.
[root#sqd var]# ls -lia
total 92
8194 drwxrwxrwx. 23 root root 4096 ago 17 10:30 .
2 dr-xr-xr-x. 19 root root 4096 ago 13 16:00 ..
32139 drwxr-xr-x. 2 root root 4096 may 22 13:42 account
288 drwxr-xr-x. 2 root root 4096 feb 3 2012 adm
13 drwxr-xr-x. 14 root root 4096 ago 8 10:26 cache
796005 drwxr-xr-x 2 root root 4096 feb 6 2012 cvs
289 drwxr-xr-x. 3 root root 4096 ago 21 18:07 db
290 drwxr-xr-x. 3 root root 4096 may 22 13:42 empty
263682 drwxr-xr-x. 3 root root 4096 ago 7 11:15 ftp
291 drwxr-xr-x. 2 root root 4096 feb 3 2012 games
35931 drwxrwx--T. 2 root gdm 4096 jun 8 16:05 gdm
292 drwxr-xr-x. 2 root root 4096 feb 3 2012 gopher
15 drwxr-xr-x. 45 root root 4096 ago 10 10:42 lib
296 drwxr-xr-x. 2 root root 4096 feb 3 2012 local
308 lrwxrwxrwx. 1 root root 11 may 22 13:39 lock -> ../run/lock
12 drwxr-xr-x. 14 root root 4096 ago 26 03:17 log
297 lrwxrwxrwx. 1 root root 10 may 22 13:39 mail -> spool/mail
298 drwxr-xr-x. 2 root root 4096 feb 3 2012 nis
931987 drwxrwxrwx 3 nobody nobody 4096 ago 17 10:32 nodejs
299 drwxr-xr-x. 2 root root 4096 feb 3 2012 opt
300 drwxr-xr-x. 2 root root 4096 feb 3 2012 preserve
307 lrwxrwxrwx. 1 root root 6 may 22 13:39 run -> ../run
301 drwxr-xr-x. 15 root root 4096 may 22 13:43 spool
305 drwxrwxrwx. 5 nobody nobody 4096 ago 30 14:13 tmp
262637 drwxr-xr-x. 7 root root 4096 ago 7 11:20 www
306 drwxr-xr-x. 2 root root 4096 feb 3 2012 yp
[root#sqd var]# ls -lia tmp/
total 216
305 drwxrwxrwx. 5 nobody nobody 4096 ago 30 14:13 .
8194 drwxrwxrwx. 23 root root 4096 ago 17 10:30 ..
3030 -rwxrwxrwx 1 nobody nobody 199397 ago 30 14:13 file_thumb_5363_1_0.jpg
But
<?php
highlight_file(__FILE__);
var_dump(file_exists('/var/tmp/file_thumb_5363_1_0.jpg'));
print out:
bool(false)
Fedora 16 introduced the concept of a "private tmp" /tmp and /var/tmp I would throw my 2 cents on that direction.
From the manual:
2.3.3. Services Private /tmp
A number of services managed by systemd have been modified to make use of its ability to provide them with a
private /tmp directory. Privileged services using /tmp and /var/tmp
have previously been found to be open to being interfered with by
unprivileged users, potentially leading to privilege escalation. Using
private /tmp directories for services prevents this style of exploit.
The directive added to the systemd unit files for the modified
services is:
[Service]
PrivateTmp=true
Related
I was following this video https://www.youtube.com/watch?v=gC8sLGB8SSM&index=77&list=PL442FA2C127377F07 . I am using fedora. I am able to read a file using this code:
$fileHandle = fopen('test.txt', 'r') or die('Unable to open test.txt');
echo fread($fileHandle, filesize('test.txt'));
But when I change 'r' to 'w', it dies and prints 'Unable to open test.txt'.
To check that I have permissions to read and write to a file, I typed this on terminal, ls -l /var/www/html. It showed:
total 8
-rwxr-xr-x. 1 Hemil apache 131 Jul 6 11:09 index.php
-rw-rw-r--. 1 Hemil Hemil 12 Jul 6 11:09 test.txt
I noticed that apache did not have the permission to read and write to a file, I did this: sudo chown Hemil:apache /var/www/html. But again when i checked the permissions, it prints the same as above.
EDIT: I forgot to add that I am not on a server. I am on localhost.
EDIT: On #Nic3500 's recommendation, i add the following:
ls -al /var:
total 108
drwxr-xr-x. 23 root root 4096 Apr 25 12:09 .
dr-xr-xr-x. 18 root root 4096 Jul 7 08:17 ..
drwxr-xr-x. 2 root root 4096 Apr 25 12:06 account
drwxr-xr-x. 2 root root 4096 Feb 7 15:11 adm
drwxr-xr-x. 17 root root 4096 Jul 5 10:21 cache
drwxr-xr-x. 2 root root 4096 May 31 10:46 crash
drwxr-xr-x. 3 root root 4096 Apr 25 12:06 db
drwxr-xr-x. 3 root root 4096 Apr 25 12:06 empty
drwxr-xr-x. 2 root root 4096 Feb 7 15:11 ftp
drwxr-xr-x. 2 root root 4096 Feb 7 15:11 games
drwxr-xr-x. 2 root root 4096 Feb 7 15:11 gopher
drwxr-xr-x. 3 root root 4096 Jun 15 03:23 kerberos
drwxr-xr-x. 59 root root 4096 Jul 5 11:55 lib
drwxr-xr-x. 2 root root 4096 Feb 7 15:11 local
lrwxrwxrwx. 1 root root 11 Apr 25 12:03 lock -> ../run/lock
drwxr-xr-x. 18 root root 4096 Jul 5 11:52 log
drwx------. 2 root root 16384 Jul 4 22:54 lost+found
lrwxrwxrwx. 1 root root 10 Feb 7 15:11 mail -> spool/mail
drwxr-xr-x. 2 root root 4096 Feb 7 15:11 nis
drwxr-xr-x. 2 root root 4096 Feb 7 15:11 opt
drwxr-xr-x. 2 root root 4096 Feb 7 15:11 preserve
lrwxrwxrwx. 1 root root 6 Apr 25 12:03 run -> ../run
drwxr-xr-x. 11 root root 4096 Apr 25 12:06 spool
drwxrwxrwt. 16 root root 4096 Jul 7 18:26 tmp
-rw-rw-r--. 1 root root 63 Apr 25 12:09 .updated
drwxr-xr-x. 4 root root 4096 May 1 14:24 www
drwxr-xr-x. 2 root root 4096 Feb 7 15:11 yp
ls -al /var/www
drwxr-xr-x. 4 root root 4096 May 1 14:24 .
drwxr-xr-x. 23 root root 4096 Apr 25 12:09 ..
drwxr-xr-x. 2 root root 4096 May 1 14:24 cgi-bin
drwxr-xr-x. 2 Hemil apache 4096 Jul 6 16:17 html
ls -al /var/www/html
drwxr-xr-x. 2 Hemil apache 4096 Jul 6 16:17 .
drwxr-xr-x. 4 root root 4096 May 1 14:24 ..
-rwxr-xr-x. 1 Hemil apache 102 Jul 7 16:55 index.php
-rw-rw-rw-. 1 Hemil apache 12 Jul 6 11:09 test.txt
all I struggle with one permission problem with my wordpress.
As you can see
ls -la wp-content/themes/impreza/
total 144
drwxr-xr-x 9 root root 4096 Oct 7 16:49 .
drwxr-xr-x 4 root root 4096 Oct 7 11:21 ..
-rwxr-xr-x 1 root root 330 Oct 7 10:33 404.php
-rwxr-xr-x 1 root root 340 Oct 7 10:33 archive.php
-rwxr-xr-x 1 root root 339 Oct 7 10:33 author.php
-rwxr-xr-x 1 root root 349 Oct 7 10:33 comments.php
drwxr-xr-x 2 root root 4096 Oct 7 16:48 config
drwxr-xr-x 2 root root 4096 Oct 7 10:33 css
drwxr-xr-x 10 root root 4096 Oct 7 10:33 demo-import
-rwxr-xr-x 1 root root 337 Oct 7 10:33 footer.php
-rwxr-xr-x 1 root root 355 Oct 7 10:33 forum.php
drwxr-xr-x 15 root root 4096 Oct 7 10:34 framework
drwxr-xr-x 3 root root 4096 Oct 7 10:34 functions
-rwxr-xr-x 1 root root 1105 Oct 7 10:33 functions.php
-rwxr-xr-x 1 root root 337 Oct 7 10:33 header.php
-rwxr-xr-x 1 root root 359 Oct 7 10:33 header-shop.php
-rwxr-xr-x 1 root root 361 Oct 7 10:33 index.php
drwxr-xr-x 2 root root 4096 Oct 7 10:33 js
-rwxr-xr-x 1 root root 325 Oct 7 10:33 page.php
-rwxr-xr-x 1 root root 18970 Oct 7 10:33 screenshot.png
-rwxr-xr-x 1 root root 388 Oct 7 10:33 searchform.php
-rwxr-xr-x 1 root root 344 Oct 7 10:33 search.php
-rwxr-xr-x 1 root root 645 Oct 7 10:33 single.php
-rwxr-xr-x 1 root root 365 Oct 7 10:33 single-us_portfolio.php
-rwxr-xr-x 1 root root 288 Oct 7 10:33 style.css
-rwxr-xr-x 1 root root 15056 Oct 7 16:49 us-logo.png
drwxr-xr-x 3 root root 4096 Oct 7 10:34 vendor
-rwxr-xr-x 1 root root 4341 Oct 7 10:33 wpml-config.xml
in my themes folder everything is with equals permissions but I can't access them all. For example
NOT VISIBLE - http://www.aniabuchi.com/wp-content/themes/impreza/us-logo.png
VISIBLE - http://www.aniabuchi.com/wp-content/themes/impreza/screenshot.png
The theme itself has activeted, but when I've try to active the plugins it say also "Please adjust file permissions to allow plugins installation".
This is my second wordpress installation and the only difference I've made is to use only one wp-contents folder
/* Default value for some constants if they have not yet been set
by the host-specific config files */
if (!defined('ABSPATH'))
define('ABSPATH', '/var/www/aniabuchi/');
if (!defined('WP_CORE_UPDATE'))
define('WP_CORE_UPDATE', false);
define('DB_HOST', 'localhost');
if (!defined('WP_CONTENT_DIR') && !defined('DONT_SET_WP_CONTENT_DIR'))
define('WP_CONTENT_DIR', '/var/www/aniabuchi/wp-content');
try to make images 777 to see if you can access them.
for plugin, you should check your "wp-content/plugins" folder permission, not themes.
You need to make sure the owner assigned to the files and directories is the web server user, otherwise wordpress will fail all plugin installations or updates regardless of file/folder permissions. On ubuntu/debian it's usually www-data, and on centos/rhel/fedora it's apache.
Try this and check - it might do the trick:
# chmod 755 -R <path_to_your_webroot_folder>
# chown root:root -R <path_to_your_webroot_folder>
I have a dedicated server with Centos6 and cPanel, all I want is to install Magento 2 on this server. My problem is with files and folders permissions. in the Magento 2 documentation I need to set this permissions find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \; && chmod u+x bin/magento . when I set this permision to my home/username/public_html I get this error in browser.
Forbidden
You don't have permission to access / on this server.
Server unable to read htaccess file, denying access to be safe
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
is anyone who can point me in one direction to solve this?
thank you
**Output**
**ls -al /path/to/magento**
drwxr-x---. 13 nobody nobody 4096 Jan 29 18:30 ./
drwx--x--x. 10 quick quick 4096 Jan 29 18:29 ../
drwxr-xr-x. 4 nobody root 4096 Jan 29 18:30 app/
drwxr-xr-x. 2 nobody root 4096 Jan 29 18:30 bin/
drwxr-xr-x. 2 nobody quick 4096 Jan 29 18:28 cgi-bin/
-rw-r--r--. 1 nobody root 437404 Jan 28 04:12 CHANGELOG.md
-rw-r--r--. 1 nobody root 1851 Jan 28 04:10 composer.json
-rw-r--r--. 1 nobody root 315984 Jan 28 04:12 composer.lock
-rw-r--r--. 1 nobody root 3425 Jan 28 04:12 CONTRIBUTING.md
-rw-r--r--. 1 nobody root 10011 Jan 28 04:12 CONTRIBUTOR_LICENSE_AGREEMENT.html
-rw-r--r--. 1 nobody root 631 Jan 28 04:12 COPYING.txt
drwxr-xr-x. 4 nobody root 4096 Jan 29 18:30 dev/
-rw-r--r--. 1 nobody root 1032 Jan 28 04:10 .gitignore
-rw-r--r--. 1 nobody root 2918 Jan 28 04:12 Gruntfile.js
-rw-r--r--. 1 nobody root 7592 Jan 28 04:12 .htaccess
-rw-r--r--. 1 nobody root 6419 Jan 28 04:12 .htaccess.sample
-rw-r--r--. 1 nobody root 1358 Jan 28 04:12 index.php
drwxr-xr-x. 4 nobody root 4096 Jan 29 18:30 lib/
-rw-r--r--. 1 nobody root 10374 Jan 28 04:12 LICENSE_AFL.txt
-rw-r--r--. 1 nobody root 10364 Jan 28 04:12 LICENSE.txt
-rw-r--r--. 1 nobody quick 35749362 Jan 29 18:29 Magento-CE-2.0.2-2016-01-28-02-26-45.tar.bz2
-rw-r--r--. 1 nobody root 4108 Jan 28 04:12 nginx.conf.sample
-rw-r--r--. 1 nobody root 1427 Jan 28 04:12 package.json
-rw-r--r--. 1 nobody root 1659 Jan 28 04:12 .php_cs
-rw-r--r--. 1 nobody root 804 Jan 28 04:12 php.ini.sample
drwxr-xr-x. 2 nobody root 4096 Jan 29 18:30 phpserver/
drwxr-xr-x. 6 nobody root 4096 Jan 29 18:30 pub/
-rw-r--r--. 1 nobody root 4388 Jan 28 04:10 README.md
drwxr-xr-x. 7 nobody root 4096 Jan 29 18:30 setup/
-rw-r--r--. 1 nobody root 3731 Jan 28 04:12 .travis.yml
drwxr-xr-x. 8 nobody root 4096 Jan 29 18:30 update/
drwxr-xr-x. 2 nobody root 4096 Jan 29 18:30 var/
drwxr-xr-x. 27 nobody root 4096 Jan 29 18:30 vendor/
**ps -ef | grep httpd**
root 14165 1 0 11:43 ? 00:00:01 /usr/local/apache/bin/httpd -k start
nobody 18801 14165 0 18:35 ? 00:00:00 /usr/local/apache/bin/httpd -k start
nobody 18802 14165 0 18:35 ? 00:00:00 /usr/local/apache/bin/httpd -k start
nobody 18803 14165 0 18:35 ? 00:00:00 /usr/local/apache/bin/httpd -k start
nobody 18804 14165 0 18:35 ? 00:00:00 /usr/local/apache/bin/httpd -k start
nobody 18805 14165 0 18:35 ? 00:00:00 /usr/local/apache/bin/httpd -k start
root 18975 20796 0 18:43 pts/0 00:00:00 grep httpd
You also probably need to chwon user:group bin/magento on the files you have installed (the magento files). You need to figure out which user Apache is running as and change user:group above to that, something like apache:apache or whatever is in your httpd.conf file.
Post some more info (ls -al /path/to/magento and ps -ef | grep httpd for apache), but I'll bet that's your problem.
Edit
Based on your edited output, you need to chown the files to be owned by nobody, which is the user apache is running as. This can be done via chown -R nobody /path/to/magento
Note that you only show the .bz2 archive, but you need to chown the extracted files.
Also, you said you had to use the user that cpanel created when you installed it, so there you go.
I am getting the following permissions warning with a while reading a file:
PHP Warning: fopen(todo.txt): failed to open stream: Permission denied in /var/www/php/oauth/web/insert.php on line 26, referer: https://oauth.dev/dropbox_finish.php?state=5
This problem come just by executing this code:
try{
$f = fopen("todo.txt", "r+");
...
}
I have done a lot of things with the permissions, let me show the current ones and then I'll show the rest.
[root#windows8 abel]# ls -lah /var/www/php
total 32K
drwxr-xr-x. 8 abel apache 4.0K Jun 3 15:53 .
drwxr-xr-x. 6 root root 4.0K May 29 12:38 ..
drwxr-xr-x. 3 abel abel 4.0K May 25 11:38 backup
drwxr-xr--. 6 abel apache 4.0K May 28 16:00 oauth
drwxr-xr-x. 8 abel apache 4.0K Apr 16 16:22 teamerp
drwxrwxr-x. 2 abel abel 4.0K Apr 16 17:18 TeamERP
drwx------. 5 abel abel 4.0K Apr 27 17:14 wordpress
drwx------. 6 abel abel 4.0K Jun 3 15:55 wp-test
[root#windows8 abel]# ls -lah /var/www/php/oauth/
total 36K
drwxr-xr--. 6 abel apache 4.0K May 28 16:00 .
drwxr-xr-x. 8 abel apache 4.0K Jun 3 15:53 ..
drwxr-xr--. 2 abel apache 4.0K Jun 7 11:56 app
-rwxr-xr--. 1 abel apache 124 May 25 16:05 composer.json
-rwxr-xr--. 1 abel apache 3.5K May 25 16:19 composer.lock
-rwxr-xr--. 1 abel apache 9 May 23 12:39 .gitignore
drwxrwxr-x. 3 abel apache 4.0K May 24 17:54 nbproject
drwxr-xr--. 5 abel apache 4.0K May 25 16:19 vendor
drwxr-xr--. 4 abel apache 4.0K Jun 8 15:16 web
[root#windows8 abel]# ls -lah /var/www/php/oauth/web/
total 36K
drwxr-xr--. 4 abel apache 4.0K Jun 8 15:16 .
drwxr-xr--. 6 abel apache 4.0K May 28 16:00 ..
drwxrwxr-x. 2 abel apache 4.0K May 28 16:00 css
-rw-rw-r--. 1 abel apache 5.4K Jun 8 17:37 dropbox_finish.php
-rwxr-xr--. 1 abel apache 109 May 28 09:59 index.php
-rw-rw-r--. 1 abel apache 1.3K Jun 8 17:50 insert.php
drwxrwxr-x. 2 abel apache 4.0K Jun 7 11:36 js
-rwxrwxrwx. 1 abel apache 55 Jun 8 17:50 todo.txt
[root#windows8 abel]#
The file is todo.txt.It has 777 permissions, the website works, but this file is supposed to be open to write it. That is the only difference as compared to any other if the html and php files that apache is serving.
The user abel is a member of the apache group. I have also tried to make the file owned by the user apache and it did not work, besides apache can read the rest of the web files, it's just this-one.
Any hint?
EDIT: I have created a folder and put the file inside. the run the following:
echo substr(sprintf('%o', fileperms('todo/todo.txt')), -4);
the result is 0777. I do not know what is going on, php actually sees the file, but I am still getting the error.
EDIT2: I have also execute the following command to know if it was a selinux problem with the file.
semanage fcontext -a -t httpd_sys_rw_content_t /var/www/php/oauth/web/todo/todo.txt
No results.
Here is my .htaccess content:
RewriteEngine On
RewriteRule ^([^/]*)\.html$ /mtd/index.php?page=$1 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.html$ /mtd/index.php?page=$1&destination=$2&package=$3 [L]
The following link works correctly:
http://localhost/mtd/our-company.html [Rewrite Rule 1]
The page successfully passes the $_GET values index.php?page=page-name
Yet, the following link is Showing 404 Error
http://localhost/mtd/tours/nepal/index.html [Rewrite Rule 2]
This URL should pass $_GET values like:
index.php?page=tours&destination=nepal&package=index
This was working on Windows 8.1 with XAMPP Server and Remote Server with cPanel, but after I shifted to Ubuntu (Latest) with LAMP Stack, it is no longer working.
after executing command ls -al
root#Neeraz:/var/www/mtd# ls -al
total 1740
drwxr-xr-x 15 neeraz root 4096 Jan 28 13:54 .
drwxrwxrwx 70 root root 4096 Jan 30 14:40 ..
drwxrwxrwx 10 root root 4096 Dec 17 15:56 admin
-rwxrwxrwx 1 root root 15992 Oct 23 12:25 ahome.html
-rwxrwxrwx 1 root root 3226 Nov 24 14:23 booknow.php
drwxrwxrwx 3 root root 4096 Jan 6 22:45 css
-rwxrwxrwx 1 root root 621280 Aug 15 15:56 delight-mockup.jpg
-rwxrwxrwx 1 root root 2531 Dec 10 17:47 find.php
-rwxrwxrwx 1 root root 1544 Nov 24 15:20 HandleTour.php
-rwxrwxrwx 1 root root 346 Feb 3 10:28 .htaccess
drwxrwxrwx 3 root root 4096 Jan 5 15:54 images
drwxrwxrwx 2 root root 4096 Oct 24 18:59 img
-rwxrwxrwx 1 root root 12098 Dec 16 14:00 index1.php
-rwxrwxrwx 1 root root 12372 Jan 29 06:20 index.php
drwxrwxrwx 2 root root 4096 Dec 23 15:15 jquery
drwxrwxrwx 3 root root 4096 Jan 28 13:58 Libs
-rwxrwxrwx 1 root root 13156 Jan 28 14:13 MainPage.php
-rwxrwxrwx 1 root root 1211 Jan 5 22:29 menu0.php
-rw-rw-r-- 1 neeraz neeraz 642 Jan 28 13:57 menulayout.php
-rwxrwxrwx 1 root root 476327 Aug 16 16:08 mt-delight1.jpg
-rwxrwxrwx 1 root root 474429 Aug 16 16:07 mt-delight.jpg
drwxrwxr-x 3 neeraz neeraz 4096 Jan 28 11:35 nbproject
-rwxrwxrwx 1 root root 9892 Sep 19 10:46 nepal.html
drwxrwxrwx 2 root root 4096 Jan 7 00:27 _notes
-rwxrwxrwx 1 root root 684 Oct 25 09:00 PagesLoader.php
-rwxrwxrwx 1 root root 1189 Nov 21 00:00 pie.php
drwxrwxrwx 2 root root 4096 Oct 29 18:16 SpryAssets
-rwxrwxrwx 1 root root 45 Dec 17 16:02 test.php
drwxrwxrwx 2 root root 4096 Dec 29 14:19 TourGallery
-rwxrwxrwx 1 root root 9266 Sep 5 13:29 tour.html
-rwxrwxrwx 1 root root 18333 Jan 5 14:05 tours.php
drwxrwxrwx 2 root root 4096 Oct 27 16:18 TrekkingMap
drwxrwxrwx 3 root root 4096 Dec 29 14:19 uploaded
drwxrwxrwx 2 root root 4096 Dec 15 19:39 uploads
root#Neeraz:/var/www/mtd#
You need correct RewriteBase and make to place this rule in /mtd/.htaccess:
RewriteEngine On
RewriteBase /mtd/
RewriteRule ^([^/]+)/([^/]+)/([^/.]+)\.html$ index.php?page=$1&destination=$2&package=$3 [L,QSA]
RewriteRule ^([^/.]+)\.html$ index.php?page=$1 [L,QSA]