Instalar Enterprise Architect en GNU/Linux

Esta es una guía para la instalación de Enterprise Architect en Linux Mint pero que seguramente servirá en distribuciones basadas en un Ubuntu así como para demás distribuciones GNU/Linux.

Para comenzar nos convertimos en root:

javoaxian@vboxlinuxmintjx $ sudo su -

Ahora instalamos Wine y los siguientes paquetes:

root@vboxlinuxmintjx # apt-get install wine
root@vboxlinuxmintjx # dpkg --add-architecture i386
root@vboxlinuxmintjx # add-apt-repository ppa:wine/wine-builds
root@vboxlinuxmintjx # apt-get update
root@vboxlinuxmintjx # apt-get install --install-recommends winehq-devel
root@vboxlinuxmintjx # apt-get install winetricks
root@vboxlinuxmintjx # apt-get install fonts-crosextra-carlito

Dejamos de ser el usuario root.

root@vboxlinuxmintjx # exit

Y ahora ejecutamos lo siguiente:

javoaxian@vboxlinuxmintjx $ winetricks msxml3

Se nos mostrará la siguiente pantalla:

jx_post_1116_01

presionamos Instalar y se nos mostrará la siguiente pantalla:

jx_post_1116_02

presionamos Instalar y se mostrará la siguiente pantalla:

jx_post_1116_03

presionamos Instalar y se mostrará la siguiente pantalla:

jx_post_1116_04

Si como a mi, después de ejecutar lo anterior se cierra la pantalla y después ya no pasa nada, entonces lo siguiente que se puede hacer es volver a ejecutar el siguiente comando:

javoaxian@vboxlinuxmintjx $ winetricks msxml3

Se nos abrirá Nautilus en donde debió descargar el archivo msxml3.msi que necesitamos y también se abrirá el navegador para descargar el archivo.

jx_post_1116_05

Se nos presenta la interfaz para descargar el archivo y lo guardamos:

jx_post_1116_06

Una vez guardado yo copie el archivo al directorio donde regularmente se descarga y presionas:

jx_post_1116_07

Ahora hacemos doble clic en el archivo y se nos mostrará la siguiente pantalla:

jx_post_1116_08

Presionamos Next > y se muestra la siguiente pantalla:

jx_post_1116_09

Seleccionamos que aceptamos los términos y presionamos en Next >. se mostrará la siguiente pantalla:

jx_post_1116_10

Sólo presionamos Next > en esta pantalla y se mostrará la siguiente:

jx_post_1116_11

Presionamos Install y  se mostrará la siguiente pantalla:

jx_post_1116_12

Presionamos Finish y terminará la instalación de este paquete.

Descargamos e instalamos el siguiente paquete:

javoaxian@vboxlinuxmintjx $ winetricks msxml4

Ahora si en este paquete me mostró la siguiente pantalla:

jx_post_1116_13

Presionamos Next > y se muestra la siguiente pantalla:

jx_post_1116_14

Aceptamos los términos y presionamos Next >. Se mostrará la siguiente pantalla:

jx_post_1116_15

Presionamos Next > y se presenta la siguiente pantalla:

jx_post_1116_16

Presionamos sobre Install Now, se mostrará la siguiente pantalla:

jx_post_1116_17

Presionamos Finish y terminará la instalación de este paquete.

Descargamos e instalamos el siguiente paquete:

javoaxian@vboxlinuxmintjx $ winetricks mdac28

Se mostrará la siguiente pantalla:

jx_post_1116_18

Aceptamos los términos y presionamos Siguiente >. Se mostrará la siguiente pantalla:

jx_post_1116_19

Presionamos Terminar y se mostrará la siguiente pantalla:

jx_post_1116_20

Presionamos Close y terminará la instalación de este paquete.

Ahora descargamos Enterprise Architect si queremos la versión trial o si tenemos el de con licencia utilizamos ese:

Enterprise Architect

Una vez descargado, podemos ejecutar dando doble clic sobre el archivo descargado o desde la opción del navegador, como sea nuestro gusto:

jx_post_1116_21

Se mostrará la siguiente pantalla:

jx_post_1116_22

Presionamos en Next y se mostrará la siguiente pantalla:

jx_post_1116_23

Aceptamos los términos y presionamos Next. Se mostrará la siguiente pantalla:

jx_post_1116_24

Presionamos Next y se mostrará la siguiente pantalla:

jx_post_1116_25

Presionamos Next y se mostrará la siguiente pantalla:

jx_post_1116_26

Presionamos Install y se mostrará la siguiente pantalla:

jx_post_1116_27

Finalizada la instalación se mostrará la siguiente pantalla:

jx_post_1116_28

Presionamos Finish y terminará la instalación.

Con esto ya tenemos instalado Enterprise Architect y ahora si ya podemos abrirlo ya que ya lo tenemos instalado en nuestros paquetes:

jx_post_1116_29

jx_post_1116_30

 

Instalando Yii 2

Yii2 es un framework de desarrollo que me ha gustado utilizar para programar en PHP, tiene dos versiones, la versión básica y la versión más completa donde se tiene la parte pública y la parte administrativa. En este post sólo explicaré cómo instalar la versión básica.

Yii tiene varias formas de instalarse aunque la recomendada es la siguiente, para lo cuál deberemos tener instalado Composer.

En el siguiente post indico como instalarlo:

Composer: herramienta para administrar dependencias en PHP

Una vez que tenemos instalado Composer, nos moveremos al directorio donde trabajaremos el proyecto, ya sea el directorio htdocs de Apache o el public_html de una cuenta de usuario o un directorio donde se configuró un Virtual Host. Para este ejemplo yo lo realizaré en el directorio public_html de mi cuenta.

