Apache 2
Contents
Requirements
Before going through this tutorial, I recommend you to setup:
Installation
Apache 2
This will install web server + PHP + Perl + all required libraries.
Apache2 core
apt-get install apache2 apache2-utils ssl-cert
Since Ubuntu 16.04 apache2-mpm-prefork
is not required
Additional libraries
apt-get install libapache2-mod-fcgid libruby
Doc
apt-get install apache2-doc
Perl
apt-get install libapache2-mod-perl2 libapache2-mod-perl2-doc
SNMP
Sometimes you might encounter some SNMP errors on latest Debian based distributions.
In that case you have to install a new package and run it.
apt-get install snmp-mibs-downloader
download-mibs
source: http://www.podciborski.co.uk/miscellaneous/snmp-cannot-find-module/
PHP 7
2016-09: Even though PHP7 has been released in 2015 it is not in the official repositories because it is not 100% backward compatible with PHP5. As it is not in the repositories you must install all applications manually (PHPMyAdmin, etc.)
The following instructions are based on https://www.justegeek.fr/installer-php-7-0-apache2-debian-8/ && http://www.configserverfirewall.com/ubuntu-linux/install-php-7-on-ubuntu-14/
2016-12: PHP 7.0 is available in UBUNTU 16.10 and later
(Ubuntu 16.04) PHP7 repository
Add a new repository:
DEBIAN
echo "deb http://packages.dotdeb.org jessie all" > /etc/apt/sources.list.d/dotdeb.list
wget https://www.dotdeb.org/dotdeb.gpg && apt-key add dotdeb.gpg
apt-get update
UBUNTU SERVER
add-apt-repository ppa:ondrej/php-7.0
apt-get update
Installation
Remove PHP5 packages, if any:
apt-get --purge remove php5*
Install core packages
apt-get install php7.2
apt-get install php7.2-cli
apt install php libapache2-mod-php
# Debug symbols
apt-get install php7.2-dev
Modules PHP7
apt-get install php7.2-cgi
apt-get install php7.2-opcache
apt-get install php7.2-gd
apt-get install php7.2-bz2
apt-get install php7.2-curl
apt-get install php7.2-xmlrpc php7.2-xsl
apt-get install php7.2-soap
apt-get install php7.2-json
apt-get install php7.2-mysql
apt-get install php7.2-memcached
apt-get install php7.2-imap
apt-get install php7.2-mbstring
(i) do NOT install php7.0-snmp
because it generates a lot of error, especially on AMAZON EC2.
Utility
apt-get install php-pear
Configuration
Edit PHP config file:
vim /etc/php/7.2/cli/php.ini
- Let CGI behaves like before: set
cgi.fix_pathinfo=1
- Adjust file upload size
upload_max_filesize = 32M
- Adjust post size
post_max_size = 32M
- Adjust time zone
date.timezone = Europe/Paris
- Save path:
session.save_path = "/tmp"
Check PHP version and configuration
To ensure PHP 7.0 is well-installed just type:
php -v
PHP 5
2016-09: PHP5 is the only version in the OFFICIAL repositories.
Core
apt-get install libapache2-mod-php5 php5 php5-common
Modules PHP5
apt-get install php5-cli php5-cgi
apt-get install php5-curl php5-xmlrpc php5-xsl php5-dev php-pear
apt-get install php5-mysql
apt-get install php5-memcache php5-xcache
apt-get install php5-mhash php-auth php5-mcrypt mcrypt
apt-get install php5-imap
apt-get install php5-snmp
Image Magick
#PHP 5
apt-get install php5-gd php5-imagick imagemagick
#PHP 7
apt-get install php7.2-gd php-imagick imagemagick
Configuration
Edit PHP config file:
vim /etc/php5/apache2/php.ini
Add / uncomment the following lines in Dynamic extensions area (~ line 865)
- extension=mysql.so
- extension=gd.so
!! Note this is NOT required on Ubuntu 14.04 because these modules are enabled by default !!
Firewall
see Firewall INPUT filters#Web server
Restart the firewall
/etc/init.d/firewall restart
Test your installation
Restart the Apache2 server
service apache2 restart
Create a simple PHP script
vim /var/www/phpinfo.php
Put the following:
<?php
phpinfo();
?>
Adjust rights
chown www-data:www-data /var/www/phpinfo.php
chmod 755 /var/www/phpinfo.php
You can now test your installation by going to 'http://localhost/phpinfo.php' or 'http://myServer/phpinfo.php'. You should see the default page.