Importante El símbolo
^el linux, significactrl, por ejemplo si aparece^+Wes la teclactrl+w
A continuación se configura el servidor apache con los motores de base de datos MySQL, postgress y sqlite3
Primero instalaremos a instalar apache2, php7, mysql 5.6 y algunas librerías
sudo apt-get install apache2 mysql-server php libapache2-mod-php php-mcrypt php-mysql php-cli mcrypt php-pear
Si por alguna razón el paquete php-mcrypt no está disponible, eliminarlo del comando
Otras librerías importantes
sudo apt-get install php-gd php-intl php-readline
El parámetro php-gd para trabajar con imágenes como los captcha
Instalar mbstring
sudo apt-get install php-mbstring php7.0-mbstring php-gettext libapache2-mod-php7.0
Habilitamos el mcrypt y mbstring
sudo phpenmod mcryptsudo phpenmod mbstring
Habilitar el mod_rewrite para trabajar con urls enriquecidas
sudo a2enmod rewrite
Para reiniciar el servidor apache ejecutamos el siguiente comando.
service apache2 restart
Para mysql, también podemos ejecutar ese comando para mysql.
- start Inicia el servicio
- stop Detiene el servicio que le indiquemos
Para instalar sqlite y el respectivo soporte para php, lo hacemos mediante el siguiente comando
sudo apt-get install sqlite php-sqlite3
Para instalar postgresql, su respectivo soporte para php y la herramienta pgadmin
sudo apt-get install postgresql postgresql-contrib pgadmin3 pgagent php-pgsql
Para instalar el soporte de MySQL para python, lo instalamos mediante el siguiente comando.
sudo apt-get install python-mysqldb
Si deseamos cambiar la carpeta de trabajo por defecto que se encuentra en /var/www/html debemos modificar el archivo de configuración de apache
sudo nano /etc/apache2/apache2.conf
Allí buscamos la directiva Directory y configuramos la carpeta que deseemos
<Directory /home/username/public_html/>
Options indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>Luego se hacer esta modificación, reiniciamos apache
sudo service apache2 restart
Es importante que en AllowOverride esté en All para permitir las urls amigables
Luego modificamos el archivo de sitios
sudo nano /etc/apache2/sites-enabled/000-default.conf
Buscamos la línea de DocumentRoot, la comentamos y agregamos la nuestra
#DocumentRoot /var/www/html
DocumentRoot /home/user/public_html
Una vez terminada la configuración p después de cualquier cambio es importante reiniciar el servidor.
sudo service apache2 restart
Para permisos de escritura en linux, ejecutamos el siguiente comando en consola.
sudo chmod +w -R carpeta/
El parámetro +w da permisos se escritura para la carpeta
El parámetro -R le da permiso de escritura a todas las carpetas contenidas en la carpeta raíz (Que le hemos especificado)
Para ingresar a mysql por consola, podemos usar el comando
mysql -u root -p
root es el nombre de usuario, y con -p le indicamos la contraseña
-
Instalarlo desde los repositorios
sudo apt-get install phpmyadmin
Los paquetes recomendados
php-gdphp-tcpdf
sudo apt-get install php-gd php-tcpdf
-
Configurar apache para que tome la ruta, para eso debemos abrir el archivo
/etc/apache2/apache2.confy agregamos las siguientes líneassudo nano /etc/apache2/apache2.conf
O abrir el archivo con sublime
sudo subl /etc/apache2/apache2.conf
# phpMyAdmin Configuration
Include /etc/phpmyadmin/apache.conf
-
Guardar el archivo y reiniciar apache
sudo service apache2 restartsudo service mysql start
Después de eso se podrá ingresar desd htt//localhoost/phpmyadmin
Para instalar LAMPP se puede usar el siguiente comando
sudo apt-get install mysql-server-5.6 php5 apache2 php5-mysql
Si por algún motivo, durante la instalación aparece el siguiente error
Access denied for user 'root'@'localhost'podemos solucionarlo siguiendo los pasos en este enlace:
Por defecto, mysql no permite dejar espacio en blanco para la contraseña.
Estos errores, pueden arreglarse, al crear la contraseña e instalar los paquetes recomendados. Con eso, se garantiza una buena instalación del gestor de base de datos.
Para ver los errores de apache, es necesario ir a la ruta /var/log/apache2/error.log. En este archivo, se registran todos los errores que hayan en el servidor y en los proyectos qe estemos desarrolando.
En caso de cualquier problema, puede ser por la versión de php, al incluir nuevas reglas para la programación. Para eso, copiar el error tal cual y buscarlo, porque los errores pueden ser aleatorios.
Esta configuración de mysql, en algunas ocasiones no deja ingresar valores vacíos en los autoincrementables
Para ver la configuración, podemos ingresar el siguiente comando
mysql -u user -p
Ingresar el usuario, reemplazar user por el que tenga y escribir la contraseña
mysql> SELECT @@sql_mode;
Luego que esté dentro, vemos la configuración de este parámetro. En algunos casos puede ser este por defecto.
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Para cambiar este parámetro y que nos permite ingresar datos vacíos como ' ' debemos cambiar el sql_mode, y lo podemos hacer de la siguiente manera
Si en la consola, ejecutamos la consulta
SELECT @@GLOBAL.sql_mode;
Nos arrojara esto:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Podemos cambiarlos a
SET GLOBAL sql_mode = '';
De esta manera, nos dejar+a ingresar valores vacíos en los campos, pero no es lo más recomendable.
Ver la información https://stackoverflow.com/questions/35037288/incorrect-decimal-integer-value-mysql#35037657
Sin embargo, con esta configuración debemos cada vez que se reinicie el servidor, se reestablecen los valores. Para solucionar esto, debemos dejar configurado este desde la configuración de mysql.
Este archivo de configuración lo encontramos en /etc/mysql/my.cnf, en la sección mysqlid
Luego que estemos en este archivo, debemos colocar la siguiente sentencia, para indicar la configuración.
[mysqld]
sql-mode=""Hay que estar seguros que se tenga sql-mode y no guiones bajos y sin comillas dobles en versiones mysql 5.7.8 or mayores.
Para más información ver Configuración global de sql_mode en mysql
Para instalar LAMP en WSL, se usa el comando
sudo apt-get install lamp-server^
Esto nos instalará todos los servicios necesarios.
Si por alguna razón, al intentar abrir mysql o apache desde la terminal, da error. Se puede usar la siguiente configuración.
-
sudo mysqlSi no funciona este comando, usar -
sudo service mysql start -
sudo /etc/init.d/mysql start -
service apache2 startSi no funciona este comando usar el siguiente -
sudo service apache2 start -
sudo /etc/init.d/apache2 start
Refs
- Ubuntu 20.04 set mysql phpmyadmin root password
- Cómo instalar la pila Linux, Apache, MySQL y PHP (LAMP) en Ubuntu 20.04
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Cambiar requetimientos para la contraseña
SHOW VARIABLES LIKE 'validate_password%';SET GLOBAL validate_password.length = 6;SET GLOBAL validate_password.policy=LOW;
Presione la tecla Esc para ingresar al "Modo normal". Luego puede escribir : para ingresar al "Modo de línea de comandos". Aparecerán dos puntos (:) en la parte inferior de la pantalla y puede escribir uno de los siguientes comandos. Para ejecutar un comando, presione la tecla Enter.
:qPara salir (Abreviatura para:quit):q!salir sin guardar (abreviatura de:quit!):wqpara escribir y salir:wq!para escribir y salir incluso si el archivo solo tiene permiso de lectura (si el archivo no tiene permiso de escritura: forzar escritura):xpara escribir y salir (similar a:wq, pero solo escriba si hay cambios):qapara salir de todo (abreviatura de:quitall):cqpara salir sin guardar y hacer que Vim devuelva un error distinto de cero (es decir, salir con error)
Vim tiene una amplia ayuda, a la que puede acceder con el comando :help, donde puede encontrar respuestas a todas sus preguntas y un tutorial para principiantes.