WordPress vraagt om mijn FTP referenties om plugins te installeren

Ik heb een WordPress blog in mijn lokale systeem. Maar als ik probeer het toevoegen van plug-ins van admin vraagt voor FTP-toegang. Wat heb ik nodig om te configureren voor WordPress te kunnen uploaden zonder FTP?

InformationsquelleAutor sasi kanth | 2013-07-29



14 Replies
  1. 275

    Probeer het toevoegen van de code in wp-config.php:

    define('FS_METHOD', 'direct');
    • Ik blijf struikelen over dit antwoord, terwijl googlen, dus post ik een opmerking hier voor mezelf en anderen: De Code is in wp-admin/includes/bestand.php:get_filesystem_method. WordPress probeert te maken van een bestand ‘wp-content/temp-schrijven-test’.tijd(). Als dit mislukt, wordt ervan uitgegaan dat u kunt alleen gebruik maken van FTP. Maar dit kan niet waar zijn, als wp-content zelf is niet beschrijfbaar is, maar bijvoorbeeld wp-content/plugins is. Vervolgens dwingen FS_METHOD werkt.
    • het werkt, maar het probleem is nu, na het uitpakken de verpakking van de fout zegt: “er Kan geen map maken.”
    • Dit heeft me geholpen, maar alleen omdat het blootgesteld meer informatie over de fout. Het grootste probleem is met het schrijven van machtigingen voor de account van de gebruiker dat doet de update. Voor elk type van systeem, kan dit anders zijn. (merk op dat sommige antwoorden hieronder je vertellen om te schrijven machtigingen voor daemon, of httpd, of apache…) Het heeft me geholpen om de PHP-fragment van een reactie hieronder (<?php echo(exec(“whoami”)); ?>), zodat ik kon vertellen wat de gebruiker is het uitvoeren van de update. Het maken van de verandering hier voorgestelde leek om gewoon het onderdrukken van de FTP-referenties uitdaging, dus ik kon zien dat het fout.
    • Ik ben met behulp van nginx, en niet van Apache. Het is vrij duidelijk dat PHP-FPM niet gebruik de juiste gebruiker/groep combinatie (met de truc beschreven door @Aboozar Rajabi ); echter, voor sommige reden, de WP controle mislukt (geen fouten op de logs wel). Met behulp van deze instelling kon ik upgraden naar 4,7 feilloos!
    • Ik ben bezig met devops in andere gebieden voor WordPress, mijn beste gok is FS_METHOD is kort voor FILESYSTEM_METHOD. Wanneer u definieert om direct-ly wijzigen van de bestanden – aka niet via FTP, dan bent u het forceren van WordPress uit te proberen en wijzigen van de bestanden op de site.
    • Dit werkte voor mij op een gehoste Godaddy-account dat op mysterieuze wijze begon dit te doen. Wat nog erger is, is dat ondanks het proberen om zorgvuldig uitvoeren door een andere werkende site, alle rechten bleken te zijn intact. Na controle door de logboeken van de werkende site weer, merkte ik dat de ‘directe’ omgeving was er… het schijnt ten minste één van mijn plugins, tweaks, enz. per ongeluk gewist uit die lijn.
    • Waarom dit werkt?
    • Nadat u deze wijziging hebt u mogelijk de pagina te vernieuwen u op om het te krijgen door te voeren. Bijvoorbeeld als je op de pagina waar u kunt plug-ins installeren, gewoon klikken op de “install” knop weer is niet voldoende. Je hebt voor het vernieuwen van de plugin lijst.
    • Ben aan de “Kan niet volledig verwijderen van de plugin hello.php”

  2. 32

    Als je Ubuntu gebruikt.

    sudo chown -R www-data:www-data PATH_TO_YOUR_WORDPRESS_FOLDER
  3. 17

    “Wanneer u gebruik maken van de WordPress control panel voor het automatisch installeren, upgraden, of verwijderen van plugins, WordPress moet wijzigingen aanbrengen in de bestanden op het bestandssysteem.

    Voordat u wijzigingen aanbrengt, WordPress controleert eerst of het wel of niet toegang heeft tot het direct bewerken van het bestand systeem.

    Als WordPress niet over de vereiste machtigingen voor het wijzigen van het bestandssysteem rechtstreeks, zal u gevraagd worden voor FTP referenties, zodat WordPress kan proberen te doen wat het moet via FTP.”

    Oplossing:
    Om uit te vinden wat de gebruiker op dat uw exemplaar van apache draait, het maken van een test script aan met de volgende inhoud:

    <?php echo(exec("whoami")); ?>

    Voor mij, het was daemon en geen www-data. Vervolgens bevestigen van de toestemming door:

    sudo chown -R daemon /path/to/your/local/www/folder
    • Vergeet niet uit te schakelen exec() of vergelijkbare gevoelige functies. in de productie.
    • Nog beter is gebruik te maken van <?php echo(exec("id")); ?> die zullen zelfs je groep gegevens buiten de user id: uid=5018(web27) gid=5012(client7) groups=5012(client7),5002(sshusers)
  4. 10

    Op OSX, heb ik het volgende gebruikt, en het werkte:

    sudo chown -R _www:_www {path to wordpress folder}

    _www is de gebruiker die PHP draait op de Mac.

    (U moet mogelijk ook chmod sommige mappen ook. Ik had gedaan dat het eerste en het niet oplossen. Het was niet totdat ik deed het chown commando dat het werkte, dus ik ben niet zeker of het was het chown commando alleen, of een combinatie van chmod en chown.)

  5. 9

    Ik veranderde de eigendom van de wordpress map www-data recursief en herstart apache.

    sudo chown -R www-data:www-data <folderpath>

    Het werkte als een charme!

    • Dit is het juiste antwoord voor de meeste mensen waarschijnlijk. Ik denk dat dit de derde keer dat ik heb gemaakt een map en vergeten om chown.
  6. 7

    Van de eerste hit op Google:

    WordPress vraagt voor uw FTP-referenties als het geen toegang kunnen krijgen tot de bestanden
    direct. Dit wordt meestal veroorzaakt door PHP uitgevoerd als de apache gebruiker
    (mod_php of CGI) in plaats van de gebruiker die eigenaar is van uw WordPress bestanden.

    Dit is vrij normaal bij de meeste shared hosting omgevingen – de bestanden worden opgeslagen als de gebruiker die Apache draait gebruiker apache of httpd. Dit is eigenlijk een goede voorzorgsmaatregel dus exploits en hacks niet wijzigen gehoste bestanden. Je kan dit omzeilen door alle WP bestanden op 777 veiligheid, maar dat betekent geen beveiliging, dus ik zou het sterk afraden dat. Gewoon gebruik maken van FTP, het is het automatisch geadviseerd oplossing met een goede reden.

    • Bedankt voor de uitleg. Is er een manier om het configureren van de gedeelde server te draaien van PHP als de juiste gebruiker of corrigeren van de eigenaar of een andere oplossing?
  7. 3

    Eerste stap naar de installatie map (bijvoorbeeld)

    cd /Applications/XAMPP/xamppfiles/

    Nu gaan we wijzigen uw htdocs directory:

    sudo chown -R daemon htdocs

    Vul jouw root wachtwoord in wanneer u hierom wordt gevraagd, sluit daarna af met een chmod bel:

    sudo chmod -R g+w htdocs
  8. 3

    Hadden We hetzelfde probleem als deel van een groter probleem. De voorgestelde oplossing van

    define('FS_METHOD', 'direct');

    verbergt dat venster, maar dan hadden we nog problemen met het laden van thema ‘ s en upgrades etc. Het is gerelateerd aan machtigingen echter in ons geval hebben we het probleem opgelost door het verplaatsen van de php OS leverancier mod_php naar meer beveiligde php OS leverancier Pg toepassing.

  9. 3

    Ik heb een lokale installatie van WordPress op Ubuntu 14.04 de volgende stappen uit hier en gewoon lopen:

    sudo chown -R www-data:www-data {path_to_your_project_directory}

    mijn probleem opgelost met het downloaden van plug-ins. De enige reden verlaat ik dit hier post is omdat ik, toen ik googelde op mijn probleem, dit was een van de eerste resultaten en het leidde me naar de oplossing voor mijn probleem.

    Hoop dat dit helpt voor iedereen!

  10. 2

    De makkelijkste manier om dit op te lossen probleem is het toevoegen van de volgende FTP-gegevens aan uw wp-config.php

    define('FS_METHOD', 'direct');
    define('FTP_BASE', '/usr/home/username/public_html/my-site.example.com/wordpress/');
    define('FTP_CONTENT_DIR', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/');
    define('FTP_PLUGIN_DIR ', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/plugins/');

    FTP_BASE is het volledige pad naar de “basis”(ABSPATH) mappen van de WordPress installatie
    FTP_CONTENT_DIR is het volledige pad naar de wp-content map van de WordPress installatie.
    FTP_PLUGIN_DIR is het volledige pad naar de map plugins van WordPress installatie.

    • FTP is niet veilig is en als zodanig zijn wij uitschakelen, dus het is niet een oplossing. Wij maken gebruik van SFTP in plaats daarvan.
  11. 1

    Zoals vermeld door Niels, dit gebeurt omdat de server proces gebruiker kan niet schrijven naar de WordPress map.

    Maar hier is het ding veel artikelen niet uitleggen. Het is de eigenaar van de php-proces, niet de nginx proces. Als u probeert te wijzigen van de nginx eigenaar, het zal niet lossen.

    Op te lossen, probeert u ps aux om te zien welke gebruiker eigenaar is van de php-fpm proces. Controleer of de gebruiker is de gebruiker van de eigenaar van de wordpress map, of tenminste kunnen schrijven. Als de gebruiker niet kan schrijven, moet u de machtigingen wijzigen en/of eigenaar van de map of zet de twee gebruikers (server-eigenaar en wordpress map eigenaar) in een gemeenschappelijke groep die kan schrijven naar de map; of wijzigen van php.ini “gebruiker” eigenschap van een gebruiker die kan schrijven naar de map.

  12. 1

    Er veel dezelfde antwoorden op deze vraag, maar geen van hen volledig aan te raken op de oorzaak. Sebastian Schmidt commentaar op het oorspronkelijke bericht raakt op, maar niet volledig. Hier is mijn nemen van 2018-11-06:

    Oorzaak

    Wanneer u het uploaden van een plugin via de WordPress admin interface, WordPress zal een gesprek over een functie genaamd “get_filesystem_method()” (ref: /wp-admin/includes/bestand.php:1549). Deze routine zal proberen te schrijven van een bestand naar de locatie in kwestie (in dit geval de plugin directory). Het kan natuurlijk ook mislukken hier onmiddellijk als bestand machtigingen niet instellen recht om de WordPress gebruiker (denk aan de identiteit van de gebruiker de uitvoering van het php) om het bestand naar de locatie in kwestie.

    Als het bestand kan worden gemaakt, is deze functie detecteert de eigenaar van een bestand van het tijdelijke bestand, samen met de eigenaar van het bestand van de functie het huidige bestand (ref: /wp-admin/includes/bestand.php:1572) en vergelijkt de twee. Als ze overeenkomen dan in WordPress ‘ s woorden, “WordPress is het maken van bestanden als het dezelfde eigenaar als de WordPress bestanden, dit betekent dat het veilig is om te wijzigen & het maken van nieuwe bestanden via PHP” en uw plugin is geüpload met succes zonder de FTP-Referenties gevraagd. Als ze niet overeenkomen, krijgt u de FTP-Referenties gevraagd.

    Correcties

    1. Zorgen dat de plugin map beschrijfbaar door de identiteit van het runnen van uw php-proces.
    2. Vergewissen van de identiteit die wordt uitgevoerd in de php-proces is de eigenaar van het bestand voor:

      a) Alle WordPress applicatie bestanden, of…

      b) Ten minste de /wp-admin/includes/file.php bestand

    Laatste Reacties

    Ik ben niet al te enthousiast over het specifiek toepassen bestand eigendom aan de file.php om dit probleem te omzeilen (het voelt een beetje hacky om te zeggen het minst!). Het lijkt mij op dit punt dat de WordPress-code base is te leunen in de richting van het hebben van ons het uitvoeren van de PHP-proces onder dezelfde gebruiker de opdrachtgever als de eigenaar van een bestand voor de WordPress applicatie bestanden. Ik zou graag een aantal opmerkingen van de gemeenschap op deze.

  13. 1

    Ik werd geconfronteerd met het zelfde probleem!
    Ik heb de code hieronder in wp-config.php bestand (in een lijn) en het werkt nu!

    define('FS_METHOD', 'direct');
  14. 0

    Als tijdens de installatie van een plugin WordPress vraagt uw hostnaam of FTP-gegevens.
    Volg de volgende stappen:

    Inloggen op uw server en ga naar /var/www/html/wordpress/.
    Open wp-config.php en voeg deze regel toe na define(‘DB_COLLATE’)

    define('FS_METHOD', 'direct');

    Als je “niet Kon maak de map” fout. Geven en schrijf machtigingen voor uw wordpress map recursief als

    chmod -R go+w wordpress

    OPMERKING. Voor de veiligheid, trekken deze rechten na het installeren van een plugin als

    chmod -R go-w wordpress

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *