2014-10-24 18 views
6

używałem Subversion, aby przywrócić mój projekt PHP OpenCart, ale mam problem uprawnień (próbka poniżej:Jak rozwiązać Linux uprawnień problem dla OpenCart

Warning: imagejpeg(): Nie można otworzyć ' /var/www/html/opencart/image/cache/data/pavblog/img-blog-620x300w.jpg 'do pisania: Odmowa uprawnień w /var/www/html/opencart/system/library/image.php on line 45

Ostrzeżenie: imagejpeg(): Nie można otworzyć strony "/var/www/html/opencart/image/cache/data/pavblog/img-blog-250x250w.jpg": Odmowa uprawnień w/var/www/html/opencart/system/library/image.php on line 45

Ostrzeżenie: imagejpeg(): Nie można otworzyć ...

I wykonywany poniżej poleceń dodać uprawnienia do tych folderów, ale ja wciąż się komunikaty ostrzegawcze na mojej stronie.

sudo chmod 777 /var/www/html/opencart 
cd /var/www/html/opencart 
sudo chmod 777 image/ 
sudo chmod 777 image/cache/ 
sudo chmod 777 image/data/ 
sudo chmod 777 system/cache/ 
sudo chmod 777 system/logs/ 
sudo chmod 777 download/ 
sudo chmod 777 config.php 
sudo chmod 777 admin/config.php 

Jak mogę to naprawić?

+0

Jeśli robisz 'ls -al' w jednym z folderów , kto jest wyświetlany jako właściciel pliku: root, www-data, apache lub ktoś inny? –

+0

Właściciel jest root dla wszystkich folderów i plików. –

+0

W porządku ... to prawie na pewno prawdziwy problem. Mam zamiar odesłać Cię do http://unix.stackexchange.com/a/30888/47521, ponieważ to lepiej opisać odpowiednie uprawnienia do plików –

Odpowiedz

2

Musisz rekursywnie stosować uprawnienia. Staraj

sudo chmod -R 777 image/cache/

+0

Masz dobry punkt o używaniu rekursji, ale nie jestem szczerze przekonany, że każdemu przyznam uprawnienia do wykonywania. –

+2

Zgadzam się, 777 nigdy nie powinno być używane w mojej opinii, tylko podążając za twoim przykładem. Najpierw wypróbuj 644, a następnie 755, jeśli to nie działa. (trudno powiedzieć, czego potrzebujesz, nie znając pełnej konfiguracji) – rjdown

6

naprawić uprawnienia, trzeba wziąć dwa różne etapy:

  1. nadać uprawnienia do właściwego podmiotu. Ponieważ jesteś w/var/www/html, domyślam się, że poprawnym użytkownikiem jest "apache".

    # Grants permissions to apache 
    sudo chown apache:apache -R /var/www/html/opencart 
    
    # If that doesn't work, perhaps try www-data 
    sudo chown www-data:www-data -R /var/www/html/opencart 
    
  2. Ustaw uprawnienia plików i folderów prawidłowo (może to być niebezpieczne dla plików, aby wykonać uprawnienie)

    # Sets directory permissions to 755 (rwxr-xr-x) 
    sudo find /var/www/html/opencart -type d -exec chmod 755 {} \; 
    
    # Sets file permissions to 644 (rw-r--r--) 
    sudo find /var/www/html/opencart -type f -exec chmod 644 {} \; 
    
+0

dziękuję, brakowało mi użycia -R! –

+1

Znajdź użytkownika apache: '$ user = getenv ('APACHE_RUN_USER');' http://stackoverflow.com/a/17415081/560287 –