Para ello nos moveremos a la carpeta:

javoaxian@vaiolinuxmintjx $ cd $HOME/public_html

Ahora ejecutamos la instalación del proyecto el cual lo llamaré: proyectoyii:

javoaxian@vaiolinuxmintjx $ composer create-project --prefer-dist yiisoft/yii2-app-basic proyectoyii

Puede que nos mandé algunos mensajes de error como el siguiente que a mi me mostró, en el cuál se especifica que me falta una configuración hecha en PHP para que Yii2 trabaje correctamente:

Installing yiisoft/yii2-app-basic (2.0.13)
  - Installing yiisoft/yii2-app-basic (2.0.13): Loading from cache
Created project in proyectoyii
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - yiisoft/yii2 2.0.9 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - yiisoft/yii2 2.0.8 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - yiisoft/yii2 2.0.7 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - yiisoft/yii2 2.0.6 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - yiisoft/yii2 2.0.5 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - yiisoft/yii2 2.0.13.1 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - yiisoft/yii2 2.0.13 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - yiisoft/yii2 2.0.12 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - yiisoft/yii2 2.0.11.2 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - yiisoft/yii2 2.0.11.1 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - yiisoft/yii2 2.0.11 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - yiisoft/yii2 2.0.10 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - Installation request for yiisoft/yii2 ~2.0.5 -> satisfiable by yiisoft/yii2[2.0.10, 2.0.11, 2.0.11.1, 2.0.11.2, 2.0.12, 2.0.13, 2.0.13.1, 2.0.5, 2.0.6, 2.0.7, 2.0.8, 2.0.9].

  To enable extensions, verify that they are enabled in your .ini files:
    - /usr/local/php/lib/php.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Para resolverlo deberemos compilar PHP con la opción –enable-mbstring.

Aquí dejo el post de instalar PHP, sólo hay que agregar en el comando configure poner la opción –enable-mbstring.

Aquí dejo un ejemplo:

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-pdo-mysql --with-openssl --with-zlib --enable-mbstring

Una vez compilado de esta manera PHP, se nos indicará que fue creado correctamente nuestro proyecto:

Installing yiisoft/yii2-app-basic (2.0.13)
  - Installing yiisoft/yii2-app-basic (2.0.13): Loading from cache
Created project in proyectoyii
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 60 installs, 0 updates, 0 removals
  - Installing yiisoft/yii2-composer (2.0.5): Loading from cache
  - Installing swiftmailer/swiftmailer (v5.4.8): Loading from cache
  - Installing bower-asset/jquery (3.2.1): Loading from cache
  - Installing bower-asset/yii2-pjax (2.0.7.1): Loading from cache
  - Installing bower-asset/punycode (v1.3.2): Loading from cache
  - Installing cebe/markdown (1.1.2): Loading from cache
  - Installing ezyang/htmlpurifier (v4.9.3): Loading from cache
  - Installing bower-asset/inputmask (3.3.11): Loading from cache
  - Installing yiisoft/yii2 (2.0.13.1): Loading from cache
  - Installing yiisoft/yii2-swiftmailer (2.0.7): Loading from cache
  - Installing bower-asset/bootstrap (v3.3.7): Loading from cache
  - Installing yiisoft/yii2-bootstrap (2.0.7): Loading from cache
  - Installing yiisoft/yii2-debug (2.0.13): Loading from cache
  - Installing bower-asset/typeahead.js (v0.11.1): Loading from cache
  - Installing phpspec/php-diff (v1.1.0): Loading from cache
  - Installing yiisoft/yii2-gii (2.0.6): Loading from cache
  - Installing fzaninotto/faker (v1.7.1): Loading from cache
  - Installing yiisoft/yii2-faker (2.0.3): Loading from cache
  - Installing sebastian/diff (2.0.1): Loading from cache
  - Installing sebastian/recursion-context (3.0.0): Loading from cache
  - Installing sebastian/exporter (3.1.0): Loading from cache
  - Installing sebastian/comparator (2.1.2): Downloading (100%)         
  - Installing behat/gherkin (v4.4.5): Loading from cache
  - Installing symfony/polyfill-mbstring (v1.6.0): Loading from cache
  - Installing symfony/dom-crawler (v4.0.3): Loading from cache
  - Installing symfony/css-selector (v4.0.3): Loading from cache
  - Installing symfony/browser-kit (v4.0.3): Loading from cache
  - Installing symfony/yaml (v4.0.3): Loading from cache
  - Installing symfony/event-dispatcher (v4.0.3): Loading from cache
  - Installing symfony/console (v4.0.3): Loading from cache
  - Installing symfony/finder (v4.0.3): Loading from cache
  - Installing psr/http-message (1.0.1): Loading from cache
  - Installing guzzlehttp/psr7 (1.4.2): Loading from cache
  - Installing doctrine/instantiator (1.1.0): Loading from cache
  - Installing phpunit/php-text-template (1.2.1): Loading from cache
  - Installing phpunit/phpunit-mock-objects (4.0.4): Loading from cache
  - Installing theseer/tokenizer (1.1.0): Loading from cache
  - Installing sebastian/version (2.0.1): Loading from cache
  - Installing sebastian/environment (3.1.0): Loading from cache
  - Installing sebastian/code-unit-reverse-lookup (1.0.1): Loading from cache
  - Installing phpunit/php-token-stream (2.0.2): Loading from cache
  - Installing phpunit/php-file-iterator (1.4.5): Loading from cache
  - Installing phpunit/php-code-coverage (5.3.0): Loading from cache
  - Installing sebastian/resource-operations (1.0.0): Loading from cache
  - Installing sebastian/object-reflector (1.1.1): Loading from cache
  - Installing sebastian/object-enumerator (3.0.3): Loading from cache
  - Installing sebastian/global-state (2.0.0): Loading from cache
  - Installing phpunit/php-timer (1.0.9): Loading from cache
  - Installing webmozart/assert (1.2.0): Loading from cache
  - Installing phpdocumentor/reflection-common (1.0.1): Loading from cache
  - Installing phpdocumentor/type-resolver (0.4.0): Loading from cache
  - Installing phpdocumentor/reflection-docblock (4.2.0): Loading from cache
  - Installing phpspec/prophecy (1.7.3): Loading from cache
  - Installing phar-io/version (1.0.1): Loading from cache
  - Installing phar-io/manifest (1.0.1): Loading from cache
  - Installing myclabs/deep-copy (1.7.0): Loading from cache
  - Installing phpunit/phpunit (6.4.4): Loading from cache
  - Installing codeception/base (2.3.7): Loading from cache
  - Installing codeception/verify (0.3.3): Loading from cache
  - Installing codeception/specify (0.4.6): Loading from cache
