|
|
@ -11,75 +11,138 @@ |
|
|
|
- Laravel Framework ^6.2 |
|
|
|
|
|
|
|
## :rocket: Installation |
|
|
|
**NOTE** |
|
|
|
|
|
|
|
The installation steps below were tested on an Ubuntu 20.04 LTS machine and should be adapted for each specific environment. |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
### Update package repository |
|
|
|
``` |
|
|
|
sudo apt-get update -y |
|
|
|
``` |
|
|
|
|
|
|
|
### Install Apache2 |
|
|
|
``` |
|
|
|
apt-get -y install \ |
|
|
|
apache2 \ |
|
|
|
apache2-doc \ |
|
|
|
apache2-utils \ |
|
|
|
libapache2-mod-fcgid |
|
|
|
``` |
|
|
|
|
|
|
|
### Install PHP and the required extensions |
|
|
|
``` |
|
|
|
apt-get -y install software-properties-common && \ |
|
|
|
add-apt-repository ppa:ondrej/php -y && \ |
|
|
|
apt-get update -y && \ |
|
|
|
apt-get -y install \ |
|
|
|
php7.4 \ |
|
|
|
php7.4-common \ |
|
|
|
php7.4-fpm \ |
|
|
|
php7.4-mbstring \ |
|
|
|
php7.4-sqlite3 \ |
|
|
|
php7.4-xml |
|
|
|
``` |
|
|
|
|
|
|
|
### Configure Apache2 and PHP |
|
|
|
``` |
|
|
|
a2enmod \ |
|
|
|
rewrite \ |
|
|
|
actions \ |
|
|
|
fcgid \ |
|
|
|
alias \ |
|
|
|
proxy_fcgi \ |
|
|
|
remoteip && \ |
|
|
|
sed -i "/^[[:blank:]]ErrorLog/i\ <FilesMatch \.php\$>" /etc/apache2/sites-available/000-default.conf && \ |
|
|
|
sed -i "/^[[:blank:]]ErrorLog/i\ SetHandler \"proxy:unix:\/var\/run\/php\/php7.4-fpm.sock|fcgi:\/\/localhost\"" /etc/apache2/sites-available/000-default.conf && \ |
|
|
|
sed -i "/^[[[:blank:]]ErrorLog/i\ </\FilesMatch>" /etc/apache2/sites-available/000-default.conf && \ |
|
|
|
bash -c 'echo "RemoteIPHeader X-Forwarded-For" >> /etc/apache2/apache2.conf' && \ |
|
|
|
sed -i "s/LogFormat \"%v:%p %h/LogFormat \"%v:%p %a/g" /etc/apache2/apache2.conf && \ |
|
|
|
sed -i "s/LogFormat \"%h/LogFormat \"%a/g" /etc/apache2/apache2.conf && \ |
|
|
|
chown -R www-data /var/www/html && \ |
|
|
|
chmod -R 755 /var/www/html && \ |
|
|
|
sed -i "s/AllowOverride None/AllowOverride All/g" /etc/apache2/apache2.conf && \ |
|
|
|
systemctl restart apache2 |
|
|
|
``` |
|
|
|
|
|
|
|
### Install Composer |
|
|
|
`apt-get -y install composer` |
|
|
|
|
|
|
|
### Ubuntu Packages |
|
|
|
```bash |
|
|
|
``` |
|
|
|
# LibreOffice |
|
|
|
apt-add-repository ppa:libreoffice/ppa |
|
|
|
apt-get update |
|
|
|
apt-get install libreoffice |
|
|
|
|
|
|
|
apt-get update -y && \ |
|
|
|
apt-add-repository -y ppa:libreoffice/ppa && \ |
|
|
|
apt-get update -y && \ |
|
|
|
apt-get install -y libreoffice |
|
|
|
``` |
|
|
|
``` |
|
|
|
# Python |
|
|
|
apt-get update |
|
|
|
apt-get install software-properties-common |
|
|
|
add-apt-repository ppa:deadsnakes/ppa |
|
|
|
apt-get install supervisor python3.8 python3.8-dev |
|
|
|
|
|
|
|
apt-get update -y && \ |
|
|
|
apt-get install -y software-properties-common && \ |
|
|
|
add-apt-repository -y ppa:deadsnakes/ppa && \ |
|
|
|
apt-get install -y \ |
|
|
|
build-essential \ |
|
|
|
libpoppler-cpp-dev \ |
|
|
|
pkg-config \ |
|
|
|
supervisor \ |
|
|
|
python3 \ |
|
|
|
python3-dev |
|
|
|
``` |
|
|
|
``` |
|
|
|
# Redis |
|
|
|
apt-get install redis-server |
|
|
|
|
|
|
|
apt-get install -y redis-server |
|
|
|
``` |
|
|
|
``` |
|
|
|
# PDF Convertor |
|
|
|
apt-get install libpoppler-cpp-dev |
|
|
|
apt-get install poppler-utils |
|
|
|
|
|
|
|
apt-get install -y \ |
|
|
|
libpoppler-cpp-dev \ |
|
|
|
poppler-utils |
|
|
|
``` |
|
|
|
``` |
|
|
|
# Tesseract OCR |
|
|
|
add-apt-repository ppa:alex-p/tesseract-ocr-devel |
|
|
|
apt-get update |
|
|
|
apt-get install tesseract-ocr |
|
|
|
|
|
|
|
add-apt-repository -y ppa:alex-p/tesseract-ocr-devel && \ |
|
|
|
apt-get update -y && \ |
|
|
|
apt-get install -y tesseract-ocr |
|
|
|
``` |
|
|
|
``` |
|
|
|
# Unpaper |
|
|
|
apt-get install unpaper |
|
|
|
|
|
|
|
apt-get install -y unpaper |
|
|
|
``` |
|
|
|
``` |
|
|
|
# DOCX to PDF Convertor |
|
|
|
apt-get install unoconv |
|
|
|
|
|
|
|
apt-get install -y unoconv |
|
|
|
``` |
|
|
|
``` |
|
|
|
# Pandoc |
|
|
|
apt-get install pandoc |
|
|
|
apt-get install -y pandoc |
|
|
|
``` |
|
|
|
|
|
|
|
### Libraries Packages |
|
|
|
```bash |
|
|
|
``` |
|
|
|
# Pip |
|
|
|
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py |
|
|
|
python get-pip.py |
|
|
|
rm -rf get-pip.py |
|
|
|
pip install --upgrade pip |
|
|
|
|
|
|
|
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \ |
|
|
|
python3 get-pip.py && \ |
|
|
|
rm -rf get-pip.py && \ |
|
|
|
pip3 install --upgrade pip |
|
|
|
``` |
|
|
|
``` |
|
|
|
# Pdftotext |
|
|
|
pip install pdftotext |
|
|
|
|
|
|
|
pip3 install pdftotext |
|
|
|
``` |
|
|
|
``` |
|
|
|
# Supervisor |
|
|
|
pip install supervisor |
|
|
|
systemctl enable supervisor |
|
|
|
mkdir /var/log/amqp |
|
|
|
pip3 install supervisor && \ |
|
|
|
systemctl enable supervisor && \ |
|
|
|
mkdir /var/log/amqp && \ |
|
|
|
mkdir /var/log/queue |
|
|
|
|
|
|
|
# Deskew |
|
|
|
cd DESKEW_INSTALLATION_DIRECTORY |
|
|
|
cd Bin |
|
|
|
./deskew INPUT OUTPUT |
|
|
|
|
|
|
|
# Dewarp |
|
|
|
pip3 install opencv-python |
|
|
|
|
|
|
|
cd DEWARP_INSTALLATION_DIRECTORY |
|
|
|
pip3 install -r requirements.txt |
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
### Queues Supervisor config |
|
|
|
Add a new Supervisor config file in the "/etc/supervisor/conf.d" path like in the example below: |
|
|
|
|
|
|
|
Config file path: /etc/supervisor/conf.d/queue-worker-search-and-displace-ingest-production.conf |
|
|
|
Config file path: **/etc/supervisor/conf.d/queue-worker-search-and-displace-ingest-production.conf** |
|
|
|
|
|
|
|
```bash |
|
|
|
[program:queue-worker-search-and-displace-ingest-production] |
|
|
@ -93,9 +156,9 @@ redirect_stderr=true |
|
|
|
stdout_logfile=/var/log/queue/queue-worker-search-and-displace-ingest-production.log |
|
|
|
``` |
|
|
|
|
|
|
|
The value for the 'command' key should reflect the app path (in the example above the app's path is "/var/www/html/searchanddisplace-ingest"). |
|
|
|
The value for the **command** key should reflect the app path (in the example above the app's path is **/var/www/html/searchanddisplace-ingest**). |
|
|
|
|
|
|
|
The 'stdout_logfile' value is the log file. All parent directories must already exist. |
|
|
|
The **stdout_logfile** value is the log file. All parent directories must already exist. |
|
|
|
|
|
|
|
### Install app |
|
|
|
```bash |
|
|
|