Instalacion y Configuración de Workspace PHP en Linux Mint 20
#Docker #Laravel #PHP #Composer #MySQL #Linux #Node
Recientemente tuve que formatear mi PC de escritorio, reinstalar el sistema operativo, y volver a instalar todas las herramientas que necesito y uso para desarrollo web en PHP, y me pareció un buen momento para armar este post, y dejar registro de todos los pasos.
Estos son los pasos que seguí, en un Linux Mint 20 Ulyana recién instalado.
zsh y oh-my-zsh
Primero instalo el shell zsh y lo configuro como shell predeterminado para mi usuario.
sudo apt install zsh
sudo chsh -s /bin/zsh tehuel
Después instalo oh-my-zsh. El script de instalación se encarga de todos los pasos necesarios.
# instalo con wget
sudo apt install git
wget --no-check-certificate http://install.ohmyz.sh -O - | sh
# alternativamente, instalo con curl
sudo apt install git curl
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Luego de que el instalador finalice hay que reiniciar sesión. Debería tener zsh funcionando como shell por defecto, con oh-my-zsh.
Finalmente, modifico ~/.zshrc
, cambio el parámetro theme a lambda
.
PHP 8.0 y Composer
Ya que tengo que reinstalar desde 0, aprovecho y elijo la última versión de PHP. Instalo algunos paquetes adicionales, para poder instalar Laravel.
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.0-cli php8.0-bcmath php8.0-curl php8.0-mbstring php8.0-xml php8.0-mysql php8.0-sqlite3 php8.0-zip
php --version
Después de tener PHP funcionando, el siguiente paso es composer
. Sin seguir los pasos recomendados en la documentación de Composer, opté por un método más directo: descargar el .phar, sin script instalador de por medio.
curl -sS https://getcomposer.org/installer | php
chmod +x composer.phar
sudo mv composer.phar /usr/local/bin/composer
composer --version
SSH Keys
Copio las claves SSH personales que tengo guardadas, y las agrego al sistema.
chmod 400 tehuel
chmod 400 tehuel.pub
mkdir ~/.ssh
mv tehuel ~/.ssh/
mv tehuel.pub ~/.ssh/
ssh-add ~/.ssh/tehuel
Comando SUDO
Configuro las opciones de SUDO usando el comando visudo
, para que no me pida contraseña.
%sudo ALL = (ALL) NOPASSWD: ALL
NodeJS / NPM
Instalo la versión LTS de Node, usando el instalador provisto por Nodesource.
sudo apt-get install curl python-software-properties
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
Una vez que está todo listo, proceso finalmente a la instalación de Node. Incluyo (tal como lo sugiere el script) algunas dependencias necesarias para compilar paquetes de forma nativa.
sudo apt-get install -y nodejs gcc g++ make
Corrijo los permisos para instalar paquetes de forma global
Edito ~/.zshrc
, agrego al final:
# Adds global node packages binaries to path
export PATH="$HOME/.npm-global/bin:$PATH"
Sublime Text
Para instalar el editor de texto se puede hacer como indica la web, agregando los repositorios, o también se puede hacer directo en el store de apps de Linux Mint.
Voy por el camino oficial, agregando los repositorios.
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
sudo apt-get update
sudo apt-get install sublime-text
Paquetes Instalados
Dejo un listado rápido de algunos paquetes instalados en Sublime Text.
- DocBlockr
- DotENV
- FileIcons
- SyncedSideBar
- SidebarEnhancements
- SublimeLinter
- SublimeLinter-eslint
- Vue Syntax Highlight
- Typescript
Configuración (sólo incluyo las modificaciones):
{
"font_size": 11,
"hot_exit": false,
"line_padding_bottom": 6,
"line_padding_top": 6,
"remember_full_screen": true,
"scroll_past_end": false,
"show_encoding": true,
"show_line_ending": true,
}
Docker y docker-compose
// TODO
PHPStorm (y Jetbrains Toolbox)
Instalo JetBrains Toolbox (hace que la instalación y actualización de todo lo relacionado a Jetbrains sea más sencilla). Para eso, descargo desde jetbrains.com/toolbox-app/.
Extraigo y muevo el archivo ejecutable a /usr/local/bin
. Luego, ejecuto el Jetbrains Toolbox.
tar -x jetbrains-toolbox-{version}.tar.gz
sudo mv jetbrains-toolbox-{version}/jetbrains-toolbox /usr/local/bin
/usr/local/bin/jetbrains-toolbox
Instalo y ejecuto PHPStorm. A partir de acá todas las configuraciones las hago de manera visual.
Configuraciones:
Settings > Editor > Font
- Font: Cascadia Code
- Size: 13
- Line Spacing: 1.8
- Activo “Enable Font Ligatures”
Settings > Editor > General > Breadcrumbs
- Desactivo “Show breadcrumbs” (arriba de todo)
Settings > Editor > General > Code Folding
- Activo “Documentation comments”
Settings > Tools > Web Browsers
- Desactivo “Show browsers popup in the editor” (abajo de todo)
Otras Configuraciones: Inotify Watches Limit
Me aparece una notificación indicando que el limite actual de inotifiers puede ser demasiado bajo. Esto es una config a nivel sistema.
sudo nano /etc/sysctl.d/idea.conf
Agrego la linea
fs.inotify.max_user_watches = 524288
Luego, para cargar la nueva config ejecuto el comando:
sudo sysctl -p --system
Finalmente, reinicio PHPStorm.
Otros Programas
- Sublime Merge: Después de agregar los repositorios para Sublime Text Editor, ejecutar
sudo apt-get install sublime-merge
Los siguientes programas se pueden instalar directamente a partir de archivos .deb
.
Referencias:
- https://www.computersnyou.com/3145/setup-zsh-oh-zsh-linux-mint-quick-guide/
- https://serverfault.com/questions/160581/how-to-setup-passwordless-sudo-on-linux
- https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally
- https://www.sublimetext.com/docs/3/linux_repositories.html
- https://tecadmin.net/install-latest-nodejs-npm-on-linux-mint/
- https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit
Cargando Comentarios
Error
Hubo un error cargando los comentarios.
No hay comentarios
Podés ser la primera persona en dejar un comentario.
Agregar Comentario
Tu dirección de email no será publicada. Los comentarios son revisados de forma manual antes de ser publicados.
Enviando
Gracias por enviar tu comentario
Si todo funciona bien pronto estará visible en el sitio.
Error
Hubo un error con el envío del comentario. Deberías volver a intentarlo.