Mostrando entradas con la etiqueta Linux PHP. Mostrar todas las entradas
Mostrando entradas con la etiqueta Linux PHP. Mostrar todas las entradas

enero 10, 2020

Error al subir archivo en Wordpress. El tamaño máximo de archivo 2 mb.

Para solucionar el error al subir archivo en Wordpress.



El tamaño máximo de archivo 2 mb.

Revisar el archivo php.ini comúnmente ubicado en /etc/php.ini las opciones

post_max_size
upload_max_filesize
memory_limit

Cambia la opción 
upload_max_filesize = 2M

por
upload_max_filesize = 4M

reinicia los servicios
service httpd restart
service php-fpm restart


agosto 01, 2019

No puedes actualizar porque WordPress 5.2.2 necesita una versión de PHP 5.6.20 o superior.

No puedes actualizar porque WordPress 5.2.2 necesita una versión de PHP 5.6.20 o superior.


Problema

No puedes actualizar porque WordPress 5.2.2 necesita una versión de PHP 5.6.20 o superior.

Diagnóstico

Un ejemplo para profundizar el problema es el siguiente.

Con el comando de php podrás ver que versión de php estás ejecutando
#php --version
*** PHP 5.3.6 ***

Estás ejecutando la versión 5.3.6.

Para resolver esto es necesario profundizar en el problema.

Ejecutando el comando uname
# uname -a

Te regresa el sistema operativo en Linux Fedora que estás ejecutando.
# ****** fc13.x86_64 *******

Con esto puedes ver que opciones nativas tiene el sistema operativo fc13.x86_64 para php

En la dirección remirepo.net podrás ver los paquetes de php disponibles para tu distribución en éste caso de fedora 13
https://rpms.remirepo.net/rpmphp/zoom.php?rpm=php

Para éste caso, según remirepo.net puede actualizarse php a .3.6-1.fc13 y la instalación base es base 5.3.1-3.fc13

Solución

Entonces si ves que requieres la versión de php 5.6.20 verás que para fedora la tienes disponible hasta fedora 22 mediante updates 5.6.23-1.fc22 ya que la instalación base es 5.6.8-1.fc22

Retroalimentación

Espero que ésto sea útil, comenta si tienes alguna observación sobre esto, para profundizar sobre el tema.

Off topic

Si te sobra el tiempo visita
www.richardsite.com
www.allabord.com

Estas páginas tienen la intención de ser un catálogo de sitios de Internet clasificados por sección.

Si tienes algún sitio que te agrade lo puedo incluir. O tú mismo puedes agregar información como tu dirección en Internet de tu Home Page, Twitter, Facebook, Instagram, etc.

junio 17, 2019

Cambiar el upload_max_size de php para WordPress

How to Check Your Maximum File Upload Size Limit in WordPress?

WordPress will automatically show the maximum file upload size limit when you are uploading images or media. To check it you can simply go to Media » Add New page and you will see the maximum file uplaod size limit for your WordPress site.
Checking maximum file upload size limit in WordPress

1: Theme Functions File

There are cases where we have seen that just by adding the following code in theme’s functions.php file, you can increase the upload size:
1
2
3
@ini_set( 'upload_max_size' , '64M' );
@ini_set( 'post_max_size', '64M');
@ini_set( 'max_execution_time', '300' );

2. Create or Edit an existing PHP.INI file

For this method you will need to access your WordPress site’s root folder by using FTP or File Manager app in your hosting account’s cPanel dashboard.
In most cases if you are on a shared host, then you will not see a php.ini file in your directory. If you do not see one, then create a file called php.ini and upload it in the root folder. In that file add the following code:
1
2
3
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
This method is reported to work for many users. Remember if 64 doesn’t work, then try 10MB (sometimes that work).

3. htaccess Method

Some people have tried using the .htaccess method where by modifying the .htaccess file in the root directory, you can increase the maximum upload size in WordPress. Edit the .htaccess file in your WordPress site’s root folder and add the following code:
1
2
3
4
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
Again, it is important that we emphasize that if you are on a shared hosting package, then these techniques may not work. In that case, you would have to contact your web hosting provider to increase the limit for you.

