Difference between revisions of "Apache 2"

(Modules PHP7)
Line 120: Line 120:
 
apt-get install php7.2-bz2  
 
apt-get install php7.2-bz2  
 
apt-get install php7.2-curl  
 
apt-get install php7.2-curl  
apt-get install php7.2-xmlrpc php7.0-xsl  
+
apt-get install php7.2-xmlrpc php7.2-xsl  
 
apt-get install php7.2-soap
 
apt-get install php7.2-soap
 
apt-get install php7.2-json  
 
apt-get install php7.2-json  
 
apt-get install php7.2-mysql  
 
apt-get install php7.2-mysql  
 
apt-get install php7.2-memcached
 
apt-get install php7.2-memcached
apt-get install php7.2-mcrypt mcrypt
 
 
apt-get install php7.2-imap  
 
apt-get install php7.2-imap  
 
apt-get install php7.2-mbstring
 
apt-get install php7.2-mbstring
Line 131: Line 130:
  
 
(i) do NOT install <code>php7.0-snmp</code> because it generates a lot of error, especially on AMAZON EC2.
 
(i) do NOT install <code>php7.0-snmp</code> because it generates a lot of error, especially on AMAZON EC2.
 
  
 
===Utility===
 
===Utility===

Revision as of 20:03, 9 October 2018



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.0/cli/php.ini
vim /etc/php/7.0/fpm/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"

Edit PHP port

vim /etc/php/7.0/fpm/pool.d/www.conf


; Replace (old line)    
listen = /run/php/php7.0-fpm.sock

; New values
listen = 127.0.0.1:9000


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

apt-get install php5-gd php5-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.