- A web server (tested on Apache 2.4)
- mod_rewrite is recommended
- PHP (tested on version 7.0 and 7.1)
- Mandatory packages for Debian-like distributions :
sudo apt-get install libapache2-mod-php7.0 php7.0-cli php7.0-intl php7.0-curl php7.0-opcache php7.0-mysql
- Mandatory packages for RedHat-like distributions :
sudo dnf install php php-cli php-intl php-mbstring php-pdo php-process php-xml php-opcache php-mysqlnd
- date.timezone parameter should be set in your php.ini (both cli and apache module)
- Mandatory packages for Debian-like distributions :
- MySQL >= 5.1
- Composer
Clone MediaArea-Website repository
git clone https://github.com/MediaArea/MediaArea-Website.git
Create a user and a datable, give the user the all rights to this database.
CREATE USER '<USER>'@'<HOST>' IDENTIFIED BY '<PASSWORD>';
GRANT ALL ON `<DB>`.* TO '<USER>'@'<HOST>';
CREATE DATABASE IF NOT EXISTS `<DB>`;
Get dependencies with composer
cd YOUR_PATH/MediaArea-Website/
composer install
You'll get some configuration questions, you can use these fake values if you don't care about the payments.
php bin/console doctrine:migrations:migrate --env=prod --no-interaction
php bin/console assetic:dump --env=prod
Add a vhost to access MediaArea-Website, like this minimal example :
<VirtualHost *:80>
ServerName WWW.YOURWEBSITE.COM
DocumentRoot "YOUR_PATH/MediaArea-Website/web/"
<Directory "YOUR_PATH/MediaArea-Website/web/">
AllowOverride All
Options -Indexes
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order allow,deny
allow from all
</IfModule>
</Directory>
</VirtualHost>
Allow apache user to write in cache and log directory, some methods are explain in Symfony documentation
Translations are stored is XML format here one file per language
Templates are in twig format, they are available here
MediaArea-Website follow PSR1 and PSR2 standard
The source code is analyzed with PHP Mess Detector with the rules in phpmd.xml and PHP-CS-Fixer with PSR1 and PSR2 rules
Remind to clear the cache after a modification :
php bin/console cache:clear --env=prod