diff --git a/.gitignore b/.gitignore index 0a22a3548..4c761a00a 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,8 @@ todo files/* vendor/ data/ +logs/ +xdebug_traces/ phinx.php *.sql diff --git a/docker-compose.yml b/docker-compose.yml index f0b9e4774..88ab2ff29 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,7 +4,7 @@ services: php: image: debian-php2 ports: - - 80:80 + - "80:80" volumes: - ./docker/apache2/000-default.conf:/etc/apache2/sites-available/000-default.conf - ./:/var/www/html @@ -18,14 +18,19 @@ services: - MYSQL_USER=luca - MYSQL_PASSWORD=junghan5 volumes: - - ./docker/mysql/data:/var/lib/mysql + - ./docker/mysql/data:/var/lib/mysql - ./docker/mysql/conf.d:/etc/mysql/conf.d - ./docker/mysql/logs:/var/log/mysql + ports: + - "3306:3306" adminer: image: adminer ports: - - 8080:8080 + - "8080:8080" + volumes: + - ./docker/adminer.php.ini:/etc/php/7.4/cli/conf.d/php.local.ini + volumes: vendor: diff --git a/docker/SqlCollationSwitcher/SqlCollationSwitcher.ps1 b/docker/SqlCollationSwitcher/SqlCollationSwitcher.ps1 new file mode 100644 index 000000000..e83ee8fe6 --- /dev/null +++ b/docker/SqlCollationSwitcher/SqlCollationSwitcher.ps1 @@ -0,0 +1,34 @@ +param( + [string]$compressedFile +) + +# Load .NET assembly for file handling +Add-Type -AssemblyName System.IO.Compression.FileSystem + +# Resolve absolute path of the compressed file +$absoluteCompressedFile = Resolve-Path $compressedFile + +# Generate file names +$workingDir = Split-Path $absoluteCompressedFile +$uncompressedFile = Join-Path $workingDir ($compressedFile -replace '^\.\\', '' -replace '\.sql\.gz$', '_uncompressed.sql') +$modifiedFile = Join-Path $workingDir ($compressedFile -replace '^\.\\', '' -replace '\.sql\.gz$', '_modified.sql') +$recompressedFile = Join-Path $workingDir ($compressedFile -replace '^\.\\', '' -replace '\.gz$', '_modified.sql.gz') + +# Decompress .sql.gz file using .NET Framework +[System.IO.Compression.ZipFile]::ExtractToDirectory($absoluteCompressedFile, $workingDir) + +# Read content of uncompressed file +$content = Get-Content -Path $uncompressedFile -Raw + +# Replace text +$content = $content -replace 'utf8mb4_0900_ai_ci', 'utf8mb4_general_ci' + +# Write modified content to file +Set-Content -Path $modifiedFile -Value $content -Encoding UTF8 + +# Compress .sql file back to .sql.gz using .NET Framework +[System.IO.Compression.ZipFile]::CreateFromDirectory($workingDir, $recompressedFile) + +# Cleanup: Optionally, you can remove the uncompressed and modified files if you don't need them anymore +# Remove-Item $uncompressedFile +# Remove-Item $modifiedFile diff --git a/docker/SqlCollationSwitcher/SqlCollationSwitcher2.ps1 b/docker/SqlCollationSwitcher/SqlCollationSwitcher2.ps1 new file mode 100644 index 000000000..8ee4b7362 --- /dev/null +++ b/docker/SqlCollationSwitcher/SqlCollationSwitcher2.ps1 @@ -0,0 +1,21 @@ +param( + [string]$compressedFile +) + +# Generate file names +$uncompressedFile = $compressedFile -replace '\.sql\.gz$', '_uncompressed.sql' +$modifiedFile = $compressedFile -replace '\.sql\.gz$', '_modified.sql' +$recompressedFile = $compressedFile -replace '\.gz$', '_modified.sql.gz' + +# Decompress .sql.gz file using 7-Zip +& "C:\Program Files\7-Zip\7z.exe" x -so $compressedFile | Set-Content -Path $uncompressedFile -Encoding UTF8 + +# Replace text using PowerShell +(Get-Content $uncompressedFile) -replace "utf8mb4_0900_ai_ci", "utf8mb4_general_ci" | Set-Content $modifiedFile -Encoding UTF8 + +# Compress .sql file back to .sql.gz using 7-Zip +& "C:\Program Files\7-Zip\7z.exe" a -tgzip $recompressedFile $modifiedFile + +# Cleanup: Optionally, you can remove the uncompressed and modified files if you don't need them anymore +#Remove-Item $uncompressedFile +#Remove-Item $modifiedFile diff --git a/docker/adminer.php.ini b/docker/adminer.php.ini new file mode 100644 index 000000000..41b09428e --- /dev/null +++ b/docker/adminer.php.ini @@ -0,0 +1,3 @@ +post_max_size = 516M +upload_max_filesize = 516M +memory_limit = 2G diff --git a/docker/apache2/000-default.conf b/docker/apache2/000-default.conf new file mode 100644 index 000000000..29f0d6673 --- /dev/null +++ b/docker/apache2/000-default.conf @@ -0,0 +1,9 @@ + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/html/public + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + AllowOverride All + +