symfony/browser-kit suggests installing symfony/process ()
symfony/event-dispatcher suggests installing symfony/dependency-injection ()
symfony/event-dispatcher suggests installing symfony/http-kernel ()
symfony/console suggests installing symfony/lock ()
symfony/console suggests installing symfony/process ()
symfony/console suggests installing psr/log (For using the console logger)
phpunit/phpunit-mock-objects suggests installing ext-soap (*)
phpunit/php-code-coverage suggests installing ext-xdebug (^2.5.5)
sebastian/global-state suggests installing ext-uopz (*)
phpunit/phpunit suggests installing phpunit/php-invoker (^1.1)
phpunit/phpunit suggests installing ext-xdebug (*)
codeception/base suggests installing aws/aws-sdk-php (For using AWS Auth in REST module and Queue module)
codeception/base suggests installing codeception/phpbuiltinserver (Start and stop PHP built-in web server for your tests)
codeception/base suggests installing flow/jsonpath (For using JSONPath in REST module)
codeception/base suggests installing phpseclib/phpseclib (for SFTP option in FTP Module)
codeception/base suggests installing league/factory-muffin (For DataFactory module)
codeception/base suggests installing league/factory-muffin-faker (For Faker support in DataFactory module)
codeception/base suggests installing symfony/phpunit-bridge (For phpunit-bridge support)
codeception/base suggests installing stecman/symfony-console-completion (For BASH autocompletion)
Writing lock file
Generating autoload files
> yii\composer\Installer::postCreateProject
chmod('runtime', 0777)...done.
chmod('web/assets', 0777)...done.
chmod('yii', 0755)...done.
> yii\composer\Installer::postInstall

Ahora desde nuestro navegador podremos entrar ya a nuestro proyecto con Yii2. Cabe recordar que este proyecto lo coloqué en el directorio public_html de mi cuenta de usuario, por lo que ingresaré de la siguiente forma en el navegador:

http://localhost/~javoaxian/proyectoyii/web/index.php

se nos mostrará la siguiente pantalla:

jx_post_1104_01

Existe un archivo de requerimientos mínimos de Yii2, para ingresar a él:

http://localhost/~javoaxian/proyectoyii/requirements.php

se nos mostrará la siguiente pantalla:

jx_post_1104_02

Con esto ya tenemos nuestro primer proyecto de Yii2, ahora será cuestión de empezar a desarrollar en él.

Configurar Virtual Host de Apache y que nuestro equipo responda a un dominio ficticio en GNU/Linux

Muchas veces cuando desarrollo proyectos en PHP me gusta configurarles un Virtual Host en Apache y simular que estoy trabajando en dominio en el que quedarán.

Suponiendo que tienen la instalación como la que especifiqué en este post, en la siguiente ruta se encontrará el archivo httpd-vhosts.conf.

/usr/local/apache/conf/extra/httpd-vhosts.conf

En dicho archivo podremos agregar los directorio virtuales que queramos. Para este ejemplo, voy a crear un Virtual Host en con el dominio miejemplo.com, donde los archivos los almacenaré en el directorio /home/javoaxian/miejemplo.com.

Recordar que los cambios a los archivos de configuración de Apache como reiniciar éste, son como usuario root.

La configuración en el archivo httpd-vhosts.conf para lo anterior sería la siguiente:

<VirtualHost *:80>
    DocumentRoot "/home/javoaxian/miejemplo.com"
    ServerName miejemplo.com
    <Directory "/home/javoaxian/miejemplo.com">
        Options FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Guardada esta configuración, necesitamos modificar el archivo httpd.conf para poder habilitar los Virtual Host. En mi caso se encuentra en la siguiente ruta:

/usr/local/apache/conf/httpd.conf

Buscamos la línea:

#LoadModule vhost_alias_module modules/mod_vhost_alias.so

Y la descomentamos quedando de la siguiente manera:

LoadModule vhost_alias_module modules/mod_vhost_alias.so

Ahora buscamos la línea:

#Include conf/extra/httpd-vhosts.conf

y la descomentamos:

Include conf/extra/httpd-vhosts.conf

Ahora reiniciamos Apache para que funcione la nueva configuración:

root@vaiolinuxmintjx # apachectl restart

Hecha la configuración de Apache, deberemos crear en el HOME de nuestro usuario el directorio miejemplo.com:

javoaxian@vaiolinuxmintjx $ mkdir miejemplo.com

Dentro de ese directorio, crearé un archivo index.html muy sencillo con la leyenda:

Hola miejemplo.com

para hacerlo sencillo lo crearé así:

javoaxian@vaiolinuxmintjx $ echo "Hola miejemplo.com" > miejemplo.com/index.html

Ahora trataremos de ver la página de nuestro proyecto poniendo la siguiente dirección en nuestro navegador:

http://miejemplo.com

a lo que en el navegador nos responderá que no encuentra la página.

Aquí es donde viene el truco para que encuentre este dominio y es configurar el archivo del GNU/Linux:

/etc/hosts

Si editamos el archivo, podremos ver un contenido similar al siguiente:

127.0.0.1	localhost
127.0.1.1	vaiolinuxmintjx

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Aquí lo modificaremos para que quede de la siguiente manera:

127.0.0.1       localhost
127.0.1.1       vaiolinuxmintjx
localhost       miejemplo.com
127.0.0.1       miejemplo.com

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Recuerden editar el archivo anterior como usuario root.

Si volvemos ingresar a:

http://miejemplo.com

Y ahora si en el navegador nos mostrará el mensaje:

Hola miejemplo.com

Con esto ya podremos trabajar con nuestro proyecto y nuestro dominio simulado.

 

 

Habilitar public_html en Apache en GNU/Linux

Muchas veces deseamos configurar un servidor de desarrollo o algo similar, donde las cuentas de usuario puedan publicar sus páginas html. Para ello existe un directorio de Apache mejor conocido como public_html, en donde al habilitarlo, las cuentas de usuario en nuestro servidor, podrán tener dicho directorio y ahí podrían poner sus página.

Cabe mencionar que podemos cambiar el nombre de este directorio a por ejemplo htdocs que es el directorio principal de Apache donde se colocan las páginas html, o podríamos ponerle otro nombre, pero para seguir el estándar, sólo habilitaremos el directorio public_html.

Para ello en donde se tiene instalado Apache encontrará el directorio:

extra

Si realizaron la instalación de Apache como en este post que hice, podrán encontrarlo en:

/usr/local/apache/conf/extra

Ahí se encontrará el archivo:

httpd-userdir.conf

El cuál ya tiene una configuración predeterminada.

Ahora lo que necesitamos hacer es editar el archivo httpd.conf que en la instalación antes mencionada lo podemos localizar en:

/usr/local/apache/conf/httpd.conf

buscar la siguiente línea:

#LoadModule userdir_module modules/mod_userdir.so

y descomentarlas quedando de la siguiente manera:

LoadModule userdir_module modules/mod_userdir.so

Ahora buscamos la línea:

#Include conf/extra/httpd-userdir.conf

y la descomentamos quedando de la siguiente manera:

Include conf/extra/httpd-userdir.conf

Ahora sólo bastará con guardar los cambios y reiniciar Apache para que nos habilite el directorio.

Para probarlo, creen el directorio public_html en su HOME y coloquen un archivo html.

Para ver la página html que se acaba de colocar, se deberá ingresar en el navegador algo como lo siguiente:

http://localhost/~usuario/archivo.html

Para ejemplificar esto mi usuario es javoaxian y mi archivo le llamaré hola.html, por lo que pondré lo siguiente:

http://localhost/~javoaxian/hola.html

Y con esto podrán ver la página en el navegador.

Composer: herramienta para administrar dependencias en PHP

Composer es una herramienta que nos sirve para administración de dependencias en PHP. Permite declarar las bibliotecas que se usan en nuestro proyecto y a su vez nos permite instalarlas y administrarlas.

Para instalarlo ejecutamos lo siguiente:

javoaxian@vboxlinuxmintjx $sudo su -
root@vboxlinuxmintjx # curl -sS https://getcomposer.org/installer | php

Y si obtenemos el siguiente error:

Some settings on your machine make Composer unable to work properly.
Make sure that you fix the issues listed below and run this script again:

The openssl extension is missing, which means that secure HTTPS transfers are impossible.
If possible you should enable it or recompile php with --with-openssl

Para resolverlo deberemos compilar PHP con la opción  –with-openssl.

Si obtenemos el siguiente error:

Downloading...

Composer (version 1.6.2) successfully installed to: /home/javoaxian/composer.phar
Use it: php composer.phar

Some settings on your machine may cause stability issues with Composer.
If you encounter issues, try to change the following:

The zlib extension is not loaded, this can slow down Composer a lot.
If possible, install it or recompile php with --with-zlib

The php.ini used by your command-line PHP is: /usr/local/php/lib/php.ini
If you can not modify the ini file, you can also run `php -d option=value` to modify ini values on the fly. You can use -d multiple times.

Para resolverlo deberemos compilar PHP con la opción  –with-zlib.

Aquí dejo el post de instalar PHP, sólo hay que agregar en el comando configure poner las opciones –with-openssl –with-zlib.

Aquí dejo un ejemplo:

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-pdo-mysql --with-openssl --with-zlib

Si por fin descargó correctamente se nos mostrará el siguiente mensaje:

All settings correct for using Composer
Downloading...
Composer (version 1.6.2) successfully installed to: /home/javoaxian/composer.phar

Use it: php composer.phar

Ahora movemos el archivo composer.phar al directorio /usr/local/bin.

root@vboxlinuxmintjx # mv composer.phar /usr/local/bin/composer

Y con eso tendremos instalado Composer.

Corebird: cliente de escritorio para Twitter

Corebird es un cliente para poder revisar nuestra cuenta de twitter, apenas lo estoy empezando a usar, pero me gusta la pitan que tiene. Se puede descargar de los repositorios de la distribución que tenemos.

Sitio: https://corebird.baedert.org/

Descarga: https://github.com/baedert/corebird

Gratuito: Sí.

Conectarse a una base de datos en SQL Server en línea de comandos

La manera para poder conectarnos a alguna base de datos en SQL Server desde la línea de comandos es la siguiente:

javoaxian@vaiolinuxmintjx $ sqlcmd -S servidor -U usuario -d base de datos