We hope this article helped you increase the maximum file upload size in WordPress. If you are still having issues, then follow the steps in our WordPress troubleshooting guide to fix it.

Fuente: https://www.wpbeginner.com/wp-tutorials/how-to-increase-the-maximum-file-upload-size-in-wordpress/


Ok. Si hiciste todo esto y no funciona.

Falta reiniciar los servicios.
service httpd restart


Si no funciona, también reiniciar php-fpm

service php-fpm stop
service php-fpm start

marzo 16, 2017

Convatiendo el SPAM buscando en X-PHP-Originating-Script: 1000:object.php(1953) : eval()'d code

Un par de veces me han llamado para investigar un servidor web, ejecutar una aplicación PHP como WordPress, que está enviando correo spam y eliminar la función responsable.
En primer lugar, necesitamos saber de qué guión se origina el mensaje.


Abrir php.ini
vi /etc/php.ini

Agregue la línea siguiente y guarde
mail.add_x_header = On

Reiniciar el servicio de php
service httpd restart

Esto agregará el encabezado siguiente a todos los mensajes que se originan desde el servidor que define el UID y el nombre de archivo del script.
X-PHP-Originating-Script: 1000:object.php

Si no tiene los encabezados del mensaje entonces tendremos que investigar.

Este ejemplo usa Exim , pero el proceso es similar para otros servidores de correo como Postfix o Sendmail.

Quiero intentar localizar el mensaje o los mensajes ofensivos así que tendré que comprobar los registros. Sé que el mensaje era reciente por lo que en este caso sólo quiero cola el final del registro.


tail /var/log/exim/main.log

Cada mensaje tiene una ID única que suele ser la tercera columna después de la fecha y la hora.
2015-11-18 10:58:38 1Zz0Nc-00067L-1N spamming@to.com [111.111.111.111]

Puedo revelar los encabezados de ese mensaje como si
/usr/sbin/exim  -Mvh 1Zz0Nc-00067L-1N

Y tendrás los encabezados mostrados en tu terminal junto con X-PHP-Originating-Script
Digamos que sabemos que el archivo ofensivo es object.php y se está enviando a través de nuestra aplicación, ahora tenemos que finalizar y eliminar el script.


find /home/mysite.com -iname "object.php"

el resultado obtendrá la lista de archivos donde se encuentra la incidencia

Para el caso de:
X-PHP-Originating-Script: 1000:object.php(1953) : eval()'d code

1000 se  refiere al uid de quien lo mandó, para esto hay que checar el /etc/passwd
object.php es el archivo malicioso
(1953) al parecer son las líneas de código

Para averiguar las cuantas líneas de código y la ruta del archivo se puede usar los siguientes comandos en terminal

find / -iname "object.php" -exec wc -l {} +

o

find /var/www/html/ -iname "object.php" -exec wc -l {} +

Fuente: https://joebuckle.me/quickie/php-find-which-script-is-sending-spam-mail/

octubre 17, 2016

PHP cambiar el tamaño máximo para subir archivos

PHP change the maximum upload file size

En el archivo de configuración de php (php.ini) usualmente ubicado en /etc/php.ini hay que cambiar los valores:

upload_max_filesize
post_max_size

; Maximum allowed size for uploaded files.
upload_max_filesize = 40M

; Must be greater than or equal to upload_max_filesize
post_max_size = 40M

Fuente: http://stackoverflow.com/questions/2184513/php-change-the-maximum-upload-file-size

julio 01, 2010

Linux - PHP - phpMyAdmin - Extensión mcrypt

Error:
no se pudo cargar la extensión mcrypt,
por favor revise su configuración de PHP.

Solución:


# yum search mcrypt

# yum install php-mcrypt

# /etc/init.d/httpd restart



.

abril 09, 2008

Webmaster - Documentación de código

Versión corta


Usando  /* */

/**

* @file_name     - archivo.php

* @function_name - nombre de la función
*
* @short_description - descripción breve de la función o del archivo
* @full_description  - descripción de la función o del archivo
*
* @param1 string descripción

* @param2 int    descripción
*
* @return valor que regresa [string, array, int]
*
* @version 1
* @date begin 10/Abr/2008
* @date update 1/Feb/2009

*
* @author [ richard_site@dominio.com | www.richardsite.com.mx ]
*/


