|
|||||||
| Wiki | Classificados | Galeria | Reviews | Jogos | Comunidades | RSS Feeds | FAQ | Termos de Uso | Sobre |
| Cadastre-se | Fotos | Blogs | Lista de Membros | Calendário | Pesquisar | Mensagens de Hoje | Marcar Fóruns Como Lidos |
FerramentasPublicidade |
From UnderLinux Wiki
[editar] Tutorial Apache+PHP+MYSQL em chroot no OpenBSD 3.5[editar] Objetivos:Utilizar o apache dentro de seu chroot em conjunto com php e mysql, mas acho que o mais importante deste tutorial será fazer a função mail() do php rodar normalmente dentro do chroot, pelo que vi pela internet e por eu mesmo ter sofrido para achar essa solução estou disponibilizando a todos como resolver esse pequeno problema. [editar] Instalação do php:O apache já vem compilado por padrão no OpenBSD, então vamos seguir com a instalação do php: Nesse exemplo vou utilizar o pkg_add, mas quem quiser pode compilar os programas direto dos ports pkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/3.5/packages/i386/php4-core-4.3.5RC3.tgz pkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/3.5/packages/i386/php4-mysql-4.3.5RC3.tgz pkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/3.5/packages/i386/php4-pear-4.3.5RC3.tgz [editar] Habilita o php no apache/usr/local/sbin/phpxs -s cp /usr/local/share/doc/php4/php.ini-recommended /var/www/conf/php.ini [editar] Habilita o mysql no php/usr/local/sbin/phpxs -a mysql [editar] Instalar o mysqlpkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/3.5/packages/i386/mysql-server-4.0.18p1.tgz pkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/3.5/packages/i386/mysql-client-4.0.18.tgz [editar] cria os BD do mysql/usr/local/bin/mysql_install_db [editar] seta a senha de root/usr/local/bin/mysqladmin -u root password 'sua_senha' [editar] inicia o banco/usr/local/bin/mysqld_safe & [editar] Configuração ApacheAgora vamos terminar de configurar o apache para utilizar o php, edite o /var/www/conf/httpd.conf, certifique-se que tenha as seguinte linhas DESCOMENTADAS: LoadModule php4_module modules/libphp4.so AddType application/x-httpd-php .php .php3 .htm .html .inc DirectoryIndex index.html index.php Vamos testar se o apache já está interpretando o php, execute: apachectl stop && apachectl start Crie o arquivo index.php dentro de /var/www/htdocs com o conteúdo: <?php
phpinfo();
?>
depois acesse: http://IP_SERVIDOR/index.php Se tudo ocorreu bem ele irá mostrar todas as informações do php em seu servidor, agora vamos criar e copiar os arquivos necessários para a função mail() e para o mysql funcionar dentro do chroot [editar] Configuração email dentro do chrootPara enviar os emails de dentro do chroot eu vou utilizar o mini_sendmail cd /usr/port/mail/mini_sendmail make make install Crie as pastas: mkdir /var/www/bin mkdir /var/www/run mkdir /var/www/run/mysql mkdir /var/www/usr mkdir /var/www/usr/lib mkdir /var/www/libexec mkdir /var/www/etc Copiar os arquivos: #necessário para o mini_sendmail cp -p /bin/sh /var/www/bin/ #necessário para o php conectar ao mysql ln /var/run/mysql/mysql.sock /var/www/run/mysql #necessario para resolver nomes cp -p /etc/resolv.conf /var/www/etc/ cp -p /etc/hosts /var/www/etc/ cp -p /usr/local/bin/mini_sendmail /var/www/bin/ Agora faltam as libs que o mini_sendmail utiliza, execute em sua maquina: ldd /usr/local/bin/mini_sendmail: ele deve retornar algo parecido com isto: Start End Type Ref Name 00000000 00000000 exe 1 /usr/local/bin/mini_sendmail 00c12000 20c4b000 rlib 1 /usr/lib/libc.so.30.3 0449c000 0449c000 rtld 1 /usr/libexec/ld.so Essas são as libs que ele utiliza, então vamos copiá-las para dentro do chroot do apache cp -p /usr/lib/libc.so.30.3 /var/www/usr/lib/ cp -p /usr/libexec/ld.so /var/www/usr/libexec/ Para terminarmos falta apenas um detalhe (mas muito importante), editar o php.ini para informar o caminho correto do sendmail, no nosso caso será o mini_sendmail edite /var/www/conf/php.ini e procure pela linha: ;sendmail_path = e altere para: sendmail_path = /bin/mini_sendmail -ficeman@underlinux.com.br -t -i Troque o iceman@underlinux.com.br pelo seu email ou o email que deseja que apareça no campo FROM dos emails, note que tem um "-f" encostado a o endereço de email. Para finalizar reinicie o apache: apachectl stop && apachectl start Caso tenha dado algum erro de uma olhada em seu log do apache (/var/www/logs/error_log), ele pode lhe informar o que faltou. Rafael M. Capovilla - 1c3_m4n iceman (@) at underlinux.com.br |