Bin / magento kurulumu çalıştırıldığında pub / static dizininde eksik yazma izinleri: yükseltme


19

Bir gün önce yeni bir modülü güncelledim ve normal şekilde çalışıyordu. Şimdi, bin/magento setup:upgradekoştuğumda, aşağıdaki istisnayı alıyorum. pubMagento 2 klasör için 777 (veya 770) izinlerini ayarlamayı denedim ama çalışmıyor.

  [İstisna]
  Aşağıdaki dizinlere eksik yazma izinleri: 'pub / static'


bu sorunu çözmeyi başardınız mı? eğer öyleyse pls çözüm sonrası.
Reena Parekh

Aynı sorununuz mu var?
Thao Pham

evet aynı sorunla karşı karşıyayım. nasıl çözdün?
Reena Parekh

Bazı satır kodları çekirdim. Benim gibi yapmak ister misin?
Thao Pham

1
relsove'ımı aşağıdaki yazıya gönderdim. Bununla deneyebilirim
Thao Pham

Yanıtlar:


30

TL; DR kısaltma pub/staticklasörü.


Benim için, muhtemelen bazı semboller ve artık mevcut olmayan eski dosyaları olan daha eski bir kurulumum vardı.

Sorun checkInstallationFilePermissionsizinleri özyinelemeli olarak denetlemesidir. Dosyalar ve Klasörler. Ben eksik bir symlink vardı ve bu yazılabilir olup olmadığını kontrol yanlış verdi.

Hata ayıklama:

  1. setup/src/Magento/Setup/Model/FilePermissions.php

  2. Yöntemde 143 numaralı satıra git checkRecursiveDirectories

  3. Satırları ekleyin var_dump($subDirectory);var_dump($subDirectory->isWritable());

  4. Yeniden koş bin/magento setup:upgrade

şimdi gerçekten neyin yanlış olduğunu göreceksiniz ve düzeltebilirsiniz. Şahsen ben her şeyi kaldırmakpub/static , bu otomatik olarak oluşturulan içerik olacak, bu yüzden bu konuda endişelenmemelisiniz.


1
Kurulumu çalıştırdıktan sonra pub / static'i tamamen kaldırdım: pub / static içindeki tek klasörü yükseltme __requirejs klasörüdür. Css eksik, ne kadar şimdiye kadar hiçbir stil .... Adam .. keşke ben yapmadım
Lachezar Raychev

pub / static'taki her şeyi nasıl geri yükleyebilirim?
Lachezar Raychev

2
her şey çok iyi gidiyordu .... :) gerçekten bu çerçeveyi hor
görmeye başladım

3
Pub / static içeriğini kaldırırsanız, kod tabanının bir parçası olduğu ve yeniden oluşturulmadığı için pub / static / .htaccess'i kaldırmamaya dikkat edin: github.com/magento/magento2/tree/2.0/ pub / statik
mttjohnson

Perfecto! Bu oldu ..
Arvind07

11

Kırık bir sembolik bağ yüzünden gelişimde bu hatayla karşılaştım.

Modül view/frontend/webdizininde, developermodda pub/staticorijinal dosyanın saklandığı modülün dizinine işaret eden sembolik bir bağlantı kullanılarak dizine dağıtılan bir dosya oluşturmuştum.

Geliştirmenin bir noktasında dosyayı modülümden kaldırdım, ancak sembolik bağlantı hala var pub/staticolmayan bir dosyayı işaret ederken varlığını sürdürdü. Dosyalardan birini yeniden adlandırmış olsaydım bu da böyle olacağını umuyorum.

Bir site productionmodundaysa ve bin/magento setup:static-content:deployçalıştırılmışsa, bu pub/staticsembolik bağlantılar oluşturmak yerine dosyaları dizine kopyalar .

Bu bozuk sembolik bağlantıyı bulmak için kabuktan bir komut çalıştırdım

find -L . -type l

Bozuk sembolik bağlantının kaldırılması sorunu çözdü (örneğin kullanarak find -L . -type l -exec rm {} \;).


Bu da benim sorunun yanıtıydı, teşekkürler mttjohnson!
Joshua Soileau

4

Magento kök dizininizin içinde aşağıdaki komutları çalıştırın ve sorununuz gitmiş olmalı:

$ rm -rf pub/static/*
$ php bin/magento setup:static-content:deploy

Benim için çalıştı.


Bu da .htaccessdosyayı silecektir . .htaccessDosyaya ihtiyacınız var .
Adarsh ​​Khatri

2

İzinleri resmi belgelerde açıklandığı şekilde ayarlamalısınız: http://devdocs.magento.com/guides/v2.0/install-gde/install/file-system-perms.html


1
gerçek izinler sadece url değişiklik durumunda neden olabilir.
rob3000

Tekrar deniyorum ama çalışmıyor
Thao Pham

Alt

sahiplik izinler kadar önemlidir; yukarıdaki bağlantıyı kontrol edin ve ayrıca devdocs.magento.com/guides/v2.0/install-gde/prereq/… . İki kullanıcınız olmalıdır; yerel kullanıcı ve web sunucusu kullanıcısı
Steve Johnson

izinleri uygulama düzeyinde ayarlama fikri yanlıştır, bu yüzden insanların bu bölümdeki belgelerden kaçınmaları gerektiğini düşünüyorum. sonraki sürümlerde github sorunlarına göre güncellenecek
Claudiu Creanga

1

Bu benim geçici çözümüm. 744 ve 466 numaralı satırları yorumluyorum <magento_dir>/setup/src/Magento/Setup/Model/Installer.php.

Bu satır kodu:

$this->checkInstallationFilePermissions();

Çözüme ihtiyacım var çekirdek dosyayı değiştirmeyin.


Sorun büyük olasılıkla pub / statik dizin altındaki bozuk bir sembolik bağlantıdan (aşağıda yanıtlanmıştır) kaynaklanmaktadır. Bozuk sembolik bağlantısı kaldırmak, çekirdek dosyaları değiştirmeden sorunu çözmelidir.
mttjohnson


@EnvisionEcommerce bağlantı çalışmıyor.
MagePsycho

1

Bin / magento izni reddedildi düzeltildi

chmod u + x bin / magento



0

Ben komut satırı üzerinden Magento yükleyemiyorum aynı sorun vardı. Sadece klasör oluşturmak pub/staticsorunu çözdü.


0

Birisi Windows işletim sisteminde bu sorunu yaşıyorsa. Komutu bir Yönetici komut isteminde çalıştırmanız bir cazibe gibi çalışacaktır. Umarım bu birine yardımcı olur.


0

Benim durumumda root olmayan kullanıcı veya sınırlı izinleri olan bir kullanıcı aracılığıyla yükseltme komutunu çalıştırmak hataya neden oluyordu. Yükseltme komutunu yeterli izinlere sahip bir kullanıcıyla çalıştırdığınızdan emin olun.


0

Yazma izinlerini defalarca doğruladım ve her şey iyiydi.

  1. Bana bir istisna getiren bu satırı yorumladım.
  2. Sonra kurulum çalıştırdım: yükseltme.
  3. İstisna ile satırı geri döndürdüm
  4. Sorun artık çoğalmadı

0

Aşağıdaki üç IP adresi için aşağıdaki komutu çalıştırın:

<Magento-Directory>php bin\magento maintenance:allow-ips 127.0.0.1, 
<Magento-Directory>php bin\magento maintenance:allow-ips "the ip of my localhost given by the NAT-Router" and
<Magento-Directory>php bin\magento maintenance:allow-ips  "the ip of the NAT-Router" 

0

bunu kullanma:

rm -r pub/static

.htaccess bile tüm dosyaları kaldıracak

Bu daha iyi olacak kullanabilirsiniz:

rm -rf pub/static/frontend
rm -rf pub/static/adminhtml

bu kullanımdan sonra:

php bin/magento setup:static-content:deploy en_US -f 

-1

pub / static klasörünü magento2'nizden kaldırmanız yeterlidir

rm -r pub/static

daha sonra magento2'nin statik içeriğini dağıtın

php bin/magento setup:static-content:deploy

bu süreci kullanarak aynı problemimi çözdüm.


4
Önemli olan bir .htaccess dosyası içerdiğinden ve .htaccess dosyası herhangi bir statik içerik dağıtımında yeniden oluşturulmayacağından pub / statik dizinin tamamını kaldırmamalısınız. Çalıştırabilirsiniz rm -r pub/static/*ve bu .htaccess dosyasını kaldırmaktan kaçınmalısınız.
mttjohnson
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.