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
Recibo un error al crear posix, prompt: make: cc: Command not found make: *** [posix] Error 127, p
STM32F103VCT6 basado DAC viene con dos no se ha encontrado tasa de conversión DAC, DAC de 12 bits, a
lftp es un cliente ftp en Linux para iniciar sesión en un servidor FTP remoto. Use su comando espejo
Este artículo presenta el concepto, la función y el uso de LVM para ayudarlo a comprender LVM y usar
Consejos para el uso flexible de los scripts de expectativa bajo Linux
Las 20 ventajas de Linux y Windows
El tutorial de configuración de Yum
Cómo configurar la instalación de vino bajo centos
Cómo modificar el nombre de la computadora Linux
Los administradores de Linux no deben conocer los diez principales puntos de seguridad de PHP
Cómo usar rz y sz para transferir archivos en SecureCRT
Administración y mantenimiento de sistemas Linux - comando ls
Tutorial del comando awk de Linux /UNIX con ejemplos
Conceptos básicos sobre el uso de la familia de funciones de Linux exec
Sugerencias para Linux: introduzca dos formas de modificar 22 puertos.
El sistema Windows 10 admite de forma nativa la reproducción de video en formato mkv
¿Qué debo hacer con flashback office2013? Solución para el flashback
Método de solución de problemas de inicio del sistema operativo Windows 7
La diferencia entre Windows 7, múltiples monitores y múltiples pantallas (1)
El sistema Win7 omite la interfaz de inicio de sesión para ingresar directamente al sistema
¿Cómo ves si win10 es la versión 9926? Vea los tres métodos del número de versión de win10
Se solucionó el mensaje de error 0x8024402F de instalación de Win 7