Usando //

// -----------------------------------------------------------
// descripción de la función o del archivo

// -----------------------------------------------------------
// @file archivo.php
// @param string
// @return valor que regresa [string, array, int]
// @version 1
// @author richard_site@
email.com
// -----------------------------------------------------------



¿Qué documentar?

  • La breve descripción.
  • La implementación.
  • La toma de decisiones.

La breve descripción

  • Qué hace una función (no como lo hace).
  • Qué hace un método de una clase.
  • Qué parámetros hay que pasar.
  • Qué devuelve.
  • Ejemplo de uso.

A quién va dirigida: Esta información es útil para las personas que utilizan funciones o clases diseñadas por otros.

La implementación


  • Dentro de una función, cómo se lleva a cabo cada paso.
  • Por qué se utiliza esta variable y no aquella.
  • Qué algoritmo se utiliza.
  • Qué hacen los métodos privados de una clase.
A quién va dirigida: Esta información sólo interesa a las personas que necesiten depurar o actualizar el bloque de código.

La toma de decisiones


  • Por qué se ha implementado de una determinada forma y no de otra




    • por razones de rendimiento
    • por optimización de recursos


Normalmente la información sobre la implementación no necesita salir del código.
A quién va dirigida: Esta información interesa tanto a nivel de implementación (desarrollador) como a nivel funcional (responsable de desarrollo).

Por el contrario, la información de la breve descripción conviene pasarla a un documento independiente del código fuente (manual de uso). La persona que necesite utilizar una determinada librería de clases o funciones tendrá toda la información necesaria: qué hace cada elemento y cómo se utiliza. No necesita acceder al código fuente.

El problema con este tipo de documentación es que cada vez que se modifica algo en el código (actualizaciones, corrección de errores, etc…) hay que reflejarlo también en el manual de uso… doble trabajo.

Lo ideal por tanto sería poder automatizar de alguna forma este proceso.

Herramientas para documentar


Existen algunas herramientas que permiten generar documentación de forma automática a partir del código fuente.

Java


Javadoc es la herramienta estándar en Java.

PHP


Para PHP una de las herramientas más utilizadas es phpDocumentor (www.phpdoc.org).

DocBlock


En phpDocumentor la documentación se distribuye en bloques DocBlock. Estos bloques siempre se colocan justo antes del elemento al que documentan y su formato es:


/**
* Descripción breve (una línea)
*
* Descripción extensa. Todas las líneas que
* sean necesarias
* Todas las líneas comienzan con *
<- Esta línea es ignorada * * Este DocBlock documenta la función suma() */ function suma() { … }


Los elementos que pueden ser documentados son:
  • define
  • function
  • class
  • class vars
  • include
  • require
  • include_once
  • require_once
  • global variables


Además se puede incluir documentación globlal a nivel de fichero y clase mediante la marca @package

Marcas (tags)


Dentro de un bloque DocBlock se pueden incluir marcas que serán interpretadas por phpDocumentor de forma especial.

