GNU/Linux >> Tutoriales Linux >  >> Panels >> Panels

Cómo configurar suPHP en un servidor ISPConfig basado en Debian Sarge

Cómo configurar suPHP en un servidor ISPConfig basado en Debian Sarge

Versión 1.3
Autor: [at] bb-hosting [punto] org>

Con este tutorial explico cómo configurar suPHP en un servidor ISPConfig basado en Debian con php4. Principalmente, se basa en el howto de Falko https://www.howtoforge.com/apache2_suphp_php4_php5. Dentro de los foros de Howtoforge, se puede encontrar mucha información sobre "configurar suphp".
Sin embargo, esta información está repartida por todos los foros, por lo que no está muy claro cómo configurar suphp en un servidor ISPConfig. Fue la razón por la que escribí este howto. Cuando haya configurado suPHP en su servidor ISPConfig, puede ejecutar los scripts PHP bajo el usuario administrador del sitio web en lugar de www-data.

Importante:he probado este procedimiento en un servidor Debian Sarge con ISPConfig 2.2.11 y 4.3.10-19 para Apache2, ¡pero no garantizo que funcione para usted!

Primero haga una copia de su archivo /etc/apache2/vhosts/Vhosts_ispconfig.conf. Por ejemplo, cópielo en /etc/apache2/vhosts/Vhosts_ispconfig-backup.conf.

En un servidor ISPConfig predeterminado, php4 se ejecuta como un módulo. Desactívelo con el comando:

a2dismod php4

Ahora elimine todas las entradas de phpadmin dentro del archivo Vhosts_ispconfig.conf original. Reiniciar Apache:

/etc/init.d/apache2 restart

Como eliminamos todas las entradas de phpadmin, no debería tener ningún error cuando se reinicie Apache2.

Instale suPHP como un DSO, por lo tanto debemos instalar apxs (en Debian Sarge es apxs2):

apt-get install apache2-prefork-dev

Instalar PHP4-CGI:

apt-get install php4-cgi
cd /tmp

Instale suPHP, la versión 0.6.2 es la última versión estable en este momento:

wget http://www.suphp.org/download/suphp-0.6.2.tar.gz
tar xvfz suphp-0.6.2.tar.gz
cd suphp-0.6.2
vi src/apache2/mod_suphp.c

Reemplace las líneas 324/325 con estas dos líneas a continuación (si usa una versión diferente de suPHP, los números de línea pueden ser diferentes):

AP_INIT_ITERATE("suPHP_AddHandler", suphp_handle_cmd_add_handler, NULL, RSRC_CONF | ACCESS_CONF, "Tells mod_suphp to handle these MIME-types"),
AP_INIT_ITERATE("suPHP_RemoveHandler", suphp_handle_cmd_remove_handler, NULL, RSRC_CONF | ACCESS_CONF, "Tells mod_suphp not to handle these MIME-types"),

Luego compilamos e instalamos suPHP:

./configure --prefix=/usr --sysconfdir=/etc --with-apache-user=www-data --with-setid-mode=paranoid --with-apxs=/usr/bin/apxs2
make
make install

Copie el archivo suphp.conf:

cp /tmp/suphp-0.6.2/doc/suphp.conf-example /etc/suphp.conf

Cambie el contenido de /etc/suphp.conf usando el comando:

vi /etc/suphp.conf

Debería verse así:

[global]
;Path to logfile
logfile=/var/log/suphp.log

;Loglevel
loglevel=info

;User Apache is running as
webserver_user=www-data

;Path all scripts have to be in
docroot=/

;Path to chroot() to before executing script
;chroot=/mychroot

; Security options
allow_file_group_writeable=true
allow_file_others_writeable=false
allow_directory_group_writeable=true
allow_directory_others_writeable=false

;Check wheter script is within DOCUMENT_ROOT
check_vhost_docroot=true

;Send minor error messages to browser
errors_to_browser=false

;PATH environment variable
env_path=/bin:/usr/bin

