كيف يمكنني إيقاف WordPress من مطالبتي بإدخال معلومات FTP عند إجراء التحديثات؟
إذا قمت بتحرير ملف wp-config.php
الخاص بك ، فيمكنك تحميل إعدادات FTP هذه مسبقًا كثوابت يقرأها WordPress. ضع في اعتبارك ، على مضيف مشترك ، يجب أن تضع في اعتبارك الآثار الأمنية المحتملة. راجع التحرير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/');
// define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub');
// define('FTP_PRIKEY', '/home/username/.ssh/id_rsa');
define('FTP_USER', 'my-ftp-username');
define('FTP_PASS', 'my-ftp-password');
define('FTP_Host', 'ftp.my-site.example.com');
// define('FTP_SSL', false);
تحقق ملكية الملف الخاص بك. عندما يكون المستخدم الذي يعمل عليه Apache يمكنه الكتابة إلى أدلة WordPress ، فإن عملية الترقية المتكاملة تعمل جميعها دون بروتوكول نقل الملفات. بيانات اعتماد FTP مخصصة إذا كان خادم الويب لا يمتلك الامتيازات الصحيحة على ملفاتك ، ثم يطالبك Wordpress بتفاصيل FTP الخاصة بك ، ويحاول استخدام تلك الملفات لإعادة FTP إلى نفس الخادم وهو قادر على كتابة الملفات التي يحتاجها.
يبدو أن WordPress لا يقتصر الأمر على التحقق مما إذا كانت الدلائل قابلة للكتابة ، بل يتحقق ما إذا كان مستخدم Apacheيمتلكالدلائل (أو على الأقل ، إذا كان مستخدم Apache يمتلك الملف المؤقت الذي يقوم بإنشائه). لاحظ سطور التعليمات البرمجية هذه في /wp-admin/includes/file.php: get_filesystem_method ():
if ( $temp_handle ) {
if ( getmyuid() == @fileowner($temp_file_name) )
$method = 'direct';
@fclose($temp_handle);
@unlink($temp_file_name);
}
لذلك ، سيكون الحل السريع هو إصدار هذا الأمر ومنح ملكية تثبيت Wordpress بالكامل إلى Apache:
Sudo chown -R www-data wordpress/
حيث www-data هو مستخدم Apache ، وبالطبع فإن Wordpress هو مجلد تثبيت WordPress الخاص بك.
لقد وثقت الحل الخاص بي هنا: https://ardeearam.wordpress.com 2013/02/03/solved-wordpress-asking-for-ftp-credentials-when-upgrading/
عند ضبط Apache 2.4 بدقة عبر EasyApache4 لتحسين سرعة تحميل موقع الويب في خادم Centos 7 PHP 7 ، قمت بتمكين mod_pagespeed. عند تمكينه ، سيتم تلقائيًا تعطيل mod_ruid2 و mod_cgi (وتمكين وحدتين أخريين). عند تعطيل mod_pagespeed ، لن يعيد تمكين mod_ruid2 تلقائيًا - سيعيد تمكين mod_cgi فقط. بدون mod_ruid2 سيطلب Wordpress بيانات اعتماد FTP.
ليست هناك حاجة إلى تشفير wp-config.php الثابت أو تعيين أذونات الملفات (بشكل خطير) إلى 777. فقط قم بتمكين mod_ruid2 يدويًا ، وأعد تشغيل Apache وحل مشكلة إذن FTP/ملف. يمكن تحديث Wordpress والإضافات الآن كالمعتاد وتحميل الوسائط إلى معرض Wordpress. إنه يعمل على الفور.
لقد قمت للتو بالتحقق من أنه عند التغيير من MPM Prefork إلى Worker ، فسيتم تعطيل mod_ruid2. عند الرجوع من Worker إلى Prefork ، لن يتم تمكين mod_ruid2 ، مما يسبب المشكلة الموضحة في هذا المنشور.
في كلتا الحالتين ، يكون المفتاح هو فحص وتمكين mod_ruid2.
نأمل أن يكون ساعد.