WordPress on godaddy windows host (500 – internal server error)

Si estas recibiendo “500 – internal server error” después de instalar WordPress en godaddy con un plan de windows; y cambiar a Linux no es una opción.  Entonces puedes configurar IIS para que muestre los errores en el navegador a través del siguiente web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
	<asp scriptErrorSentToBrowser="true"/>
	<httpErrors errorMode="Detailed"/>
    </system.webServer>
</configuration>

Este archivo debes colocarlo en la raíz del servidor y si tu instalación esta en una sub-carpeta, también debes agregarlo a esta:

Imagen

Godaddy root folder /

 

Imagen

WP sub-folder

 

De esta manera podrás ver y arreglar los errores que tiene tu instalación.  Espero le sirva a alguien, pues en mi caso godaddy nunca respondió mis tickets relacionados a este problema.

Instalando Emmet en Sublime Text 2

Aquí les dejo una explicación rápidita de como instalar emmet en Sublime Text 2 (usando Package Control) .  Verdaderamente un plugin muy util.

Estos son los pasos:

  1. Descargar Sublime Text 2
  2. Ejecutarlo
  3. Ir a View > Show Console (Va a aparecer en la parte inferior del editor)
  4. Instalamos el Package Control.  Y para ello debemos copiar (Ctrl+C) esto:
     import urllib2,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler()) ); by = urllib2.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); open( os.path.join( ipp, pf), 'wb' ).write(by) if dh == h else None; print('Error validating download (got %s instead of %s), please try manual install' % (dh, h) if dh != h else 'Please restart Sublime Text to finish installation')
  5. Presionamos ENTER para ejecutarlo
  6. Y una vez completado reiniciamos el editor.
  7. Vamos a Preferences > Package Control 
  8. Tecleamos “Install Package
  9. Y buscamos “emmet”, seleccionamos el que necesitamos.
  10. Hacemos doble click y listo…

Para probarlo, podemos crear un archivo y teclear:

html:5

Y presionar Ctrl+E, y debería autocompletar  el documento con formato HTML5. tambien puedes probar con otros comandos útiles aqui.

Les dejo también un vídeo, aunque no tiene muy buena calidad (sorry).

DotnetCasClient1.0: infinite loop

Your debug log should looks likethis (Please make sure that you have the Configure Diagnostic Tracing active):
DotNetCasClient.Protocol Error: 3237 : Ticket validation error: DotNetCasClient.Validation.TicketValidationException: CAS server ticket validation threw an Exception ---> System.Net.WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.



at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
<span style="font-family: Consolas, Monaco, monospace; font-size: 12px; line-height: 18px;">

The solution is simple:

  1. From your Windows machine (where you have your IIS server running). Go to Start > and type "mmc"
  2. Go to File > Add / Remove Snap in...
  3. Now you will see the "Add / Remove snap ins" window
  4. Certificates Snap in > Computer Account > Next
  5. Select a Computer > Local Computer > Finish

Hope it works for you!!... Leave a comment!!

Problem with DotNetCasClient getting additional attributes from CAS-Server response

I’m usin CAS-JASIG server with Active Directory for authentication. But I found a problem with the DotNetCasClient-1.0.1. I was not able to retrieve the user parameters that CAS-Server send in the XML response after a success authentication.

I knew that my CAS-Server response was sending those parameters. Because my PHP-CAS Client applications read those parameters without any problem. In fact the response looks like this:

<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
 <cas:authenticationSuccess>
 <cas:user>janedoe</cas:user>
 <cas:attribute name="mail" value="janedoe@test.com" />
 <cas:attribute name="sn" value="Doe Doe" />
 <cas:attribute name="cn" value="Jane Doe" />
 <cas:attribute name="givenName" value="Jane" />
 </cas:authenticationSuccess>
 </cas:serviceResponse>

NOTE: To send additional user parameters from CAS-Server to CAS-Clients. You need to modify your “deployerConfigContext.xml”. Let me know if you are having problems whit LDAP configuration.

How did I note that DotnetCasClient was not retrieving those additional attributes? Well, from my own C# code when the user was successfully authenticated against CAS-Server I ask to DotnetCasClient for those additional attributes:

CasPrincipal tmpUser = (CasPrincipal)System.Web.HttpContext.Current.User;
if (tmpUser.Assertion.Attributes != null && tmpUser.Assertion.Attributes.Count > 0)
{

     //NEVER MET THIS CONDITION BECAUSE "tmpUser.Assertion.Attributes" WAS ALWAYS NULL

}

How did I solve my problem? Well, after debugging a lot I found out that It was not a configuration problem. That the problem came from the DotNetCasClient code. Because those attributes were never set. So I modified the “DotNetCasClient\Validation\TicketValidator\Cas20ServiceTicketValidator [Line 134] method ParseResponseFromServer” and add the following code :

