<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>php 5.3 &#8211; Manoa Ratefiarison</title>
	<atom:link href="https://manoa.ratefiarison.com/tag/php-5-3/feed/" rel="self" type="application/rss+xml" />
	<link>https://manoa.ratefiarison.com</link>
	<description>Music &#38; code</description>
	<lastBuildDate>Sat, 16 Apr 2022 20:22:36 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://manoa.ratefiarison.com/wp-content/uploads/2022/09/cropped-manoaratefiarison-favicon-32x32.png</url>
	<title>php 5.3 &#8211; Manoa Ratefiarison</title>
	<link>https://manoa.ratefiarison.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Installer PHP 5.3 sous Debian 11</title>
		<link>https://manoa.ratefiarison.com/2022/04/12/installer-php-5-3-debian-11-bullseye/</link>
					<comments>https://manoa.ratefiarison.com/2022/04/12/installer-php-5-3-debian-11-bullseye/#comments</comments>
		
		<dc:creator><![CDATA[Manoa Ratefiarison]]></dc:creator>
		<pubDate>Tue, 12 Apr 2022 19:57:44 +0000</pubDate>
				<category><![CDATA[Administration système]]></category>
		<category><![CDATA[compilation]]></category>
		<category><![CDATA[debian 11]]></category>
		<category><![CDATA[ispconfig]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php 5.3]]></category>
		<category><![CDATA[retro]]></category>
		<guid isPermaLink="false">https://manoa.ratefiarison.com/?p=98</guid>

					<description><![CDATA[Ce tutoriel va vous montrer comment installer le vieux PHP 5.3 sur le système d&#8217;exploitation Debian 11, pour des fins de compatibilité logicielle. Après avoir sorti le tutoriel pour installer PHP 5.4 sous Debian 11, j&#8217;ai décidé de pousser le concept plus loin lorsque j&#8217;étais confronté à une situation où je dois migrer un très ... <a title="Installer PHP 5.3 sous Debian 11" class="read-more" href="https://manoa.ratefiarison.com/2022/04/12/installer-php-5-3-debian-11-bullseye/" aria-label="En savoir plus sur Installer PHP 5.3 sous Debian 11">Lire la suite</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ce tutoriel va vous montrer comment installer le vieux PHP 5.3 sur le système d&rsquo;exploitation Debian 11, pour des fins de compatibilité logicielle.</p>



<span id="more-98"></span>



<p class="wp-block-paragraph">Après avoir sorti le tutoriel pour <a href="https://manoa.ratefiarison.com/2022/04/11/installer-php-5-4-sous-debian-11/" data-type="post" data-id="91">installer PHP 5.4 sous Debian 11</a>, j&rsquo;ai décidé de pousser le concept plus loin lorsque j&rsquo;étais confronté à une situation où je dois migrer un très vieux site OsCommerce sur un système d&rsquo;exploitation récent. Fort heureusement, j&rsquo;ai pu reprendre une grande partie des résolutions de problème faites sur ce précédent article.</p>



<h1 class="wp-block-heading">1. Installer OpenSSL 1.0.2u</h1>



<p class="wp-block-paragraph">Comme PHP 5.4, PHP 5.3 requiert une vieille version d&rsquo;OpenSSL que nous allons compiler et installer de côté :</p>



<pre class="wp-block-code"><code>mkdir -p /usr/local/openssl-1.0.2u
wget -O /usr/local/src/openssl-1.0.2u.tar.gz https://www.openssl.org/source/openssl-1.0.2u.tar.gz
cd /usr/local/src/
tar -xf openssl-1.0.2u.tar.gz
rm -f openssl-1.0.2u.tar.gz
cd openssl-1.0.2u
./config shared --prefix=/usr/local/openssl-1.0.2u
make -j $(nproc)
make install
ln -s /usr/local/openssl-1.0.2u/lib /usr/local/openssl-1.0.2u/lib/x86_64-linux-gnu
wget -O /usr/local/openssl-1.0.2u/ssl/cert.pem "http://curl.haxx.se/ca/cacert.pem"
ln -s /usr/local/openssl-1.0.2u/lib/libcrypto.so.1.0.0 /usr/lib/x86_64-linux-gnu/
ln -s /usr/local/openssl-1.0.2u/lib/libssl.so.1.0.0 /usr/lib/x86_64-linux-gnu/</code></pre>



<h2 class="wp-block-heading">2. Installer cURL 7.82.0</h2>



<p class="wp-block-paragraph">Même chose pour cURL avec qui on a besoin d&rsquo;une vieille version :</p>



<pre class="wp-block-code"><code>mkdir -p /usr/local/curl-7.82.0
wget -O /usr/local/src/curl-7.82.0.tar.gz https://curl.se/download/curl-7.82.0.tar.gz
cd /usr/local/src/
tar -xf curl-7.82.0.tar.gz
rm -f curl-7.82.0.tar.gz
cd curl-7.82.0
./configure --with-openssl=/usr/local/openssl-1.0.2u --prefix=/usr/local/curl-7.82.0
make -j $(nproc)
make install</code></pre>



<p class="wp-block-paragraph">Remarquez l&rsquo;utilisation d&rsquo;OpenSSL 1.0.2u lors de la compilation de cURL.</p>



<h2 class="wp-block-heading">3. Compiler PHP 5.3 sur Debian 11</h2>



<p class="wp-block-paragraph">Déjà, il faut disposer des bonnes dépendances pour compiler PHP 5.3 :</p>



<pre class="wp-block-code"><code>apt-get install -y libfcgi-dev libfcgi0ldbl libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libpq-dev libxslt-dev libltdl-dev libmariadb-dev-compat libmariadb-dev</code></pre>



<p class="wp-block-paragraph">J&rsquo;ignore si les paquetages <strong>libmariadb-dev-compat</strong> et <strong>libmariadb-dev</strong> peuvent être omis ou non, vu que, plus tard dans mes tests, j&rsquo;ai décidé d&rsquo;utiliser <strong><a href="https://dev.mysql.com/downloads/connector/php-mysqlnd/" target="_blank" rel="noreferrer noopener">mysqlnd</a></strong>, le client natif de PHP pour MySQL. Techniquement, en utilisant mysqlnd, ces librairies sont inutiles. <strong>A tester.</strong></p>



<p class="wp-block-paragraph">Maintenant, il s&rsquo;agit de télécharger et décompresser la dernière version de PHP 5.3 :</p>



<pre class="wp-block-code"><code>wget -O /usr/local/src/php-5.3.29.tar.gz https://www.php.net/distributions/php-5.3.29.tar.gz
cd /usr/local/src/
tar -xf php-5.3.29.tar.gz
rm -f php-5.3.29.tar.gz
cd php-5.3.29</code></pre>



<p class="wp-block-paragraph">A présent, il faut configurer la compilation :</p>



<pre class="wp-block-code"><code>./configure --prefix=/usr/local/php-5.3 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl=/usr/local/curl-7.82.0 --with-mcrypt --with-zlib --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl=/usr/local/openssl-1.0.2u --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-fpm</code></pre>



<p class="wp-block-paragraph"><strong>&#8211;prefix</strong> me permet de définir le dossier sur lequel je vais installer PHP 5.3, <strong>&#8211;with-curl</strong> pour indiquer le chemin du cURL que je souhaite utiliser (celui qu&rsquo;on a précédemment compilé), <strong>&#8211;with-openssl</strong> pour indiquer le chemin du OpenSSL que je souhaite utiliser (également celui précédemment compilé).</p>



<p class="wp-block-paragraph">J&rsquo;ai essayé de compiler avec les librairies MySQL fournis par MariaDB 10.5 sur le dépôt officiel de Debian mais je n&rsquo;ai pas réussi, à cause de l&rsquo;absence de certains fichiers headers, qui ont été présent auparavant sur les vieilles version de MySQL. Je ne me suis pas cassé la tête, j&rsquo;ai activé l&rsquo;utilisation du mysqlnd (MySQL Native Driver) de PHP en utilisant les options <strong>&#8211;with-mysql=mysqlnd &#8211;with-mysqli=mysqlnd &#8211;with-pdo-mysql=mysqlnd</strong>.</p>



<p class="wp-block-paragraph">Enfin, on compile et installe :</p>



<pre class="wp-block-code"><code>make -j $(nproc)
make install</code></pre>



<h2 class="wp-block-heading">4. Configurer PHP 5.3</h2>



<p class="wp-block-paragraph">Déjà, initialisons les fichiers de configuration par les fichiers de configuration par défaut proposés :</p>



<pre class="wp-block-code"><code>cp /usr/local/src/php-5.3.29/php.ini-production /usr/local/php-5.3/lib/php.ini
cp /usr/local/php-5.3/etc/php-fpm.conf.default /usr/local/php-5.3/etc/php-fpm.conf</code></pre>



<p class="wp-block-paragraph">Ensuite, préparer le dossier qui va accueillir les pool PHP-FPM :</p>



<pre class="wp-block-code"><code>mkdir -p /usr/local/php-5.3/etc/php-fpm.d</code></pre>



<p class="wp-block-paragraph">Configurer le fichier PID du PHP-FPM :</p>



<pre class="wp-block-code"><code>sed -i "s|;pid\s=\srun/php-fpm.pid|pid = run/php-fpm.pid|g" /usr/local/php-5.3/etc/php-fpm.conf</code></pre>



<p class="wp-block-paragraph">Configurer le socket d&rsquo;écoute et son utilisateur/groupe propriétaire :</p>



<pre class="wp-block-code"><code>sed -i "s|;listen\s=.|listen = /run/php/php5.4-fpm.sock|g" /usr/local/php-5.3/etc/php-fpm.conf
sed -i "s|;listen.owner\s=.|listen.owner = www-data|g" /usr/local/php-5.3/etc/php-fpm.conf
sed -i "s|;listen.group\s=.|listen.group = www-data|g" /usr/local/php-5.3/etc/php-fpm.conf</code></pre>



<p class="wp-block-paragraph">Enfin, il faut inclure les fichiers de configuration dans le dossier que nous avons créé prédécemment :</p>



<pre class="wp-block-code"><code>sed -i "s|;include\s=.|include=/usr/local/php-5.3/etc/php-fpm.d/.conf|g" /usr/local/php-5.3/etc/php-fpm.conf</code></pre>



<p class="wp-block-paragraph">Maintenant, il faut créer le service systemd correspondant à PHP-FPM :</p>



<pre class="wp-block-code"><code>cat &lt; /lib/systemd/system/php5.3-fpm.service
&#91;Unit]
Description=The PHP 5.3 FastCGI Process Manager
After=network.target

&#91;Service]
Type=simple
PIDFile=/usr/local/php-5.3/var/run/php-fpm.pid
ExecStartPre=/bin/mkdir -p /run/php
ExecStart=/usr/local/php-5.3/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php-5.3/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
PermissionsStartOnly=true

&#91;Install]
WantedBy=multi-user.target
EOF</code></pre>



<p class="wp-block-paragraph">Maintenant, il faut l&rsquo;activer au démarrage et le lancer :</p>



<pre class="wp-block-code"><code>systemctl daemon-reload
systemctl enable --now php5.3-fpm.service
systemctl restart php5.3-fpm.service</code></pre>



<p class="wp-block-paragraph">Par pure caprice, je mets un lien symbolique dans /usr/bin afin de faciliter l&rsquo;utilisation de PHP 5.3 en ligne de commande :</p>



<pre class="wp-block-code"><code>ln -s /usr/local/php-5.3/bin/php /usr/bin/php5.3
ln -s /usr/local/php-5.3/bin/php-cgi /usr/bin/php-cgi5.3</code></pre>



<h2 class="wp-block-heading">5. Ajouter PHP 5.3 sur ISPConfig</h2>



<p class="wp-block-paragraph">Si vous utilisez ISPConfig comme panneau de contrôle, alors vous pouvez ajouter cette installation dans ISPConfig grâce à la requête SQL suivante :</p>



<pre class="wp-block-code"><code>mysql --defaults-file=/etc/mysql/debian.cnf dbispconfig -e "INSERT INTO server_php (sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, server_id, client_id, name, php_fastcgi_binary, php_fastcgi_ini_dir, php_fpm_init_script, php_fpm_ini_dir, php_fpm_pool_dir, active) VALUES (1, 1, 'ruid', 'ruid', '', 1, 0, 'PHP 5.3', 'php-cgi5.3', '/usr/local/php-5.3/lib/php.ini', 'php5.3-fpm', '/usr/local/php-5.3/lib/php.ini', '/usr/local/php-5.3/etc/php-fpm.d', 'y')"</code></pre>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">Faire fonctionner PHP 5.3 sur un système d&rsquo;exploitation aussi récent que Debian 11 n&rsquo;est finalement pas si difficile qu&rsquo;on pourrait le croire. Il faut juste mettre à disposition les bonnes versions des dépendances au compilateur. Mais planifiez quand même votre migration vers un PHP plus récent, avant que quelqu&rsquo;un ne trouve une brèche sur votre site.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://manoa.ratefiarison.com/2022/04/12/installer-php-5-3-debian-11-bullseye/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