Aquí pongo un ejemplo de una conexión:

javoaxian@vaiolinuxmintjx $ sqlcmd -S localhost -U sa -d master

Esto nos permite entrar al prompt de SQL Server.

javoaxian@vaiolinuxmintjx $ sqlcmd -S localhost -U sa -d master
Password:
1>

Ahora ya podemos ejecutar comandos para crear bases de datos, tablas, crear consultas, etc.

Configurar PHP para conectarse a SQL Server

En este post voy a explicar la manera que me funcionó para poder configurar PHP para que se pueda conectar a SQL Server 2017.

Para poder realizar esta configuración, estaré en el supuesto que ya se tiene instalado lo siguiente:

Ya teniendo instalado todo ésto, vamos a proceder a ejecutar lo siguiente para la configuración.

Para comenzar nos convertiremos en usuario root.

javoaxian@vboxlinuxmintjx $ sudo su -

Ya como root, realizamos lo siguiente:

root@vboxlinuxmintjx # pear config-set php_ini `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` system
root@vboxlinuxmintjx ~ # pecl install sqlsrv

Si obtenemos el siguiente error:

Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

Instalamos el siguiente paquete para corregirlo:

root@vboxlinuxmintjx # apt-get install autoconf

Continuamos con la instalación y si ahora obtenemos el siguiente error:

root@vboxlinuxmintjx # checking whether we are using the GNU C++ compiler... no
checking whether g++ accepts -g... no
checking how to run the C++ preprocessor... /lib/cpp
configure: error: in `/tmp/pear/temp/pear-build-rootTlVXJL/sqlsrv-4.3.0':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details
ERROR: `/tmp/pear/temp/sqlsrv/configure --with-php-config=/usr/local/php/bin/php-config' failed

Instalamos el siguiente paquete para corregirlo:

root@vboxlinuxmintjx # apt-get install g++

Continuamos con la instalación y si ahora ya se instaló correctamente mandándonos el siguiente mensaje:

Build process completed successfully
Installing '/usr/local/php/lib/php/extensions/no-debug-zts-20170718/sqlsrv.so'
install ok: channel://pecl.php.net/sqlsrv-4.3.0
Extension sqlsrv enabled in php.ini

Entonces continuamos con la instalación del siguiente paquete:

root@vboxlinuxmintjx # pecl install pdo_sqlsrv

Una vez instalado correctamente se muestra el siguiente mensaje:

Build process completed successfully
Installing '/usr/local/php/lib/php/extensions/no-debug-zts-20170718/pdo_sqlsrv.so'
install ok: channel://pecl.php.net/pdo_sqlsrv-4.3.0
Extension pdo_sqlsrv enabled in php.ini

Esta instalación agregó las siguientes líneas en el archivo php.ini y si no las colocó, entonces hay que agregarlas:

extension="pdo_sqlsrv.so"
extension="sqlsrv.so"

Ahora reiniciamos el servidor Apache:

root@vboxlinuxmintjx # apachectl restart

Ahora podemos crear un archivo con la siguiente línea. En mi caso creé el archivo phpinfo.php en el directorio /usr/local/apache/htdocs:

<?php phpinfo(); ?>

Al ejecutar el archivo, nos mostrará la configuración y ahí podremos ver que ya se encuentra la extensión PDO de SQL Server la cual se llama pdo_sqlsrv.

jx_post_1057_01

Con esto ya tenemos configurado nuestro PHP para conectar con SQL Server.

Aquí dejo un archivo que obtuve de este artículo para que puedan comprobar la conexión a la base de datos, sólo se deberán cambiar los parámetros para conectarse a la base de datos. Sólo hay que quitar las extensión .txt para ejecutarlo.

Instalar PHP desde fuentes en GNU/Linux habilitando PDO para conexión a base de datos

En mi otro blog había hecho el post:

Instalar PHP desde fuentes en GNU/Linux

Este post no difiere mucho del que hice en el otro blog, sólo que se muestra como compilar PHP para poder usar las funciones de conexión y manejo de base de datos de la extensión PDO, la cual es la que ya a partir de hace algunos años, es la manera en que se debe conectar y manera la base de datos.

Antes que nada deberemos tener instalado ya Apache, aquí dejo este artículo actualizado para su instalación.

También deberemos descargar PHP.

php-7.2.1.tar.bz2

Ya instalado el servidor web y descargado los fuentes de PHP, vamos a realizar los siguientes pasos:

Para este post, tomaré de ejemplo MySQL

Para comenzar nos convertiremos en usuario root.

javoaxian@vboxlinuxmintjx $ sudo su -

Siguiente:

root@vboxlinuxmintjx $ cp /ruta/donde se descargo/php-7.2.1.tar.bz2 /usr/local/src/
root@vboxlinuxmintjx $ cd /usr/local/src/
root@vboxlinuxmintjx $ tar -jxvf php-7.2.1.tar.bz2
root@vboxlinuxmintjx $ cd php-7.2.1/
root@vboxlinuxmintjx $ ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-pdo-mysql

Si nos manda el siguiente error:

checking whether to enable LIBXML support... yes
checking libxml2 install dir... no
checking for xml2-config path...
configure: error: xml2-config not found. Please check your libxml2 installation.

Instalamos el siguiente paquete pare resolver el error:

root@vboxlinuxmintjx $ apt-get install libxml2-dev

Instalado el paquete anterior, continuamos con la instalación.

root@vboxlinuxmintjx $ make
root@vboxlinuxmintjx $ make install

Una vez terminada la compilación e instalación, deberemos copiar el archivo php.ini al directorio de instalación. Se nos proporcionan 2 archivo el php.ini-development y php.ini-production, yo utilizaré el primero para este ejemplo ya que lo utilizo más para desarrollo y prefiero su configuración para este fin.