Hay una serie de marcas estándar que pueden ir dentro de todos los DocBlock:
MarcaSignificado
@accessSi @access es ‘private’ no se genera documentación para el elemento (a menos que se indique explícitamente). Muy interesante si sólo se desea generar documentación sobre la interfaz (métodos públicos) pero no sobre la implementación (métodos privados).
@authorAutor del código
@copyrightInformación sobre derechos
@deprecatedPara indicar que el elemento no debería utilizarse, ya que en futuras versiones podría no estar disponible.
@examplePermite especificar la ruta hasta un fichero con código PHP. phpDocumentor se encarga de mostrar el código resaltado (syntax-highlighted).
@ignoreEvita que phpDocumentor documente un determinado elemento.
@internal inline {@internal}Para incluir información que no debería aparecer en la documentación pública, pero sí puede estar disponible como documentación interna para desarrolladores.
@link inline {@link}Para incluir un enlace (http://…) a un determinado recurso.
@seeSe utiliza para crear enlaces internos (enlaces a la documentación de un elemento).
@sincePermite indicar que el elemento está disponible desde una determinada versión del paquete o distribución.
@versionVersión actual del elemento


Ejemplo:


/**
* Emilious Sender (class worker) :)
*
* Envio de emails (MIME - multipart)
*
* Codificacion de mensajes segun RFC-822
* Utiliza la especificacion mime
* Permite enviar ficheros adjuntos utilizando
* Permite el envio a multiples destinatarios
*
* @author Enrique Fernandez-Perera [Epsilon Eridani]
* @author http://www.epsilon-eridani.com
*
* @package Emilious_Sender
*/
class Emilious_Sender
{
//// aqui la implementacion de la clase
}


Y existen otras marcas que sólo se pueden incluir en los bloques de determinados elementos:

Declaración de funciones (elemento function)
Marca Significado
@global Permite especificar el uso de variables globales dentro de la función.
@param

Parámetros que recibe la función. Formato:
* @param tipo $nombre_var comentario
@return Valor devuelto por la función. Formato:
* @return tipo comentario

NOTA: Tipos de datos en PHP (para indicar en @param, @return, etc…):

array
string
boolean
integer
float
object
mixed

Ejemplo:

/**
* Verifica si una direccion de correo es correcta o no.
*
* @return boolean true si la direccion es correcta
* @param string $email direccion de correo
*/
function check_dir_email ($email)
{
….
}

Ejemplo de documentación de un método privado (la documentación no aparecerá a menos que se especifique de forma explícita):

/**
* localiza las imagenes dentro del contenido
*
* @access private
* @param string $dir_imagenes path al directorio de imagenes
*/
function encuentra_html_imagenes($dir_imagenes)
{
….
}

Ejemplo de un comentario interno, @internal, que no aparecerá en la documentación de interfaz (documentación pública).

/**
* cuerpo del mensaje
*
* Para mandar texto HTML, $body tiene que ser un array
* de la forma (es preferible utilizar body_html()):
* $body[’html’] = $texto_html;
* $body[’texto’] = $texto_plano; (opcional)
* $body[’dir_imagenes’] = $dir_imagenes; (opcional)
*
* @internal Si $this->body_con_html==true el valor de $ctype no se tiene en cuenta.
*
* @param mixed $body contenido del mensaje
* @param string $ctype (opcional) mime-type del contenido (text/plain si es texto)
* @param string $charset (opcional)
*/
function body($body, $ctype=”", $charset=”")
{

Variables de clase (atributos)
Marca Significado
@var Documenta los atributos de la clase. Formato:
* @var tipo comentario

Ejemplo:

/**
* array de destinatarios del mensaje
* @var array destinatarios
* @access private
*/
var $to;



Generar la documentación

phpDocumentor permite generar la documentación de varias formas y en varios formatos.

Opciones para generar documentación:

1. Desde línea de comandos (php CLI - Command Line Interpreter)
2. Desde interfaz web (incluida en la distribución)
3. Desde código. Como phpDocumentor está desarrollado en PHP, podemos incluir su funcionalidad dentro de scritps propios.

¿Qué hay que especificar?

1. El directorio en el que se encuentra nuestro código. phpDocumentor se encarga de recorrer los subdirectorios de forma automática
2. Opcionalmente los paquetes (@pakage) que deseamos documentar, lista de ficheros incluidos y/o excluidos y otras opciones interesantes para personalizar la documentación.
3. El directorio en el que se generará la documentación
4. Si la documentación va a ser pública (sólo interfaz) o interna (en este caso aparecerán los bloques private y los comentarios @internal).
5. El formato de salida de la documentación

Formatos de salida

1. HTML a través de un buen número de plantillas predefinidas (podemos definir nuestra propia plantilla de salida)
2. PDF
3. XML (DocBook). Muy interesante puesto que a partir de este dialecto podemos transformar (XSLT) a cualquier otro utilizando nuestras propias reglas y hojas de estilo.



Más información sobre phpDocumentor

En este artículo sólo se han incluido algunas pinceladas sobre esta herramienta. Para saber más puedes echar un vistazo en www.phpdoc.org


¿Cómo poner el conteo de las filas en una consulta en MySql?

 ¿Cómo poner el conteo de las filas en una consulta en MySql? SELECT  @rownum := @rownum + 1 AS contador,  /*Contador*/ t.*  /* nombre d...