{"id":235,"date":"2009-08-25T05:12:46","date_gmt":"2009-08-25T09:12:46","guid":{"rendered":"http:\/\/blog.walii.es\/?p=235&amp;langswitch_lang=en"},"modified":"2010-01-13T11:40:30","modified_gmt":"2010-01-13T11:40:30","slug":"ser_php-o-puerto-serie-desde-internet","status":"publish","type":"post","link":"https:\/\/blog.walii.es\/?p=235","title":{"rendered":"SER_PHP o Puerto serie desde Internet"},"content":{"rendered":"<p>Tras un par de horas investigando, he obtenido un resultado, ya que depende mucho de la versi\u00f3n de PHP, esta tarea puede complicarse. El primer intento lo realizaremos en windows porque existe mucha documentaci\u00f3n para luego pasar a linux, mas puntualmente en un OPENWRT.<\/p>\n<p>B\u00e1sicamente intento instalar un servidor web lighttpd+php en mi fonera, y conectar v\u00eda RS232 alg\u00fan perif\u00e9rico a ella, el cual controlar\u00e9 desde internet.<br \/>\nPor ejemplo un PIC 16f628, programado especialmente para escuchar las ordenes generadas a trav\u00e9s de este protocolo y ejecutarlas&#8230; por ejemplo realizar una conexi\u00f3n rs232 y enviarle el car\u00e1cter \u00ab1\u00bb para que active el pin RB0 con 5volts. Esto lo explicar\u00e9 mas adelante en otro post.<\/p>\n<p>hoy lo primero que debemos hacer es hacer funcionar SER_PHP&#8230; para poder tener una interfaz coerente.<\/p>\n<p>Intalaremos XAMPP con todo lo necesario, los amigos de APACHE FRIENDs tienen un paquete muy bonito que trae todo lo que necesitamos&#8230; al bajar este por favor comprobad que versiones obtenemos de cada aplicaci\u00f3n&#8230; por ejemplo en mi caso.<br \/>\nAqu\u00edtenemos el <a href=\"http:\/\/www.apachefriends.org\/en\/xampp-windows.html\">link <\/a>para windows pero existen versiones para todos los gustos.<\/p>\n<p><!--more--><\/p>\n<p>La version actual 1.7.2 posee:<\/p>\n<ul style=\"font-weight: bold;\">\n<li>Apache 2.2.12 (IPv6 enabled) + OpenSSL 0.9.8k<\/li>\n<li>MySQL 5.1.37 + PBXT engine<\/li>\n<li>PHP 5.3.0<\/li>\n<li>phpMyAdmin 3.2.0.1<\/li>\n<li>Webalizer 2.21-02 + GeoIP lite<\/li>\n<li>FileZilla FTP Server 0.9.32<\/li>\n<li>msmtp 1.4.17<\/li>\n<\/ul>\n<p>Teniendo en cuenta esto, lo instalamos y pasamos al siguiente paso.<\/p>\n<p>descargamos la extensi\u00f3n php para controlar el puerto serie, teniendo en consideraci\u00f3n que versi\u00f3n de PHP tenemos en el paquete XAMP.<br \/>\n<a href=\"http:\/\/www.easyvitools.com\/download\/download.html\">LINK PHP SER EXT.<\/a><br \/>\nAunque tengamos la versi\u00f3n de php 5.3 podemos instalar la extensi\u00f3n 5.2.9 es compatible.<br \/>\nObtendremos un paquete con 2 ejemplos y el dll correspondiente.<br \/>\nCopiaremos el archivo php_ser.dll en la carpeta de extensiones de PHP que usualmente suele <span style=\"font-weight: bold;\">ser c:xamppphpext<\/span><\/p>\n<p>en el segundo paso editaremos el archivo PHP.INI que se encuentra en el directorio <span style=\"font-weight: bold;\">c:xamppphp <\/span> y agregar la linea siguiente, al final de las dem\u00e1s \u00abextension\u00bb.<\/p>\n<p><span style=\"font-weight: bold;\">extension=php_ser.dll<\/span><\/p>\n<p>Os recomiendo utilizar el editor <a href=\"http:\/\/www.tinyedit.com\/\">Tinyeditor <\/a>bueno bonito y barato (es gratis).<\/p>\n<p>En este caso, hay que hacer algo especial ya que usamos XAMPP (para los que usan otros servidores con solo la modificaci\u00f3n del archivo php.ini ya funciona):<\/p>\n<p>Tanto en cualquier servidor como en XAMPP en este punto el PHP puero deber\u00eda funcionar correctamente&#8230;<br \/>\nprobarlo creando el siguiente archivo php y abri\u00e9ndolo desde cualquier explorador&#8230; deber\u00edan ver la config completa de su servidor.<\/p>\n<p>crear test.php y poner dentro lo siguiente:<\/p>\n<p>&lt;html&gt;<br \/>\n&lt;head&gt;<br \/>\n&lt;title&gt;<br \/>\nLocal index page<br \/>\n&lt;\/title&gt;<br \/>\n&lt;\/head&gt;<br \/>\n&lt;body&gt;<br \/>\n&lt;?php phpinfo(); ?&gt;<br \/>\n&lt;\/body&gt;<br \/>\n&lt;\/html&gt;<\/p>\n<p>Pero como XAMPP utiliza PHP como modulo, necesitamos evitar esto y hacer uso de PHP como programa externo&#8230; para eso\u00a0 editamos el siguiente archivo.<br \/>\n<br style=\"font-weight: bold;\" \/><span style=\"font-weight: bold;\">C:xamppapacheconfextrahttpd-xampp.conf <\/span><br \/>\nBuscamos las siguientes lineas y des comentar las lineas 1 y 2 y comentar la 3.<br \/>\n<br style=\"font-weight: bold;\" \/><span style=\"font-weight: bold;\">#ScriptAlias \/php\/ \u00abC:\/xampp\/php\/\u00bb<\/span><br style=\"font-weight: bold;\" \/><span style=\"font-weight: bold;\">#Action application\/x-httpd-php \u00ab\/php\/php-cgi.exe\u00bb<\/span><br style=\"font-weight: bold;\" \/><span style=\"font-weight: bold;\">LoadModule php5_module \u00abC:\/xampp\/apache\/bin\/php5apache2.dll\u00bb<\/span><br style=\"font-weight: bold;\" \/><span style=\"font-weight: bold;\">AddType application\/x-httpd-php-source .phps<\/span><\/p>\n<p>Qued\u00e1ndonos como:<\/p>\n<p><span style=\"font-weight: bold;\">ScriptAlias \/php\/ \u00abC:\/xampp\/php\/\u00bb<\/span><br style=\"font-weight: bold;\" \/><span style=\"font-weight: bold;\"> Action application\/x-httpd-php \u00ab\/php\/php-cgi.exe\u00bb<\/span><br style=\"font-weight: bold;\" \/><span style=\"font-weight: bold;\"> #LoadModule php5_module \u00abC:\/xampp\/apache\/bin\/php5apache2.dll\u00bb<\/span><br style=\"font-weight: bold;\" \/><span style=\"font-weight: bold;\"> AddType application\/x-httpd-php-source .phps<\/span><\/p>\n<p>Ahora editamos el archivo de configuraci\u00f3n original de XAMPP<br \/>\n<br style=\"font-weight: bold;\" \/><span style=\"font-weight: bold;\">C:xamppapacheconfhttpd.conf <\/span><\/p>\n<p>Y dentro buscar la config &lt;Directory \/&gt; y comentar el Order y el Deny, para que no nos de errores de permisos.<\/p>\n<p><span style=\"font-weight: bold;\">&lt;Directory \/&gt;<\/span><br style=\"font-weight: bold;\" \/><span style=\"font-weight: bold;\">Options FollowSymLinks<\/span><br style=\"font-weight: bold;\" \/><span style=\"font-weight: bold;\">AllowOverride None<\/span><br style=\"font-weight: bold;\" \/><span style=\"font-weight: bold;\">#Order deny,allow<\/span><br style=\"font-weight: bold;\" \/><span style=\"font-weight: bold;\">#Deny from all<\/span><br style=\"font-weight: bold;\" \/><span style=\"font-weight: bold;\">&lt;\/Directory&gt;<\/span><\/p>\n<p>Ahora si ten\u00edamos en marcha el servidor web, deber\u00edamos reiniciarlo y probar con los ejemplos.<\/p>\n<p>Nota: recomendaciones, verifiquen que el programa SKYPE no este utilizando el puerto 80, por defecto viene configurado de fabrica y esto molesta.<br \/>\nCon el comando de DOS \u00abnetstat -an\u00bb podemos ver los puertos en uso, antes de iniciar el servidor web,. es recomendable verificar que el puerto 80 no este en uso por algun otro programa.<\/p>\n<p>Si despu\u00e9s de verificar estos pasos una y otro vez, os sigue apareciendo el mensaje <span style=\"font-weight: bold;\">\u00abModule win_serial_port is not compiled into PHP\u00bb<\/span> es que la version de SER_PHP.DLL no es la correcta, busquen la correcta para su servidor PHP.<\/p>\n<p>Para verificar si funciona, necesitan abrir en el webbrowser el archivo que trae por defecto el paquete SER_PHP, php_ser_test.php o el sms_list.php que os mostrar\u00e1 una lista de comandos posibles para dicha aplicaci\u00f3n.<\/p>\n<p>PHP serial extension test page<br \/>\nmodule loaded<br \/>\nFunctions available in the win_serial_port extension:<br \/>\nser_version<br \/>\nser_isopen<br \/>\nser_open<br \/>\nser_close<br \/>\nser_write<br \/>\nser_read<br \/>\nser_setdtr<br \/>\nser_writebyte<br \/>\nser_readbyte<br \/>\nser_setrts<br \/>\nser_inputcount<\/p>\n<p>Fin,.. esto funciona&#8230; a experimentar con el puerto serie desde internet.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tras un par de horas investigando, he obtenido un resultado, ya que depende mucho de la versi\u00f3n de PHP, esta tarea puede complicarse. El primer intento lo realizaremos en windows porque existe mucha documentaci\u00f3n para luego pasar a linux, mas puntualmente en un OPENWRT. B\u00e1sicamente intento instalar un servidor web lighttpd+php en mi fonera, y &hellip;<br \/><a href=\"https:\/\/blog.walii.es\/?p=235\" class=\"more-link pen_button pen_element_default pen_icon_arrow_double\">Seguir leyendo <span class=\"screen-reader-text\">SER_PHP o Puerto serie desde Internet<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[13],"tags":[21,27,43,47,51],"_links":{"self":[{"href":"https:\/\/blog.walii.es\/index.php?rest_route=\/wp\/v2\/posts\/235"}],"collection":[{"href":"https:\/\/blog.walii.es\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.walii.es\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.walii.es\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.walii.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=235"}],"version-history":[{"count":2,"href":"https:\/\/blog.walii.es\/index.php?rest_route=\/wp\/v2\/posts\/235\/revisions"}],"predecessor-version":[{"id":256,"href":"https:\/\/blog.walii.es\/index.php?rest_route=\/wp\/v2\/posts\/235\/revisions\/256"}],"wp:attachment":[{"href":"https:\/\/blog.walii.es\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.walii.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.walii.es\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}