;Umask to set, specify in octal notation
umask=0077

; Minimum UID
min_uid=100

; Minimum GID
min_gid=100

[handlers]
;Handler for php-scripts
x-httpd-php=php:/usr/bin/php4-cgi

;Handler for CGI-scripts
x-suphp-cgi=execute:!self

Agregue la siguiente línea a /etc/apache2/httpd.conf, usando el comando:

vi /etc/apache2/httpd.conf
LoadModule suphp_module       /usr/lib/apache2/modules/mod_suphp.so

Reinicie Apache, usando el comando:

/etc/init.d/apache2 restart

Edite /home/admispconfig/ispconfig/lib/config.inc.php busque la línea:

$go_info["server"]["apache2_php"] = 'both';

y cambia a:

$go_info["server"]["apache2_php"] = 'suphp';

Ahora, dentro de ISPConfig haz una pequeña modificación en una de tus webs, para que ISPConfig escriba un nuevo archivo vhost. Por ejemplo, habilite cgi-scrips para uno de sus sitios web más o menos.

Dentro de /etc/apache2/vhosts/Vhosts_ispconfig.conf, verá que ISPConfig ha reescrito el archivo, porque las siguientes líneas se agregan para cada web:

suPHP_Engine on
suPHP_UserGroup username groupname
AddHandler x-httpd-php .php .php3 .php4 .php5
suPHP_AddHandler x-httpd-php
</VirtualHost>

Importante:¡no realice cambios manuales en su archivo /etc/apache2/vhosts/Vhosts_ispconfig.conf!

Cuando establezcas una conexión vía FTP, verás que puedes configurar cualquier permiso dentro de tu web:

También puede ejecutar los scripts php con el usuario administrador del sitio web en lugar del usuario del sistema www-data. Esto le da más comodidad al usuario administrador del sitio web. suPHP también es muy útil cuando ejecuta un CMS dentro de su web como Joomla. Con suPHP habilitado, Joomla tendrá suficientes permisos para funcionar correctamente, ¡mientras que el usuario administrador del sitio web tiene el control total! Por último, pero no menos importante, ¡usar suPHP es una solución más segura y más profesional que usar chmod 777 para su sitio web!

Si no quiere usar php4-cgi+suPHP para un sitio web en particular en su servidor ISPConfig, hay una solución. Inicie sesión en su servidor como root y habilite el módulo php4 para Apache2:

a2enmod php4

Reinicie Apache2 con:

/etc/init.d/apache2 force-reload

Dentro de ISPConfig, deshabilite php y agregue lo siguiente dentro del campo de directivas de Apache para su sitio:

<Directory /var/www/webX/web>
AddType application/x-httpd-php .php .php3 .php4
php_admin_flag safe_mode Off
</Directory>

Ahora su ISPConfig con Debian Sarge, usa PHP4-mod y PHP4-CGI+suPHP. En la mayoría de las situaciones, solo necesitará PHP4-CGI+suPHP. Sin embargo, si no puede usar el mecanismo suphp por alguna razón, aún puede usar php4 como módulo para ese sitio web en particular.


Panels
  1. Cómo configurar un servidor LAMP de Ubuntu/Debian

  2. Cómo configurar un servidor SFTP en Debian 11 Server

  3. Cómo instalar Z-Push en un servidor ISPConfig 3 (Debian Lenny)

  4. Cómo configurar suPHP en un servidor ISPConfig basado en Debian Etch

  5. Cómo instalar Nextcloud 14 en Debian 9

Cómo configurar un servidor de correo con PostfixAdmin en Debian 11

Cómo configurar el servidor Rsyslog Debian 10/11

Cómo configurar el servidor y el cliente NTP en Debian 11

Cómo configurar Mailman con Debian e ISPConfig

Cómo configurar la base de código de Gallery2 en un servidor ISPConfig

Cómo configurar un multisitio Gallery2 en un servidor ISPConfig