root@vboxlinuxmintjx $ cp php.ini-development /usr/local/php/lib/php.ini

Ahora deberemos editar el archivo httpd.conf de apache, el cual en este ejemplo se encuentra en el directorio /usr/local/apache/conf/. En dicho archivo deberemos buscar las siguientes líneas:

 #
# AddType allows you to add to or override the MIME configuration
# file specified in TypesConfig for specific file types.
#
#AddType application/x-gzip .tgz

Y arriba de éstas agregaremos las líneas respectivas de PHP para que nos quede esa sección de esta forma:

 #PHP
AddType application/x-httpd-php .php .html .phtml .php3 .php4 .php5. .php7 .htm
AddType application/x-httpd-php-source .phps
#
# AddType allows you to add to or override the MIME configuration
# file specified in TypesConfig for specific file types.
#
#AddType application/x-gzip .tgz

Aquí le estamos indicando a Apache que los archivos con extensiones .php .html .phtml .php3 .php4 .php5 .php7 .htm pueden interpretar el código de PHP.

También buscaremos las siguientes líneas:

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

Y agregaremos el archivo index.php para que sea interpretado como archivo principal.

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

Si tienen el proceso de apache funcionando, deberán darlo de baja:

root@vboxlinuxmintjx $ /usr/local/apache/bin/apachectl stop

Y ahora deberán levantarlo:

root@vboxlinuxmintjx $ /usr/local/apache/bin/apachectl start

Ahora apache ya puede interpretar nuestras páginas con código de PHP.

Si queremos probar que esté funcionando Apache con PHP, podemos poner un archivo llamado phpinfo.php dentro del directorio /usr/local/apache/htdocs/ (solo el usuario root puede escribir en este directorio para fines de este ejemplo) y agregarle la siguiente línea:

<?php phpinfo(); ?>

Ahora en nuestra navegador ingresamos a la siguiente dirección: http://localhost/phpinfo.php

Recuerda que si tu Apache está corriendo en otro puerto, como por ejemplo el 8080, deberás ingresar de la siguiente manera desde el navegador: http://localhost:8080/phpinfo.php

Donde nos aparecerá algo como ésto:

jx_post_1044_01

Dentro de esa misma pantalla, podemos buscar que ya está habilitado PDO para MySQL.

jx_post_1044_02

En mi caso me gusta agregar la ruta de las herramientas en el PATH de todos los usuarios, para ello hay que editar el archivo como usuario root:

/etc/profile

y agregamos las siguientes líneas:

export PHP=/usr/local/php
export PATH=$PATH:$PHP/bin

Con esto concluimos la configuración.

Instalar Apache desde código fuente en GNU/Linux

Hace ya 10 años publiqué un post en mi antiguo blog llamado igual:

Instalar Apache desde código fuente en GNU/Linux

En el cuál explicaba como instalar Apache en distribuciones GNU/Linux y Unix, hoy sólo actualizaré y lo sintetizaré ya que actualmente hay que compilar previamente el Apache Portable Runtime (APR) para que podamos instalar Apache.

Descargamos los siguientes paquetes:

apr-1.6.3.tar.bz2

apr-util-1.6.1.tar.bz2

apr-iconv-1.2.2.tar.bz2

httpd-2.4.29.tar.bz2

Para comenzar nos convertiremos en usuario root.

javoaxian@vboxlinuxmintjx $ sudo su -

En mi caso los descargué en mi directorio de Descargas, nos situamos en el directorio donde descargamos los paquetes y los colocamos en /usr/local/src para después instalarlos.

root@vaiolinuxmintjx $ cd /ruta/donde/descargamos
root@vboxlinuxmintjx $ cp apr-* /usr/local/src/
root@vboxlinuxmintjx $ cp httpd-2.4.29.tar.bz2 /usr/local/src/
root@vboxlinuxmintjx $ cd /usr/local/src/

Comenzaremos instalando apr.

root@vboxlinuxmintjx $ tar -jxvf apr-1.6.3.tar.bz2
root@vboxlinuxmintjx $ cd apr-1.6.3/
root@vboxlinuxmintjx $ ./configure --prefix=/usr/local/apr

Es posible que en esta parte, mande algunos errores de dependencia, como por ejemplo que no tienen instalado gcc, o los fuentes de GCC como es el paquete libc6-dev.

Para instalarlos en sistemas basados en Debian, como Ubuntu, simplemente ejecuten el comando apt-get install con los paquetes que vayan necesitando, por ejemplo:

root@vboxlinuxmintjx $ apt-get install gcc libc6-dev

Ahora seguimos con la instalación.

root@vboxlinuxmintjx $ make
root@vboxlinuxmintjx $ make install

Ahora instalamos apr-utils.

root@vboxlinuxmintjx $ cd /usr/local/src/
root@vboxlinuxmintjx $ tar -jxvf apr-util-1.6.1.tar.bz2
root@vboxlinuxmintjx $ cd apr-util-1.6.1/
root@vboxlinuxmintjx $ ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

Si obtenemos el siguiente error:

xml/apr_xml.c:35:19: fatal error: expat.h: No existe el archivo o el directorio
compilation terminated.
/usr/local/src/apr-util-1.6.1/build/rules.mk:206: fallo en las instrucciones para el objetivo 'xml/apr_xml.lo'
make[1]: *** [xml/apr_xml.lo] Error 1
make[1]: se sale del directorio '/usr/local/src/apr-util-1.6.1'
/usr/local/src/apr-util-1.6.1/build/rules.mk:118: fallo en las instrucciones para el objetivo 'all-recursive'
make: *** [all-recursive] Error 1