if (authSuccessResponse.Proxies != null && authSuccessResponse.Proxies.Length > 0)</pre>
{
     :
     :
     //I didn't modified anything here!
     :
     :
     :
}
else
{
     /* HERE STARTS MY CHANGE */
     IDictionary<string, IList<string>> attributes =
               new Dictionary<string, IList<string>>();
     try
     {
          XmlDocument doc = new XmlDocument();
          doc.LoadXml(response);
          XmlNamespaceManager namespaceManager = new XmlNamespaceManager(doc.NameTable);
          namespaceManager.AddNamespace("cas", "http://www.yale.edu/tp/cas");
          XmlNode GeneralInformationNode = doc.SelectSingleNode("/cas:serviceResponse/cas:authenticationSuccess/cas:attributes", namespaceManager);
          XmlNodeList attri = GeneralInformationNode.SelectNodes("cas:attribute",namespaceManager);

         if (attri != null)
         {
             foreach (XmlNode node in attri)
             {
                 XmlElement z = (XmlElement)node;

                 IList<string> values = new List<string>();
                 values.Add(z.GetAttribute("value").ToString());
                 attributes.Add(z.GetAttribute("name").ToString(), values);
             }
         }
         return new CasPrincipal(new Assertion(authSuccessResponse.User, attributes), proxyGrantingTicketIou);
    }
    catch (Exception e)
    {
        throw new TicketValidationException("CUSTOM CODE EXCEPTION["+e.Message+"]: "+e.StackTrace);
    }
    /* HERE ENDS MY CHANGE */

    //I didn't touch anything from here either
             :
             :
             :
             :
}

This is just I problem that I face with DotnetCasClient for this very specific case. I don’t know if is just me but I wanna share my solution (my way). Perhaps if you have a better one, please share :-)

50 Sombras de Grey

Ya leí el primer libro en tiempo record (para mi). En 6 días lo termine y me gusto bastante. El protagonista es un encanto!!! A mi esposo no le gusta mucho verme leyendo este ejemplar y menos hablar de Christian Grey.  No se porque!…  Para las que no lo han leído, se lo recomiendo, es un libro para distraerse.

50 Sombras de Grey

Cuando lo empece, tuve la sensación de estar leyendo “Twilight”. Me parece que el personaje de Anastasia es muy similar al de Bella y pues eso no es lo mas atractivo del libro. Es un personaje muy básico y algo molesto a medida que vas leyendo mas y mas.  Ademas es muy repetitivo y siempre los conflictos son muy similares y desembocan en la misma falta de carácter de Anastasia.

Algo que me pareció exagerando es la cantidad de veces que mencionan “poner los ojos en banco”. Ya hasta me resulta fastidioso y es por eso que no creo que termine de leer el segundo libro. Que ya empece a leer, y me ha resultado extremadamente fastidioso, al punto que me salto los pensamientos de Ana (y la Diosa que lleva dentro).

En fin!… El primer libro es bueno y lo recomiendo… Yo no soporte el segundo, pero es solo mi persepcion. Espero la peli y ojala que Christian sea personificado por Ian Somerhalder.

PART I: CAS-JASIG installation under Ubuntu 12.04 (without SSL)

I. TOMCAT INSTALLATION

1.- Open a terminal as root:

# sudo su

2.- Download Tomcat:

# cd /opt
# wget http://apache.mesi.com.ar/tomcat/tomcat-6/v6.0.36/bin/apache-tomcat-6.0.36.zip

3.- Unzip the tomcat file:

# unzip  apache-tomcat-6.0.36.zip

4.- Rename your TOMCAT installation:

# mv apache-tomcat-6.0.36 tomcat-server

5.- Assign permissions to “bin” folder content:

# cd tomcat-server/bin/
# chmod u+x *

6.- We also need to add a new user in order to be able to access to the “Tomcat Manager”:

# cd ..
# gedit ./conf/tomcat-users.xml

And it should looks like this:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="admin"/>
<role rolename="manage"/>
<user username="tomcat" password="tomcat" roles="admin,manager"/>
</tomcat-users>

7.- Now you can start your TOMCAT server:

# sh /opt/tomcat-server/bin/catalina.sh start

II. CAS-JASIG INSTALLATION 1.- Download “CAS-Jasig” server:

# cd /opt/tomcat-server/webapps/
# wget http://downloads.jasig.org/cas/cas-server-3.5.2-release.zip

2.- Unzip the CAS-Jasig zip file:

# unzip cas-server-3.5.2-release.zip
# mv cas-server-3.5.2 cas-server-source

<strong>3.- Extract the .war file into your Tomcat webapps:</strong>
1
# cp cas-server/modules/cas-server-webapp-3.5.2.war .
# mv cas-server-webapp-3.5.2.war cas-server.war

4.- Restart the Tomcat server:

# sh /opt/tomcat-server/bin/catalina.sh stop
# sh /opt/tomcat-server/bin/catalina.sh start

5.- Finally you can access to cas-server through: http://localhost:8080/cas-server/login
cas1

NOTE: By default you should be able to make simple login by using the same word for username and password (E.g.: USERNAME:hello PASSWORD:hello