NetLoony es una GUI para Apache open source que nos facilitará la administración de nuestro servidor web.
Inicialmente era un producto de pago, pero ahora es open source, lo cual es un importante paso. Desarrollado en Java nos permite entre otras cosas disponer de un monitor de rendimiento, control remoto, soporte para SSL, buscador de ficheros htaccess, editor de texto, scaner de puertos, backup y muchas cosas más. NetLoony
VÃa / Apache-es
Uno de los problemas a los que nos enfrentamos al desarrollar en responsive es que en local es difícil acceder a nuestro localhost desde móviles y tablets. Aunque con unos sencillos pasos podremos acceder sin problemas.
Primero tendremos que modificar nuestro vhosts de Apache para que acepte peticiones desde la red, añadiendo lo siguiente:
<VirtualHost [IP de nuestro ordenador en la red]>
ServerAdmin [IP de nuestro ordenador en la red]
DocumentRoot "[path a nuestro WP]"
ServerName [IP de nuestro ordenador en la red]
LogLevel debug
ErrorLog "logs/wordpress-error.log"
CustomLog "logs/wordpress-access.log" combined
</VirtualHost>
A continuación tenemos que modificar el wp-config.php para decirle el WP_SITEURL y el WP_HOME que variará si se accede desde nuestro ordenador o desde un móvil o tablet.
// Hay que ver si la IP desde la que accedemos es del rango de nuestra red que normalmente suele ser 192.168.1.x
if(preg_match('#^192\.168\.1\.\d+#', $_SERVER['HTTP_HOST'])) {
define('WP_HOME', 'http://'.$_SERVER['HTTP_HOST'].'/');
define('WP_SITEURL', 'http://'.$_SERVER['HTTP_HOST'].'/');
}
Y ya por último nos creamos un plugin que sustituirá toda referencia a la URL de local por la correspondiente que se encuentre en el contenido de los posts y que activaremos cuando trabajemos en local, o bien lo metemos en el functions.php, pero esto sería guarrear el código:
if(preg_match('#^192\.168\.1\.\d+#', $_SERVER['REMOTE_ADDR'])) {
function replace_domain($buffer) {
// modify buffer here, and then return the updated code
return str_replace('http://localhost/', 'http://'.$_SERVER['HTTP_HOST'].'/', $buffer);
}
function buffer_start() { ob_start("replace_domain"); }
function buffer_end() { ob_end_flush(); }
add_action('wp', 'buffer_start');
add_action('wp_footer', 'buffer_end');
}
Tienes el plugin disponible en mi repositorio de GitHub
Hoy he encontrado por casualidad una introducción a Ruby on Rails, por parte de la Asociación Nacional de Webmasters de Perú que está bastante bien: sin entrar muy a fondo repasa los conceptos básicos, explica cómo instalar Ruby on Rails e incluso c
DirÃgete al directorio donde tengas guardado el archivo de instalación apache*.msi y ejecuta “msiexec /i apache*.msi”, donde apache*.msi es el nombre del archivo completo.
LiteSpeed Web Server es un servidor web con alto rendimiento y alta escalabilidad. Es compatible con Apache por lo que es fácilmente intercambiable.
Los resultados son bastante destacables, es 9 veces más rápido que Apache, se consigue un 50% más de rendimiento en PHP, mejor rendimiento con Ruby on Rails, 3 veces más rápido que Apache en SSL.
Además admite CGI, FastCGI, LSAPI, PHP, Servlet/JSP, Proxy, SSL, IPv4, IPv6, es compatible con el .htaccess, el mod_security y el mod_rewrite de Apache. La seguridad está muy bien implementada y la instalación es sencilla, disponiendo de un administrador GUI para facilitar la labor de mantenimiento.
Existen versiones comerciales, pero tambien hay disponible una versión gratuita que tiene ciertas limitaciones.
Estoy deseando probar que tal va, ¿alguien lo ha usado?. LiteSpeed Web Server
VÃa / International PHP Magazine
Una de las cosas más molestas con las que te puedes encontrar al mantener un sitio, es ver cómo tus imágenes estan siendo utilizadas en otros sitios que las enlazan directamente a tu servidor, esto es molesto por dos motivos, evidentemente el uso de material gráfico de tu propiedad sin tu consentimiento, y la carga extra que sufre la conexión de tu página.
Para los que usamos Apache existe una fácil solución combinándolo con mod_rewrite, el método se basa en crear un fichero .htaccess que contenga una serie de reglas, que literalmente le indicarán al servidor que las imágenes solo se mostrarán si la petición viene del dominio propio.
Las reglas a añadir son las siguientes. Solo tendrás que sustituir el texto example.com por el nombre de tu dominio:
Como se puede ver, existen dos scripts dentro de npm: build que compila el js y extrae los CSS, y dev, que arranca el servidor de webpack habilitando HMR (🎶 ¡ya no puedo vivir sin él! 🎶).
Ambas configuraciones de webpack usan un script en común (webpack.config.common.js):
const webpack = require( 'webpack' );
const path = require( 'path' );
// Carga los ficheros .vueconst VueLoaderPlugin = require( 'vue-loader/lib/plugin' );
// Configura stylelintconst StyleLintPlugin = require( 'stylelint-webpack-plugin' );
// Para obtener un path para los aliasfunctionresolve( dir ) {
return path.join( __dirname, '.', dir );
}
module.exports = {
mode: 'production',
// Fichero inicial del proyecto
entry: './js/main.js',
// Fichero final para incluir
output: {
filename: 'js/main.js',
publicPath: '/dist/',
},
module: {
// Reglas para los ficheros
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
},
{
test: /\.vue$/,
loader: 'vue-loader',
},
{
test: /\.css$/,
use: [
'css-loader',
'sass-loader',
],
},
],
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new VueLoaderPlugin(),
new StyleLintPlugin( {
files: [ '**/*.{vue,htm,html,css,sss,less,scss,sass}' ],
} ),
],
resolve: {
extensions: [ '.js', '.vue', '.json' ],
alias: {
'@': resolve( '' ),
},
},
};
El frontend se gestiona desde el fichero main.js, que inicializará Vue y añadirá el componente principal:
import Vue from 'vue';
import Buefy from 'buefy';
import'buefy/dist/buefy.css';
import App from './components/App.vue';
import'@/assets/scss/main.scss';
Vue.use( Buefy );
new Vue( {
el: '#app',
components: {
App,
},
render: ( c ) => c( 'app' ),
} );
// accept replacement modulesif ( module.hot ) {
module.hot.accept();
}
Y ya por último el componente App.vue, que muestra simplemente un poco de HTML