Page 1
more
Standard

Solución: Could not find gem ‘mysql2 (~> 0.4.0)’

Al instalar redmine en Debian 9.2 aparece el error:

Could not find gem 'mysql2 (~> 0.4.0)' in any of the gem sources listed in your
Gemfile or available on this machine.

Solución:

sudo apt-get install ruby-mysql2

Una sugerencia que aun no he probado es instalarlo así:

apt-get install redmine redmine-mysql

 

more
more
more
more
Standard

Conectar Codeigniter con MSSQL en Ubuntu

A continuación muestro como conectar codeigniter con mssql en ubuntu

Para ubuntu 14 con php5

apt-get install unixodbc freetds freetds-dev tdsodbc php5-odbc

Para Ubuntu 16 con php7

apt-get install unixodbc freetds-common freetds-dev tdsodbc php7.0-odbc

Reiniciar Apache

service apache2 restart

Editar /etc/freetds/freetds.conf

[nombre-servidor]
host = 192.168.10.10
port = 1433
tds version = 7.3

La version TDS 7.3 es para SQL Server 2008, para ver un listado de los protocolos visitar este link

 

Editar /etc/odbcinst.ini 

[TDS]
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Description = FreeTDS driver
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so

 

Editar /etc/odbc.ini

[mi-servidor]
Driver = TDS
Description = Descripcion 
ServerName = nombre-servidor
Database = bd_ejemplo

El ServerName es el nombre del servidor en el archivo de configuración freetds.conf, en el archivo de configuración de codeigniter debe tener algo así:

$db['mssql'] = array(
'dsn' => '',
'hostname' => 'dsn=my-server;uid=myusername;pwd=mypassword',
'username' => '',
'password' => '',
'database' => 'MyDatabase',
'database' => '',
'dbdriver' => 'odbc',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);

y se llama de esta forma:

class Prueba_Model extends CI_Model{
	public function __construct(){
	parent::__construct();
	$this->pruebadb = $this->load->database('mssql', true);
}

 

more
more
Standard

PHP Warning: file_put_contents(TelegramException.log): failed to open stream: Permission denied in …/vendor/longman/telegram-bot/src/Exception/TelegramException.php on line 24

Luego de revisar la línea 24 del archivo al que hace referencia, se puede observar que trata de escribir y añadir un log.

namespace Longman\TelegramBot\Exception;

class TelegramException extends \Exception
{

    public function __construct($message, $code = 0)
    {
        parent::__construct($message, $code);

        $path = 'TelegramException.log';
        $status = file_put_contents(
            $path,
            date('Y-m-d H:i:s', time()) .' '. self::__toString() . "\n",
            FILE_APPEND
        );

    }
}

Pero no tiene permisos de hacerlo. Por lo que hay que darselos a la carpeta en donde se encuentra el archivo php que se esta ejecutando

chmod 777 [carpeta donde se esta ejecutando el script php]

 

more
Standard

Cacti no grafica

En mi caso me quedé sin espacio en disco. Luego cacti dejó de graficar. El problema se encuentra en que se daña una tabla llamada poller_output. Hay que borrarla y volverla a generar con la siguiente consulta:

DROP TABLE IF EXISTS `poller_output`;

CREATE TABLE `poller_output` (
  `local_data_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `rrd_name` varchar(19) NOT NULL DEFAULT '',
  `time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `output` text NOT NULL,
  PRIMARY KEY (`local_data_id`,`rrd_name`,`time`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
more
Standard

Habilitar el acceso remoto a un servidor MySql en CentOS

Por defecto el acceso remoto a un servidor mysql viene deshabilitado. Este ejemplo aplica para CentOS

Editamos la configuracion de mysql:

nano /etc/my.cnf

Buscamos la linea bind-address y se comenta con un #

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
#bind-address=0.0.0.0

Desde la maquina local se ingresa como usuario root para crear un usuario nuevo con acceso remoto

mysql -h localhost -u root -p

Se crea el usuario:

GRANT ALL PRIVILEGES ON *.* TO 'usuarionuevo'@'localhost' IDENTIFIED BY 'contraseña' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'usuarionuevo'@'%' IDENTIFIED BY 'contraseña' WITH GRANT OPTION;

Se reinicia el servicio:

/etc/init.d/mysql restart

Se añade la regla que permite el acceso a través del puerto 3306

iptables -I INPUT -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
/sbin/service iptables save 

Y listo, se realiza las pruebas:

mysql -u usuarionuevo -h 192.168.10.50 -p password

Opcional: para descartar que el bloqueo lo esté realizando el firewall se puede deshabilitar para realizar pruebas:

service iptables stop

 

more