Files

148 lines
5.9 KiB
Markdown
Executable File

---
title: "New page"
language: "en"
previous: "index.html"
---
## Sentinel EPRO
### System Information
PHP Version: 8.0
Node Version: 16.20.2
Laravel Version: 8.X
# Main Development AS400
Development URL: http://164.39.2.139:10011/
Server Path: /www/ADC8/htdocs/epro2/
branch: develop
# Custom Development AS400 ( Malak's Work )
Development URL: http://164.39.2.139:10008/login
Server Path: /www/epro/htdocs/epro2
branch: master
### Git Branch Structure
1. MPBA Server /develop
2. MediaDev /stage
3. MediaUat /qa
4. Production /master
Other possible branch names are:
production
main
staging
*** it is to developers to adopt these as needed.
The Application does not currently use redis nor memcached and has no reliance upon these caching
servers.
### Important files
There are few important files that change from host to host, these are contained in the provision directory
and should be kept upto date with their respective target hosts
the Keepass file will contain urls and credentials for the various hosts systems.
### Local Development
There are several alternatives when it comes to local development of web application
development, One can use vagrant, Laravel Valet or MAMP LAMP etc,one of the best development systems is
docker, this builds containers for the various components and is available
on all major platforms.
The first thing to do on your development machine is to install docker and docker desktop along with support for
docker composer.
#### Image Storage
When running docker the php artisan storage:link does not resolve to the correct path
to overcome this issue do a docker ps and find the container ID
```
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1dd8f887cebb sail-8.1/app "start-container" 19 hours ago Up 15 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:5173->5173/tcp, :::5173->5173/tcp, 8000/tcp epro2-sentinal-1
4d60252a7927 mailhog/mailhog "MailHog" 3 days ago Up 15 minutes 0.0.0.0:1025->1025/tcp, :::1025->1025/tcp, 0.0.0.0:8025->8025/tcp, :::8025->8025/tcp mailhog
```
these execute
```
docker exec -it 1dd8f887cebb /bin/sh
```
navigate to public and remove the storage link, then execute
``` ln -s ../storage/app/public storage ```
this will link the storage folder correctly
and do not run storage link as this wil use the UPLOAD_DIR flag from the .env file that will contain the an incorrect
path
On AS400 hosts this is normally /tmp/quotations and storage link does work properly
#### SSL Self Signed Certificates
to import your local self signed certs into chrome got to settings then setting privacy and security then
Authorities click import and navigate to the .valet directory then CA then import .valet/CA/LaravelValetCASelfSigned.pem
accepting all the options and then restart chrome, you local site is now using SSL.
#### Introduction
Laravel Sail is a light-weight command-line interface for interacting with Laravel's default Docker
development environment. Sail provides a great starting point for building a Laravel application using PHP, MySQL, and Redis without requiring prior Docker experience.
You can also use laravel valet ( see below)
At its heart, Sail is the docker-compose.yml file and the sail script that is stored at the root of your project. The sail script provides a CLI with convenient methods for interacting with the Docker containers defined by the docker-compose.yml file.
Laravel Sail is supported on macOS, Linux, and Windows (via WSL2).
#### Initial Installation
Laravel Sail is automatically installed with all new Laravel applications so you may start using it
immediately. To learn how to create a new Laravel application, please consult Laravel's installation
documentation for your operating system.
During installation, you will be asked to choose which Sail supported services your application will be
interacting with.
To install Laravel sail use ``` composer require --dev laravel\sail```
The documentation is available at https://laravel.com/docs/10.x/sail
#### Docker Notes
Some important docker commands are as follows:
NB when running these commands ensure that you have no running instances for example executing sail down.
``` docker system prune -a```
This command will remove the build containers and any downloaded containers, this is useful for saving disk space
``` docker volume rm $(docker volume ls -q) ```
Used to delete any of the volumes created, this is where the database is stored etc again great for cleaning up
and saving disk space.
``` sail build --no-cache ```
this is perfect for rebuilding your containers
### Linux ODBC Installs
The ODBC drivers for linux can present a challenge and its important to
install IBM Client Access for Linux, this includes the CLI drivers for many linux distributions
The database.php in the config directory is the place to set the
drivers and the DSN one also add a specific config file if needed.
We have set credentials in the env file to suite, typically to aid switching between databases
we recommend using the same db credentials as 192.168.0.81 ( MPBA AS400 Host)
'odbc_local' => [
'driver' => 'odbc',
'odbc_driver' => '/opt/ibm/iaccess/lib64/libcwbodbc.so',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'dsn' => 'Driver={IBM i Access ODBC Driver 64-bit};System=192.168.0.81;AlwaysCalculateResultLength=1;CCSID=1208;NAM=1;DBQ=,'.env('DBQ'),
'options' => [
PDO::ATTR_CASE => PDO::CASE_NATURAL, // PDO::CASE_UPPER PDO::CASE_LOWER PDO::CASE_NATURAL
//PDO::ATTR_AUTOCOMMIT => false
],WARN - #c.j.p.b.d.BladeDebugPathMapper
DB2 on docker is presenting more of a challenge as none of the current
ODBC drivers see to work as expected.
#### Laravel Valet Usage Guidelines