Desativando o SELinux apenas para o Apache
Hoje fiz a instalação de um CentOS 5.3 em um modesto Pentium III 900MHz com 256Mb. Fiz a instalação em modo texto, sem ambiente gráfico. Após a instalação fui colocar a aplicação web para rodar nela e eis que o SELinux estava lá atrabalhando minha vida. A aplicação precisa ter acesso a um diretório de um daemon do sistema para leitura de arquivos e não estava tendo permissão (utiliza o usuário do apache). Chequei as permissões e estavam todas ok. Aos poucos fui descobrindo o motivo: SELinux ativado bloqueando o acesso a determinados diretórios.
Alguns minutos de pesquisa e eis que encontrei a solução para o meu problema: Desativar o SELinux apenas para o HTTP.
root@hylafax ~# echo “httpd_disable_trans=1″ >> /etc/selinux/targeted/booleans
root@hylafax ~# setsebool httpd_disable_trans 1
root@hylafax ~# service httpd restart
Prontinho! SELinux funcionando e sem influenciar a minha aplicação web. Espero que esta dica seja útil para vocês. Abraços.
Instalando PHP 5 com suporte a MySQL, PostgreSQL, FirebirdSQL e IBM DB2
Sistema operacional utilizado: Linux CentOS 5.2 (x86_64)
Servidor Web utilizado: Apache 2.2 HTTP Server
Versão do PHP: 5.2.6
Versão do DB2: 9.5
Não é uma tarefa nada difícil.
Primeiro passo é remover os pacotes do PHP do CentOS:
# rpm -e php-cli-5.1.6-20.el5 php-ldap-5.1.6-20.el5 php-5.1.6-20.el5 php-common-5.1.6-20.el5
Agora, atualizamos o sistema e instalamos as dependências:
# yum update
# yum install httpd-devel.x86_64 postgresql-devel.x86_64 postgresql-libs.x86_64 postgresql-server.x86_64 postgresql.x86_64 mysql-server.x86_64 mysql-devel.x86_64 mysql.x86_64 unixODBC.x86_64 libdbi-dbd-mysql.x86_64 mysql-devel.x86_64 mysql.x86_64 mysql-test.x86_64
Resolvendo problemas de link simbólicos do MySQL:
# ln -s /usr/lib64/mysql/libmysqlclient.so.15.0.0 /usr/lib/libmysqlclient.so
# ln -s /usr/lib64/mysql/libmysqlclient.so.15.0.0 /usr/lib/libmysqlclient.so.15
Instalando o pacote do FirebirdSQL baixado do site oficial (www.firebirdsql.org).
# rpm -ihv FirebirdSS-2.0.4.13130-1.amd64.rpm
Compilando o PHP 5.2.6 (Código fonte baixado do site oficial: www.php.net).
# tar xvjf php-5.2.6.tar.bz2 -C /usr/src/.
# cd /usr/src/php-5.2.6
Lendo o profile da sua instância do DB2:
# source /home/db2inst1/sqllib/db2profile
Iniciando a compilação
# ./configure –prefix=/usr –sysconfdir=/etc/php5 –with-apxs2 –with-mod_charset –localstatedir=/var –with-config-file-path=/etc/php5 –with-config-file-scan-dir=/etc/php5/conf.d –disable-debug –enable-pic –enable-dbase –disable-rpath –enable-inline-optimization –with-bz2 –with-db4 –with-curl –with-freetype-dir=/usr –enable-gd-native-ttf –without-gdbm –with-gettext –without-gmp –with-iconv –with-openssl –with-xml –with-expat-dir=/usr –with-zlib –with-layout=GNU –enable-bcmath –enable-exif –enable-ftp –enable-magic-quotes –enable-safe-mode –enable-sockets –enable-shmop –enable-sysvmsg –enable-track-vars –enable-trans-sid –disable-yp –enable-wddx –with-pear –enable-memory-limit –enable-calendar –enable-dbx –enable-dio –with-mime-magic –with-mysql –with-pgsql –with-interbase –with-readline –enable-gd-jis-conv –enable-fastcgi –enable-discard-path –enable-force-cgi-redirect –enable-dba –with-gd –with-jpeg-dir=/usr –with-png-dir=/usr –with-ibm-db2 –with-iodbc
# make
# make install
# cp php.ini-recommended /etc/php5/php.ini
Configurando o Apache
# vi /etc/httpd/conf.d/php5.conf
Inserir o seguinte conteúdo:
# Load PHP5 Module
LoadModule php5_module /usr/lib64/httpd/modules/libphp5.so
# File types
AddType application/x-httpd-php .php
Editando o HTTPD.CONF
# vi /etc/httpd/conf/httpd.conf
Localizar a linha que contém:
DirectoryIndex index.html index.html.var
Substituir por:
DirectoryIndex index.html index.php index.html.var
Configurando a inicialização do Apache:
# vi /etc/init.d/httpd
Adicionar no inicio:
. /home/db2inst1/sqllib/db2profile
Pronto! Agora crie o seu “phpinfo.php”.
# vim /var/www/html/phpinfo.php
Adicionar o seguinte conteúdo:
<? phpinfo(); ?>
Agora salve e reinicie o seu HTTPD:
# service httpd restart
Agora é só acessar: http://ip.do.seu.servidor/phpinfo.php
Várias customizações podem ser feitas no seu php.ini ou ainda na sua compilação, é só pesquisar.