Neste tutorial vamos preparar um servidor Ubuntu 24.04 server com PHP8.
Agora podemos iniciar as instalações. Vamos iniciar instalando Apache, PHP.
Habilitaremos módulos como opcache (aceleração), gd (imagens), sqlite3 (banco de dados), pgsql (PostgreSQL) e mysql (MySQL).
sudo apt-get update
sudo apt-get install apache2 php libapache2-mod-php
sudo apt-get install php-xml php-curl php-opcache php-gd php-sqlite3 php-mbstring php-pgsql php-mysql
Em seguida, habilitaremos os módulos do apache, com destaque para o prefork:
a2dismod mpm_event
a2dismod mpm_worker
a2enmod mpm_prefork
a2enmod rewrite
a2enmod php8.3
Obs: Não é objetivo deste artigo entrar nos modos de operação do Apache, mas você pode ler esta discussão:
https://serverfault.com/questions/383526/how-do-i-select-which-apache-mpm-to
Configuração DEV
Agora vamos ajustar algumas configurações do PHP, para habilitar a exibição e log de erros, aumentar o limite de uso de RAM, o tempo de execução, o tempo de sessão, e definir limites de upload.
echo "" >> /etc/php/8.3/apache2/php.ini
echo "error_log = /tmp/php_errors.log" >> /etc/php/8.3/apache2/php.ini
echo "display_errors = On" >> /etc/php/8.3/apache2/php.ini
echo "memory_limit = 256M" >> /etc/php/8.3/apache2/php.ini
echo "max_execution_time = 120" >> /etc/php/8.3/apache2/php.ini
echo "error_reporting = E_ALL" >> /etc/php/8.3/apache2/php.ini
echo "file_uploads = On" >> /etc/php/8.3/apache2/php.ini
echo "post_max_size = 100M" >> /etc/php/8.3/apache2/php.ini
echo "upload_max_filesize = 100M" >> /etc/php/8.3/apache2/php.ini
echo "session.gc_maxlifetime = 14000" >> /etc/php/8.3/apache2/php.ini
Configuração PROD
Quando a aplicação entrar em produção, desligue a exibição de erros. Você pode também ser mais tolerante quanto ao nível de erros a ser reportado.
echo "display_errors = Off" >> php.ini
echo "error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE" >> php.ini
Segurança
Agora algumas configurações para manter o PHP mais seguro, principalmente para proteger as sessões. As seguintes configurações ajudam a diminuir significativamente a chance de ataques como session hijack e session fixation.
echo "session.name = CUSTOMSESSID" >> /etc/php/8.3/apache2/php.ini
echo "session.use_only_cookies = 1" >> /etc/php/8.3/apache2/php.ini
echo "session.cookie_httponly = true" >> /etc/php/8.3/apache2/php.ini
echo "session.use_trans_sid = 0" >> /etc/php/8.3/apache2/php.ini
Quando tudo estiver configurado, restarte o apache:
service apache2 restart
A partir da instalação, você há poderá criar scripts em PHP e executá-los no navegador.
A pasta utilizada para salvar os arquivos do projeto será /var/www/html/projeto_x.
Você poderá acessar a aplicação por meio do endereço http://localhost/projeto_x.