Skip to content

Instantly share code, notes, and snippets.

@czombos
Last active December 22, 2021 16:29
Show Gist options
  • Save czombos/de59bcc4e20328e3eb1241efa4231116 to your computer and use it in GitHub Desktop.
Save czombos/de59bcc4e20328e3eb1241efa4231116 to your computer and use it in GitHub Desktop.
Install PHP 5.5.9 on Ubuntu 16.04
#!/bin/bash
### Install PHP 5.5.9 on Ubuntu 16.04
apt-get -y install build-essential libxml2-dev libxslt1-dev
apt-get -y install libfcgi-dev libfcgi0ldbl libjpeg62-dbg libxml2-dev
apt-get -y install libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev
apt-get -y install libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng12-dev
apt-get -y install libfreetype6-dev libkrb5-dev libpq-dev libicu-dev
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
mkdir /opt/php-5.5.9
mkdir /usr/local/src/php5-build
cd /usr/local/src/php5-build
wget http://br1.php.net/get/php-5.5.9.tar.bz2/from/this/mirror -O php-5.5.9.tar.bz2
tar jxf php-5.5.9.tar.bz2
cd php-5.5.9/
./configure --prefix=/opt/php-5.5.9 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring \
--with-libxml-dir=/usr --enable-soap --enable-intl --enable-calendar --with-curl --with-mcrypt --with-zlib \
--with-gd --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 --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr \
--enable-gd-native-ttf --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data \
--with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-gettext --with-xmlrpc --with-xsl \
--with-kerberos --enable-fpm
make
make install
cp /usr/local/src/php5-build/php-5.5.9/php.ini-production /opt/php-5.5.9/lib/php.ini
cp /opt/php-5.5.9/etc/php-fpm.conf.default /opt/php-5.5.9/etc/php-fpm.conf
mkdir /opt/php-5.5.9/etc/php-fpm.d
echo "[Unit]
Description=The PHP 5.5.9 FastCGI Process Manager
After=network.target
[Service]
Type=simple
PIDFile=/opt/php-5.5.9/var/run/php-fpm.pid
ExecStart=/opt/php-5.5.9/sbin/php-fpm --nodaemonize --fpm-config /opt/php-5.5.9/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target" >> /lib/systemd/system/php-5.5.9-fpm.service
echo 'zend_extension=opcache.so' >> /opt/php-5.5.9/lib/php.ini
for i in /opt/php-5.5.9/lib/php.ini;do
sed -i 's|max_execution_time = 30|max_execution_time = 120|' $i
sed -i 's|upload_max_filesize = 2M|upload_max_filesize = 512M|' $i
sed -i 's|post_max_size = 8M|post_max_size = 128M|' $i
sed -i 's|error_reporting = E_ALL & ~E_DEPRECATED|error_reporting = E_ERROR|' $i
sed -i 's|short_open_tag = Off|short_open_tag = On|' $i
sed -i "s|;date.timezone =|date.timezone = 'Europe\/Budapest'|" $i
done
### Change PHP-FPM Config
sed -i "s|;pid = run/php-fpm.pid|pid = run/php-fpm.pid|" /opt/php-5.5.9/etc/php-fpm.conf
sed -i "s|listen = 127.0.0.1:9000|listen = 127.0.0.1:8989|" /opt/php-5.5.9/etc/php-fpm.conf
sed -i "s|;include=etc/fpm.d/\*.conf|include=/opt/php-5.5.9/etc/php-fpm.d/\*.conf|" /opt/php-5.5.9/etc/php-fpm.conf
systemctl enable php-5.5.9-fpm.service
systemctl daemon-reload
systemctl start php-5.5.9-fpm.service
a2enmod proxy_fcgi
systemctl restart apache2
mkdir /var/lib/php5-fpm
echo "[default]
listen = /var/lib/php5-fpm/default.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
user = www-data
group = www-data
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 5
pm.max_requests = 0
chdir = /
env[HOSTNAME] = $HOSTNAME
env[TMP] = /var/www/tmp
env[TMPDIR] = /var/www/tmp
env[TEMP] = /var/www/tmp
env[PATH] = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
php_admin_value[open_basedir] = /var/www/html:/var/www/tmp:/tmp
php_admin_value[session.save_path] = /var/www/tmp
php_admin_value[upload_tmp_dir] = /var/www/tmp" >> /opt/php-5.5.9/etc/php-fpm.d/default.conf
### PHP support for vhost (/etc/apache2/sites-enabled/000-default.conf)
<VirtualHost *:80>
...
<IfModule mod_proxy_fcgi.c>
<Directory /var/www/html>
<FilesMatch "\.php[345]?$">
SetHandler "proxy:unix:/var/lib/php5-fpm/default.sock|fcgi://localhost"
</FilesMatch>
</Directory>
</IfModule>
...
</VirtualHost>
systemctl restart php-5.5.9-fpm
systemctl restart apache2
@MnLujan
Copy link

MnLujan commented Nov 10, 2020

Hi, thanks for your script! But I don't know why it shows me the following error:

./install_php55_ubuntu1604.sh: línea 101: error sintáctico cerca del elemento inesperado `newline'

./install_php55_ubuntu1604.sh: línea 101: `<VirtualHost *:80>'

already perform the necessary steps to remove plus two characters. Do you know what can happen?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment