Necesitamos editar el archivo ports.conf cambiando el puerto 80, en la linea listen, por el puerto que necesitemos.
1 |
sudo nano /etc/apache2/ports.conf |
Guardamos y reiniciamos el Apache.
1 |
$ sudo /etc/init.d/apache2 restart |
1.Editar el archivo application/config.php, añadiendo la carpeta donde tienes la aplicación, por ejemplo localhost/micarpeta/.
1 2 3 |
$config['base_url'] = 'http://'.$_SERVER['SERVER_NAME'].'/<code>micarpeta</code>/'; $config['index_page'] = ''; $config['uri_protocol'] = 'AUTO'; |
2.Creal un archivo htaccess en raíz de la carpeta de la aplicación.
1 2 3 4 5 |
RewriteEngine on RewriteCond $1 !^(index\.php|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA] |
No olvides asegurarte de tener activado el rewrite en apache y las directivas necesarias en el archivo de configuración.
Puedes comprobar si esta activado el módulo de mod_rewrite con la función infophp().
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Activar mod_rewrite: sudo a2enmod rewrite Abrir el Archivo: sudo nano /etc/apache2/apache2.conf Reemplazar AllowOverrideNone por AllowOverride All: <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> Reiniciar apache: sudo service apache2 restart |
En algunos casos nos vemos obligados a cambiar de dominio y queremos que todas nuestras páginas sean direccionadas a ese nuevo dominio.
Para hacer esto tenemos varias soluciones y esta es una de ellas:
En nuestro fichero de configuración .htaccess colocamos:
1 2 3 4 5 |
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*)(.*)$ index.php?url=$1 |
Y en nuestro fichero index.php o como lo llaméis:
1 2 3 4 5 |
<?php $url = "http://www.url.es".$_SERVER['REQUEST_URI']; Header( "HTTP/1.1 301 Moved Permanently" ); Header( "Location: $actual" ); ?> |
Ahora cuando llaméis por ejemplo a:
www.url1.com/unapágina/ direccionará a www.url.es/unapágina/
1º Activamos Mod_rewrite
1 |
sudo a2enmod rewrite |
2º Reiniciamos Apache
1 |
sudo service apache2 restart |
3º Para que apache use los archivos .htaccess, editamos el default VirtualHost con:
1 |
sudo nano /etc/apache2/sites-available/default |
4º Sustituimos:
1 |
AllowOverride None por AllowOverride All |
5º Por último volvemos a reiniciar apache.
1 |
sudo service apache2 restart |
Si te encuentras con un error 500 por la ejecución de un script, en mi caso fue por phpmailer y un bucle de envíos, y en el log de apache te aparece «mod_fcgid: read data timeout in 45 seconds» no desesperes tengo una solución. Básicamente ocurre por que php está funcionando con FastCGI y tiene un tiempo establecido. Podemos configurarlo de la siguiente manera:
Editar:
1 2 3 4 5 6 7 8 9 10 11 12 |
> vi /var/www/vhosts/tudominio.com/conf/vhost.conf Incluir: <IfModule mod_fcgid.c> ProcessLifeTime 7200 IPCCommTimeout 7200 IPCConnectTimeout 300 </IfModule> Reconstruimos: /usr/local/psa/admin/bin/httpdmng –reconfigure-domain tudominio.com Reiniciamos Apache: service httpd restart |