Instalaremos el siguiente paquete:

root@vboxlinuxmintjx $ apt-get install libexpat1-dev

Continuamos la instalación:

root@vboxlinuxmintjx $ make
root@vboxlinuxmintjx $ make install

Ahora instalamos apr-iconv.

root@vboxlinuxmintjx $ cd /usr/local/src/
root@vboxlinuxmintjx $ tar -jxvf apr-iconv-1.2.2.tar.bz2
root@vboxlinuxmintjx $ cd apr-iconv-1.2.2/
root@vboxlinuxmintjx $ ./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
root@vboxlinuxmintjx $ make
root@vboxlinuxmintjx $ make install

Ahora procederemos a instalar apache.

root@vboxlinuxmintjx $ cd /usr/local/src/
root@vboxlinuxmintjx $ tar -jxvf httpd-2.4.29.tar.bz2
root@vboxlinuxmintjx $ cd httpd-2.4.29/
root@vboxlinuxmintjx $ ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so

Si nos aparece el siguiente error:

checking for pcre-config... false
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

Instalamos el siguiente paquete:

root@vboxlinuxmintjx $ apt-get install libpcre3-dev

Continuamos con la instalación:

root@vboxlinuxmintjx $ make
root@vboxlinuxmintjx $ make install

Con esto ya queda instalado apache, para arrancar el servidor bastará ejecutar lo siguiente:

root@vboxlinuxmintjx $ /usr/local/apache/bin/apachectl start

Y para detenerlo:

root@vboxlinuxmintjx $ /usr/local/apache/bin/apachectl stop

En mi caso me gusta agregar la ruta de las herramientas en el PATH de todos los usuarios, para ello hay que editar el archivo como usuario root:

/etc/profile

y agregamos las siguientes líneas:

export APACHE=/usr/local/apache
export PATH=$PATH:$APACHE/bin

Si se desea más información, como configurar un script de arranque y otras cosas, visita mi viejo post.

Desinstalar SQL Server 2017 en Linux Mint 18.3 y distribuciones basadas en Ubuntu

Si ya tenemos instalado SQL Server 2017 y deseamos desinstalarlo junto con sus herramientas, lo que hay que realizar es lo siguiente.

Para comenzar nos convertiremos en usuario root.

javoaxian@vboxlinuxmintjx $ sudo su -

Ejecutamos el siguiente comando:

root@vboxlinuxmintjx $ apt-get install mssql-server mssql-tools unixodbc-dev

Ahora borramos los siguientes directorios:

root@vaiolinuxmintjx $ rm -rf /var/opt/mssql/
root@vaiolinuxmintjx $ rm -rf /opt/microsoft/

Con esto quedará desinstalado.

Instalar SQL Server 2017 en Linux Mint 18.3 y distribuciones basadas en Ubuntu

Dado que últimamente he estado utilizando SQL Server como manejador de base de datos y ya que ando retomando temas de Linux, decidí hacer este post para recordar cómo instalarlo configurarlo.

Esta instalación de SQL Server 2017 la realicé en Linux Mint 18.3 pero debe de funcionar en distribuciones basadas en Ubuntu.

Recuerden tener por lo menso 20GB de espacio en su disco duro.

Para comenzar nos convertiremos en usuario root.

javoaxian@vboxlinuxmintjx $ sudo su -

Lo siguiente que haremos ser importar las claves GPG del repositorio que contiene los paquetes para la instalación.

root@vboxlinuxmintjx $ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

Ahora agregamos el repositorio de SQL Server en nuestra lista de repositorios.

root@vboxlinuxmintjx $ add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"

Agregado el repositorio, actualizaremos la lista de paquetes:

root@vboxlinuxmintjx $ apt-get update

Ahora vamos a instalar el paquete mssql-server.

root@vboxlinuxmintjx $ apt-get install -y mssql-server

Finalizada la instalación del paquete, ahora ejecutaremos el siguiente comando para instalar el servidor además que es donde se configurará la versión del servidor.

root@vboxlinuxmintjx $ /opt/mssql/bin/mssql-conf setup

Al ejecutar el comando anterior se nos pedirá la edición del servidor que deseamos elegir, en mi caso seleccioné la 2) Developer:

Locale es_MX not supported. Using en_US.
Choose an edition of SQL Server:
1) Evaluation (free, no production use rights, 180-day limit)
2) Developer (free, no production use rights)
3) Express (free)
4) Web (PAID)
5) Standard (PAID)
6) Enterprise (PAID)
7) Enterprise Core (PAID)
8) I bought a license through a retail sales channel and have a product key to enter.


Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=852748

Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.
Enter your edition(1-8): 2

Se nos pedirá si deseamos aceptar los términos y presionamos “Y”.

The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=855862

The privacy statement can be viewed at:
https://go.microsoft.com/fwlink/?LinkId=853010

Do you accept the license terms? [Yes/No]: Y

Se nos pedirá el lenguaje del servidor, aquí seleccioné la opción 3 que es Español.

Choose the language for SQL Server:
(1) English
(2) Deutsch
(3) Español
(4) Français
(5) Italiano
(6) 日本語
(7) 한국어
(8) Português
(9) Русский
(10) 中文 – 简体
(11) 中文 (繁体)
Enter Option 1-11: 3

Ahora ingresaremos la contraseña del usuario SA.

Enter the SQL Server system administrator password:

Confirmamos la contraseña:

Enter the SQL Server system administrator password:

Con esto se finaliza la instalación del servidor, lo cual nos arroja este mensaje:

Configuring SQL Server...

Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /lib/systemd/system/mssql-server.service.
Setup has completed successfully. SQL Server is now starting.

Ahora podemos comprobar que el servicio está corriendo ejecutando el siguiente comando:

root@vboxlinuxmintjx $ systemctl status mssql-server

Nos devolverá una salida similar a la siguiente y para salir de ella presionamos la letra “Q”:

● mssql-server.service - Microsoft SQL Server Database Engine
Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor pre
Active: active (running) since jue 2018-01-11 23:58:33 CST; 1min 47s ago
Docs: https://docs.microsoft.com/en-us/sql/linux
Main PID: 3994 (sqlservr)
CGroup: /system.slice/mssql-server.service
├─3994 /opt/mssql/bin/sqlservr
└─4014 /opt/mssql/bin/sqlservr


ene 11 23:58:43 vboxlinuxmintjx sqlservr[3994]: [88B blob data]
ene 11 23:58:43 vboxlinuxmintjx sqlservr[3994]: [75B blob data]
ene 11 23:58:43 vboxlinuxmintjx sqlservr[3994]: [108B blob data]
ene 11 23:58:43 vboxlinuxmintjx sqlservr[3994]: [96B blob data]
ene 11 23:58:43 vboxlinuxmintjx sqlservr[3994]: [112B blob data]
ene 11 23:58:43 vboxlinuxmintjx sqlservr[3994]: [100B blob data]
ene 11 23:58:43 vboxlinuxmintjx sqlservr[3994]: [86B blob data]
ene 11 23:58:43 vboxlinuxmintjx sqlservr[3994]: [71B blob data]
ene 11 23:58:43 vboxlinuxmintjx sqlservr[3994]: [159B blob data]
ene 11 23:58:43 vboxlinuxmintjx sqlservr[3994]: [124B blob data]

A continuación lo que tendremos que instalar son las herramientas que nos permitirán conectarnos y manipular las bases de datos.

Empezaremos por importar las clave GPG:

root@vboxlinuxmintjx $ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

Ahora agregamos el repositorio a lista de repositorios.

root@vboxlinuxmintjx $ add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/prod.list)"

Actualizamos la lista de paquetes.

root@vboxlinuxmintjx $ apt-get update

Instalamos las herramientas.

root@vboxlinuxmintjx $ apt-get install -y mssql-tools unixodbc-dev

Se nos preguntará si deseamos aceptar los términos de las licencias de las herramientas mssql-tools y msodbcsql y presionamos sobre <Si>.

jx_post_1010_01 jx_post_1010_02

En mi caso me gusta agregar la ruta de las herramientas en el PATH de todos los usuarios, para ello hay que editar el archivo como usuario root:

/etc/profile

y agregamos las siguientes líneas:

export MSSQLTOOLS=/opt/mssql-tools/bin
export PATH=$PATH:$MSSQLTOOLS

Con esto se finaliza la instalación del servidor.

 

Telegram: cliente de mensajería instantánea

Telegram es un cliente de mensajería instantánea para móviles, similar a Whatsapp, Kik y otra más que existen.

Esta disponible para varias plataformas móviles y de escritorio en sus respectivas tiendas y repositorios. Además también tiene su versión web.

Aquí dejo el enlace para poder descargarla para diferentes sistemas operativos de escritorio.

 

Git-cola: cliente para Git

Git-cola es un cliente para administrar los cambios de nuestros proyectos con Git. Los he empezado a usar y esta muy simple a comparación de otros que he probado y quizá algo limitado visualmente a mi gusto, pero realmente lo veo funcional y en algunos proyectos lo estoy usando y me ha funcionado bien.

Sitio: https://git-cola.github.io/

Descarga: https://git-cola.github.io/downloads.html

Gratuito: Sí.

Configurar VPN Cisco con archivo PCF en Linux Mint

Dado que en la oficina se configuró una VPN para poder acceder a los servidores en los que desarrollamos, decidí configurar todo el ambiente de desarrollo que usamos en una laptop con Linux Mint y por ende configurar la VPN la cual es Cisco.

Para iniciar la configuración debemos instalar los siguientes paquetes:

javoaxian@vboxlinuxmintjx ~ $ sudo apt-get install network-manager-vpnc network-manager-vpnc-gnome

Ahora procederemos a configurar la VPN. Para ellos abrimos las Preferencias de red.

jx_post_976_01

Presionamos en el signo de “+”.

jx_post_976_02

Se abrirá la pantalla para agregar una VPN y presionamos sobre la opción Import from file….

jx_post_976_03

Se nos pedirá que seleccionemos el archivo PCF.

jx_post_976_04

Nos colocará la configuración de la VPN, como la “Pasarela, Nombre de usuario, Nombre del grupo, Contraseña del grupo”; aunque el “Nombre de usuario” deberemos cambiarlo al que nos proporcionaron para conectarnos. Si queremos también podemos cambiar el “Nombre” de la conexión como en mi caso que le puse “VPN Mi Trabajo”. El único dato que no podemos ingresar el la “Contraseña de usuario”, ya que esta se nos pide cada vez que queremos conectarnos a la VPN.

jx_post_976_05

Configurado los datos, presionamos en Add y se agregará la conexión para poder utilizarla.

jx_post_976_06

Ahora ya sea que desde esa interfaz activemos la conexión a la VPN o en la opción de conexiones del menú presionando sobre el nombre de nuestra configuración de la VPN.

jx_post_976_07

Una vez que presionemos sobre la configuración, se nos pedirá que ingresemos la “Contraseña de usuario” y la “Contraseña del grupo” (aunque esta última ya viene configurada sin mostrarse).

jx_post_976_08

Ya que ingresamos la contraseña, presionamos en el botón Aceptar y se nos mostrará una notificación indicando que se ha establecido la conexión.

jx_post_976_09

Y si revisamos las conexiones, podremos observar que ya nos encontramos conectados a la VPN.

jx_post_976_10