--- tags: tutorial --- Instalação do PHP (Ubuntu) ===================== Instalação do Apache: ```bash sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get install -y apache2 sudo ufw allow in "Apache Full" ``` Instalação do PHP 8.1 ```bash sudo apt install -y php8.1 libapache2-mod-php8.1 php8.1-curl php8.1-gd php8.1-mbstring php8.1-mysql php8.1-xml php8.1-xmlrpc php-xdebug php8.1-zip php8.1-imap ``` Versões antigas ```bash sudo apt install -y php5.6 libapache2-mod-php5.6 php5.6-curl php5.6-gd php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml php5.6-xmlrpc php-xdebug php5.6-zip php5.6-imap sudo apt install -y php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-gd php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-xml php7.0-xmlrpc php-xdebug php7.0-zip php7.0-imap sudo apt install -y php7.1 libapache2-mod-php7.1 php7.1-curl php7.1-gd php7.1-mbstring php7.1-mcrypt php7.1-mysql php7.1-xml php7.1-xmlrpc php-xdebug php7.1-zip php7.1-imap sudo apt install -y php7.2 libapache2-mod-php7.2 php7.2-curl php7.2-gd php7.2-mbstring php7.2-mysql php7.2-xml php7.2-xmlrpc php-xdebug php7.2-zip php7.2-imap sudo apt install -y php8.0 libapache2-mod-php8.0 php8.0-curl php8.0-gd php8.0-mbstring php8.0-mysql php8.0-xml php8.0-xmlrpc php-xdebug php8.0-zip php8.0-imap ``` This will, and should, return a "does not exist!" message. ```bash sudo a2dismod php8.1 ``` This will, and should, return a "already enabled" message. ```bash sudo a2enmod php8.1 sudo systemctl restart apache2 ``` Instalando o Composer --------------------- ```bash curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer ``` Trabalhando com várias Versões do PHP ------------------------------------- Eventualmente será necessário trabalhar com versões diferentes do php. Para isso, segue um [Tutorial](https://sempreupdate.com.br/como-instalar-versoes-diferentes-do-php-5-6-7-0-e-7-1-no-ubuntu/) com um passo a passo para configurar versões diferentes em um mesmo ambiene. Aqui talvez sejá interessante criar um programa em bash ou python para efetuar os comandos com mais facilidade. Configurando o XDebug --------------------- ```ini xdebug.remote_enable = 1 xdebug.remote_port = 9000 xdebug.idekey = PHPSTORM xdebug.show_error_trace = 1 xdebug.remote_autostart = 0 xdebug.file_link_format = phpstorm://open?%f:%l ``` Configurando o APACHE --------------------- Configuração do Apache para um Virtual Host local ```xml <VirtualHost *:80> ServerName lab.local ServerAdmin webmaster@localhost DocumentRoot /home/mario/sandbox/lab/ ErrorLog ${APACHE_LOG_DIR}/lab-error.log CustomLog ${APACHE_LOG_DIR}/lab-access.log combined <Directory /home/mario/sandbox/lab/> Options Indexes FollowSymLinks DirectoryIndex index.php AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> ``` Lembrando de sempre que um novo arquivo for adicionado ao diretório `/etc/apache2/sites-available`, ele deve ser importado com o comando: ```bash sudo a2ensite <nome_do_arquivo.conf> ```