El archivo o la carpeta del espacio del host virtual de Linux no se puede eliminar. Solución

  

Al mantener el archivo del blog de hoy, encontré que algunas carpetas y archivos en la ruta del sitio web no se pudieron eliminar a través de FTP. Solicitud de FTP Permiso denegado (sin permiso) Permítame pensar No puedo explicarlo. Comencé a buscar una solución basada en la idea de mi propia investigación. Dado que la solicitud de FTP es insuficiente, debería ser un problema en la configuración de permisos de archivo del servidor. Fui al fondo de administración del servidor para ver el administrador de archivos. El administrador de archivos muestra lo siguiente. Figura:

Como se puede ver en la figura, el propietario del archivo generado por el programa PHP
es la cuenta de Apache en lugar de mi cuenta ftp, por lo que la cuenta de Apache tiene todos los permisos para controlar estos archivos. Pero los usuarios de FTP no lo hacen, así que uso mi propio usuario para eliminar estos archivos en FTP. Se me pedirá que los elimine.

Para determinar el problema, consulté al proveedor del servidor. La respuesta que obtuve es una prueba completa de mi inferencia: Apache y ftp generalmente no están en un grupo de usuarios en un host virtual de Linux doméstico, por lo que se establece apache. ftp directorio o archivo no se pueden borrar y deben ser borrados por Apache con PHP programa.

¿Cómo resolverlo? Muy simple, escriba un programa PHP para completar este trabajo


? php /* Linux Space File Remover Versión 1.0 Copyright: Software libre, Random Spread # ### 报警 #### Este software es una herramienta de mantenimiento de espacio. Por favor, elimine este archivo inmediatamente después de su uso. * /?! DOCTYPE HTML PUBLIC " - //W3C //DTD HTML 4.01 Transitional //EN " http: //www.w3.org/TR/html4/loose.dtd"htmlheadmeta http-equiv = " Content-Type " content = " text /html; charset = utf-8 " carpeta de espacio de títulos /herramienta de eliminación de archivos /Titlestylebody {font-family: " 宋体 "; font-size: 12px;} imput {border: 1px #ccc solid;} b {color: # FF0000;} /style /headbodyform action = "? Action = dirdel " Método = " publicar " Eliminar carpeta, bPor favor, asegúrese de completar la operación correcta después de eliminarla! /Bbr Introduzca la ruta de la carpeta, use "; " tipo de entrada separada = " texto " nombre = " all_folder " tamaño = " 50 '' tipo de entrada = " enviar " valor = " eliminar " /formbrform action = "? action = filtrarel " method = " publicar " Eliminar archivos, b asegúrese de completar la operación correcta antes de eliminar! /bbr Introduzca la ruta completa del archivo, use "; " tipo de entrada separado = " texto " Nombre = " all_files " tamaño = " 50 " tipo de entrada = " enviar " valor = " eliminar " /formbr? Php $ action = $ _GET ['action']; //eliminar la operación del directorio if ($ action == 'dirdel') {$ all_folder = $ _POST ['all_folder']; if (! empty ($ all_folder)) {//Reconoce varias carpetas por punto y coma $ folder = explode (';', $ all_folder); if (is_array ($ carpetas)) {foreach ($ carpetas como $ carpeta) {deldir ($ carpeta); echo $ carpeta. 'Eliminar Br';}}}}} si ($ acción == 'archivado') { $ all_files = $ _POST ['all_files']; if (! empty ($ all_files)) {//Reconoce varios archivos por punto y coma $ files = explode (';', $ all_files); if (is_array ($ files) {foreach ($ files as $ file) {if (is_file ($ file)) {if (unlink ($ file)) {echo $ file. 'Eliminar correctamente Br';} else {echo $ file. 'No se puede eliminar, Por favor, compruebe los permisos Br ';}} Else {echo $ file. 'No existe br';}}}}} //Eliminar directorio e incluir funciones de archivo function deldir ($ dir) {//Abrir el directorio de archivo $ dh = opendir ($ dir); //loop Lea el archivo while ($ file = readdir ($ dh)) {if ($ file! = '.' $ File! = '..') {$ fullpath = $ dir. '/'. $ File; //Judge Es el directorio if (! Is_dir ($ fullpath)) {//Si no es así, elimine el archivo if (! Unlink ($ fullpath)) {echo $ fullpath. 'No se puede eliminar, es posible que no haya permisos! Br';}} else {//Si es un directorio, elimine recursivamente el directorio del subdirectorio ($ fullpath);}}} //cierre el directorio closedir ($ dh); //elimine el directorio if (rmdir ($ dir)) {return true;} else { Devuelve falso;}}? /Body /html

Copyright © Conocimiento de Windows All Rights Reserved