Servidor Web · 6 min read · Sep 21, 2025
O Servidor Perfeito - OpenSUSE 11.3 x86_64 [ISPConfig 2] - Página 5
11 Apache/PHP5/Ruby/Python/WebDAV
Agora instalamos o Apache com PHP5:
yast2 -i apache2 apache2-devel apache2-mod_perl apache2-mod_php5 apache2-prefork perl-HTML-Parser perl-HTML-Tagset perl-Tie-IxHash perl-URI perl-libwww-perl php5 php5-devel zlib zlib-develEm seguida, instalamos alguns módulos PHP5:
yast2 -i php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm ImageMagick curlEm seguida, editamos /etc/apache2/httpd.conf:
vi /etc/apache2/httpd.confe mudamos DirectoryIndex para
| [...] DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php5 index.php4 index.php3 index.pl index.html.var index.aspx default.aspx [...] |
Ative o módulo de reescrita do Apache:
a2enmod rewrite Edite /etc/sysconfig/apache2 e adicione SSL à linha APACHE_SERVER_FLAGS:
vi /etc/sysconfig/apache2| [...] APACHE_SERVER_FLAGS="SSL" [...] |
Agora configure seu sistema para iniciar o Apache na inicialização:
chkconfig --add apache2Em seguida, execute
SuSEconfig
/etc/init.d/apache2 start
11.1 Desativar PHP e Perl Globalmente
(Se você não planeja instalar o ISPConfig neste servidor, pule esta seção!)
No ISPConfig, você configurará PHP e Perl por site, ou seja, você pode especificar qual site pode executar scripts PHP e Perl e qual não pode. Isso só pode funcionar se PHP e Perl estiverem desativados globalmente, pois caso contrário, todos os sites poderiam executar scripts PHP/Perl, não importa o que você especifique no ISPConfig.
Para desativar PHP e Perl globalmente, editamos /etc/mime.types e comentamos as linhas application/x-perl e application/x-php:
vi /etc/mime.types| [...] #application/x-perl pl pm al perl #application/x-php php php3 php4 [...] |
Em seguida, edite /etc/apache2/conf.d/php5.conf e comente todas as linhas AddHandler:
vi /etc/apache2/conf.d/php5.conf| |
Depois disso, reiniciamos o Apache:
/etc/init.d/apache2 restart11.2 mod_ruby
OpenSUSE 11.3 não tem um pacote mod_ruby, portanto, devemos compilá-lo manualmente. Primeiro, instalamos os pré-requisitos:
yast2 -i apache2-devel ruby ruby-develDepois, construímos o mod_ruby da seguinte forma:
cd /tmp
wget http://modruby.net/archive/mod_ruby-1.3.0.tar.gz
tar zxvf mod_ruby-1.3.0.tar.gz
cd mod_ruby-1.3.0/
./configure.rb –with-apr-includes=/usr/include/apr-1
make
make install
Para habilitar o mod_ruby, execute…
a2enmod ruby … e reinicie o Apache:
/etc/init.d/apache2 restart11.3 mod_python
Para instalar o mod_python, simplesmente executamos:
yast2 -i apache2-mod_pythonPara habilitar o mod_python, execute…
a2enmod python … e reinicie o Apache:
/etc/init.d/apache2 restart11.4 WebDAV
Ative os módulos WebDAV… a2enmod dav
a2enmod dav_fs
a2enmod dav_lock
… e reinicie o Apache:
/etc/init.d/apache2 restart12 Proftpd
Quero usar o ProFTPd em vez do vsftpd, que é o servidor FTP padrão do SUSE, porque o software do painel de controle que vou instalar neste servidor (ISPConfig) funciona melhor com o ProFTPd no OpenSUSE 11.3. Como não existem pacotes OpenSUSE para o ProFTPd, tenho que compilá-lo manualmente.
Primeiro, instalamos alguns pré-requisitos:
yast2 -i libcap libcap-develEm seguida, construímos o ProFTPd da seguinte forma:
cd /tmp/
wget –passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3a.tar.gz
tar xvfz proftpd-1.3.3a.tar.gz
cd proftpd-1.3.3a/
./configure –sysconfdir=/etc
make
make install
cd ..
rm -fr proftpd-1.3.3a*
Agora crie o arquivo /etc/init.d/proftpd:
vi /etc/init.d/proftpd| #! /bin/sh # Copyright (c) 2000-2001 SuSE GmbH Nuernberg, Germany. # Todos os direitos reservados. # # Autor original: Marius Tomaschewski <[email protected]> # # Levemente modificado em 2003 para uso com SuSE Linux 8.1, # por http://www.learnlinux.co.uk/ # # Levemente modificado em 2005 para uso com SuSE Linux 9.2, # por Falko Timme # # /etc/init.d/proftpd # ### BEGIN INIT INFO # Provides: proftpd # Required-Start: $network $remote_fs $syslog $named # Required-Stop: # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: Inicia o servidor ProFTPD ### END INIT INFO # Determina a base e segue um nome de link de nível de execução. base=${0##*/} link=${base#*[SK][0-9][0-9]} # Força a execução se não for chamado por um diretório de nível de execução. test $link = $base && START_PROFTPD=yes # Modificado por learnlinux.co.uk test "$START_PROFTPD" = yes || exit 0 # Modificado por learnlinux.co.uk # Valores de retorno de acordo com LSB para todos os comandos, mas # status (veja abaixo): # # 0 - sucesso # 1 - erro genérico ou não especificado # 2 - argumento(s) inválido ou excessivo(s) # 3 - recurso não implementado (ex: "reload") # 4 - privilégio insuficiente # 5 - programa não está instalado # 6 - programa não está configurado # 7 - programa não está em execução proftpd_cfg="/etc/proftpd.conf" proftpd_bin="/usr/local/sbin/proftpd" proftpd_pid="/usr/local/var/proftpd.pid" [ -r $proftpd_cfg ] || exit 6 [ -x $proftpd_bin ] || exit 5 # Fonte de funções de status . /etc/rc.status # Primeiro, redefina o status deste serviço rc_reset case "$1" in start) echo -n "Iniciando o Servidor ProFTPD: " test -f /etc/shutmsg && rm -f /etc/shutmsg /sbin/startproc $proftpd_bin rc_status -v ;; stop) echo -n "Desligando o Servidor ProFTPD: " test -x /usr/local/sbin/ftpshut && /usr/local/sbin/ftpshut now && sleep 1 /sbin/killproc -TERM $proftpd_bin test -f /etc/shutmsg && rm -f /etc/shutmsg rc_status -v ;; restart) ## Se o primeiro retornar OK, chame o segundo; se o primeiro ou ## segundo comando falhar, defina o valor de retorno do echo. $0 stop $0 start rc_status ;; try-restart) ## Pare o serviço e, se isso for bem-sucedido (ou seja, o ## serviço estava em execução antes), inicie-o novamente. ## Nota: não (ainda) faz parte do LSB (a partir de 0.7.5) $0 status >/dev/null && $0 restart rc_status ;; reload|force-reload) ## Possibilidade exclusiva: Alguns serviços devem ser parados ## e iniciados para forçar um novo carregamento da configuração. echo -n "Recarregar Servidor ProFTPD: " /sbin/killproc -HUP $proftpd_bin rc_status -v ;; status) # O status tem um ligeiramente diferente para o comando de status: # 0 - serviço em execução # 1 - serviço morto, mas o arquivo pid em /var/run/ existe # 2 - serviço morto, mas o arquivo de bloqueio em /var/lock/ existe # 3 - serviço não está em execução echo -n "Verificando o Servidor ProFTPD: " checkproc $proftpd_bin rc_status -v ;; probe) ## Opcional: Probar a necessidade de um recarregamento, ## dar o argumento que é necessário para um recarregamento. [ $proftpd_cfg -nt $proftpd_pid ] && echo reload ;; *) echo "Uso: $0 {start|stop|status|restart|reload|try-restart|probe}" exit 1 ;; esac # Defina um status de saída. rc_exit |
Em seguida, execute
chmod 755 /etc/init.d/proftpd
chkconfig –add proftpd
Inicie o ProFTPd:
/etc/init.d/proftpd startSe você receber o seguinte erro…
Iniciando o Servidor ProFTPD: - Fatal: UseIPv6: O uso da diretiva UseIPv6 requer suporte a IPv6 (–enable-ipv6) na linha 14 de ‘/etc/proftpd.conf’
startproc: status de saída do pai de /usr/local/sbin/proftpd: 1
… abra /etc/proftpd.conf e comente ou remova a linha UseIPv6:
vi /etc/proftpd.conf | [...] # Não use suporte a IPv6 por padrão. #UseIPv6 off [...] |
Por razões de segurança, você pode adicionar as seguintes linhas ao /etc/proftpd.conf:
vi /etc/proftpd.conf| [...] DefaultRoot ~ IdentLookups off ServerIdent on "Servidor FTP pronto." [...] |
Certifique-se de comentar as seguintes linhas para permitir que os usuários ftp possam CHMOD:
| [...] # Proibir o uso de SITE CHMOD por padrão # | e reinicie o ProFTPd:
/etc/init.d/proftpd restartReceba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.