Generated by All in One SEO v4.9.9, this is an llms.txt file, used by LLMs to index the site. # Shkodenko Taras web development and system administration of Linux ## Sitemaps - [XML Sitemap](https://www.shkodenko.com/sitemap.xml): Contains all public & indexable URLs for this website. ## Posts - [Gates vs Policies in Laravel: What’s the Difference and When Should You Use Each?](https://www.shkodenko.com/gates-vs-policies-in-laravel-whats-the-difference-and-when-should-you-use-each/) - Laravel provides two main mechanisms for handling authorization: Gates and Policies. Both determine whether a user is allowed to perform a specific action — but they serve different purposes, scale differently, and fit different architectural needs. In this post, we’ll break down the differences, show real PHP examples, and give practical guidance on when to - [PHP 31-th Anniversary — A Quick Look at the Evolution of the Language Code from Version 7.4 to 8.4](https://www.shkodenko.com/php-31-th-anniversary-a-look-at-the-evolution-of-the-language-code-from-version-7-4-to-8-4/) - 🎉 PHP 31-th Anniversary — A Quick Look at the Evolution of the Language from 7.4 to 8.4 PHP has come a long way — from a simple scripting tool to a powerful modern language with JIT, async capabilities, enums, readonly classes, and property hooks. Today, on June 8, 2026, (31-th PHP programming language birthday) - [How to Create a tar+bzip2 Website Archive While Ignoring VCS Folders (.git and others)](https://www.shkodenko.com/how-to-create-a-tarbzip2-website-archive-while-ignoring-vcs-folders-git-and-others/) - 🗄️ How to Create a tar+bzip2 Website Archive While Ignoring VCS Folders (.git and others) When backing up web projects, you often need to create a compact archive without including version‑control system directories such as .git, .svn, .hg, or .bzr. These folders can take up hundreds of megabytes and are completely unnecessary in a production - [🐳 Basic Docker Workflow Using PHP + MySQL + Laravel](https://www.shkodenko.com/basic-docker-workflow-using-php-mysql-laravel/) - Docker has become a standard tool for local development: it isolates environments, makes projects reproducible, and eliminates the classic “works on my machine” problem. In this post, I’ll walk you through a basic Docker workflow using a simple PHP + MySQL + Laravel stack. 🎯 What We Want to Achieve A PHP container (e.g., PHP - [🎉 Happy Birthday, Linus Torvalds!](https://www.shkodenko.com/🎉-happy-birthday-linus-torvalds/) - 🎉 Happy Birthday, Linus Torvalds! Today we celebrate the birthday of a person whose ideas quietly reshaped the digital world. Linus Torvalds didn’t just write code — he changed how software is built, shared, and trusted. This short post is both a birthday greeting and a compact journey through the history of Linux and Git - [Role-Based Access Control (RBAC) in Modern Laravel](https://www.shkodenko.com/role-based-access-control-rbac-in-modern-laravel/) - A Practical Guide for PHP & Back-End Developers Modern Laravel applications almost always serve multiple user roles: administrators, managers, editors, customers, API clients, and more. Hard-coding access checks quickly turns into a maintenance nightmare. That’s why Role-Based Access Control (RBAC) remains one of the most effective and scalable authorization models — especially in Laravel-based backends. - [New Digital Product: Creational Design Patterns (GoF) for Modern PHP Developers](https://www.shkodenko.com/new-digital-product-creational-design-patterns-gof-for-modern-php-developers/) - Over the years of working with PHP — from small scripts to large production systems — I’ve noticed one recurring issue: object creation logic tends to get messy very quickly. At first, everything looks simple: $user = new User(); But as applications grow, this turns into: too many new operators scattered across the codebase tight - [Composer: The PHP Dependency Management Tool You Need to Master](https://www.shkodenko.com/composer-the-php-dependency-management-tool-you-need-to-master/) - When you are working on modern PHP applications, any modern MVC frameworks, one tool stands at the core of nearly every project: Composer. Whether you’re starting a new Laravel project, integrating Symfony components, or pulling in a package for logging, Composer makes dependency management simple and reliable. In this article, we’ll explore what Composer is, - [Happy 34th Birthday, Linux](https://www.shkodenko.com/happy-34th-birthday-linux/) - Happy 34th Birthday, OS Linux! 🎂🐧 On August 25, 1991, a young Finnish student named Linus Torvalds made a modest announcement on the Usenet group comp.os.minix. He wrote that he was working on “just a hobby, nothing big and professional” — a free operating system kernel for 386/486 AT clones. That “hobby” would soon grow - [Laravel Best Practices: Repository Pattern for Clean and Scalable Code](https://www.shkodenko.com/laravel-best-practices-repository-pattern-for-clean-and-scalable-code/) - Imagine situation: when you start building applications with Laravel, it’s very tempting to place all logic directly in controllers. After all, Eloquent models make querying the database straightforward, so why not just use them everywhere? But as your application grows, you’ll notice that this approach quickly leads to fat controllers, tangled logic, and difficulties with - [How to Find Large Files on Ubuntu Linux (and Clean Up Disk Space)](https://www.shkodenko.com/how-to-find-large-files-on-ubuntu-linux-and-clean-up-disk-space/) - 🧹 How to Find Large Files on Ubuntu 18.04 (and Clean Up Disk Space) If you’ve ever run into the dreaded “No space left on device” error on your Linux system, you’re not alone. Over time, log files, package caches, and forgotten downloads can fill up your disk. In this guide, we’ll walk through several - [🔍 How to Verify Inserted Rows Using a CTE in SQL (WITH expected AS Pattern)](https://www.shkodenko.com/🔍-how-to-verify-inserted-rows-using-a-cte-in-sql-with-expected-as-pattern/) - 🔍 How to Verify Inserted Rows Using a CTE in SQL ( Pattern) Whether you're writing seeders, migration scripts, or integration tests — verifying that specific records were inserted into a table is a common and critical task. Let me show you a clean and portable SQL technique using a Common Table Expression (CTE) to - [How to create a simple IP address tracker with geolocation in Symfony 6+](https://www.shkodenko.com/how-to-create-a-simple-ip-address-tracker-with-geolocation-in-symfony-6/) - Do you want to know who visits your website, where they're from, and when? In this post, I’ll show you how to build a small Symfony project that: Detects the visitor’s IP address Retrieves geolocation data based on the IP Stores this data in a database Displays the IP, country, and city on the homepage - [How to Clean Git History from Secrets Using BFG Repo-Cleaner (Ubuntu Linux-Friendly Guide)](https://www.shkodenko.com/how-to-clean-git-history-from-secrets-using-bfg-repo-cleaner-ubuntu-friendly-guide/) - 🔒 How to Clean Git History from Secrets Using BFG Repo-Cleaner (Ubuntu-Friendly Guide) Have you ever accidentally committed secrets like database credentials or API keys to your Git repository? Don’t panic — you can clean your repo history and protect your sensitive data. In this post, I’ll walk you through using BFG Repo-Cleaner to scrub - [How to Open Unverified Apps on macOS: MarkText Example](https://www.shkodenko.com/how-to-open-unverified-apps-on-macos-marktext-example/) - 🚀 How to Open Unverified Apps on macOS: MarkText Example If you’ve ever tried launching an app like MarkText on macOS and saw the warning: “The application can’t be opened because the developer cannot be verified” — don’t worry. You’re not alone, and yes, there’s a safe way around it. In this article, I’ll show - [What is Docker and Why Developers Should Care](https://www.shkodenko.com/what-is-docker-and-why-developers-should-care/) - Docker is a tool that allows you to run your projects inside special isolated environments called containers. Imagine packing your app together with all its dependencies — PHP version, MySQL, Redis, configs — and giving it to another developer or running it on a server without the classic “but it worked on my machine!”. A - [Service Classes in Laravel: Clean Architecture and Scalability](https://www.shkodenko.com/service-classes-in-laravel-clean-architecture-and-scalability/) - ✍️ Introduction In Laravel, it's convenient to put business logic into controllers or models. But what should you do when the logic starts to grow? The right solution is to move it into dedicated service classes. This approach follows the Single Responsibility Principle (SRP) and helps make your code scalable and easy to test. 🧱 - [🧭 What is Symfony? And How Is It Different from Laravel?](https://www.shkodenko.com/🧭-what-is-symfony-and-how-is-it-different-from-laravel/) - 🧭 Symfony is a powerful open-source PHP framework focused on stability, flexibility, and reusable components. It’s widely used to build complex, scalable web applications, enterprise systems, or RESTful APIs. At its core, Symfony is a component-based architecture — and many of its components are actually used by other frameworks, including... Laravel. Yes, you read that - [Laravel Facades Uncovered: Convenient, but Always Safe?](https://www.shkodenko.com/laravel-facades-uncovered-convenient-but-always-safe/) - Facades are a common and convenient practice in Laravel development. No need to import services manually — just call Cache::get() and go. But do you really know what’s happening behind the scenes? In this post, we’ll break it down: 1. How Facades Work Under the Hood A facade is just a static wrapper around a - [🎧 How to Convert and Combine Multiple iPhone .m4a Audio Files into One .mp3 on Linux using ffmpeg](https://www.shkodenko.com/🎧-how-to-convert-and-combine-multiple-iphone-m4a-audio-files-into-one-mp3-on-linux-using-ffmpeg/) - Have you ever recorded several audio files on your iPhone, only to realize you need them in .mp3 format for easier sharing, editing, or publishing? Here’s a simple and effective way to convert and merge multiple .m4a files into a single .mp3 file using ffmpeg on a Linux system. 🛠️ Step 1: Convert .m4a Files - [How to Merge and Extract PDF Pages on Linux Like a Pro](https://www.shkodenko.com/how-to-merge-and-extract-pdf-pages-on-linux-like-a-pro/) - 📄 How to Merge and Extract PDF Pages on Linux Like a Pro Working with PDF files on Linux is easier than you think. Whether you need to merge multiple PDFs into a single file or extract specific pages (even in reverse order!), Linux has powerful and free tools to get the job done. Here’s - [How to Remove Lines Starting with a Pattern from a File in Linux](https://www.shkodenko.com/how-to-remove-lines-starting-with-a-pattern-from-a-file-in-linux/) - How to Remove Lines Starting with a Pattern from a File in Linux Sometimes, when working with log files, backups, or system-generated data, you may want to delete lines that begin with a specific pattern. Luckily, Linux provides several quick and powerful ways to do this from the command line. In this article, we'll explore - [How to Upload a Local Bare Git Repository to GitHub and Make It Public](https://www.shkodenko.com/how-to-upload-a-local-bare-git-repository-to-github-and-make-it-public/) - 🚀 How to Upload a Local Bare Git Repository to GitHub and Make It Public Sometimes, during your development workflow, you might have a bare Git repository stored locally — for example, as a central repository for multiple team members or part of a custom deployment process. But eventually, you might want to push this - [How to Integrate GitLab Cloud with Slack for Real-Time Notifications](https://www.shkodenko.com/how-to-integrate-gitlab-cloud-with-slack-for-real-time-notifications/) - Integrating GitLab Cloud with Slack can significantly enhance your development workflow by providing real-time notifications about commits, merge requests, pipeline statuses, and other repository activities. In this guide, we'll walk through the process of setting up GitLab Cloud to send messages to Slack whenever important events occur. Why Integrate GitLab with Slack? With GitLab-Slack integration, - [Measuring HTTP Request Time with cURL in Linux](https://www.shkodenko.com/measuring-http-request-time-with-curl-in-linux/) - Measuring HTTP Request Time with cURL in Linux When testing web application performance, one of the most useful tools at your disposal is curl. This command-line tool allows developers to measure request times, analyze response latency, and debug performance bottlenecks efficiently. In this post, we'll explore how you can use curl to measure HTTP request - [Ignoring Local Changes to Files in Git](https://www.shkodenko.com/ignoring-local-changes-to-files-in-git/) - Ignoring Local Changes to Files in Git: The Power of --assume-unchanged Introduction As developers, we often work on projects where certain files, like composer.lock, are frequently updated locally but should not be committed to the repository. However, adding these files to .gitignore might not be the best approach, especially if they need to be tracked - [Analyzing Apache Benchmark (ab) Test Results Using Python and Tesseract OCR](https://www.shkodenko.com/analyzing-apache-benchmark-ab-test-results-using-python-and-tesseract-ocr/) - Introduction Performance testing is an essential part of web application development. Apache Benchmark (ab) is a popular tool for load testing APIs and web applications. However, when working with multiple test results in the form of screenshots, analyzing them manually can be cumbersome. In this article, we will demonstrate how to extract performance data from - [How to Count the Number of Files in a Folder Efficiently (Even for Large Directories)](https://www.shkodenko.com/how-to-count-the-number-of-files-in-a-folder-efficiently-even-for-large-directories/) - When working with folders that contain a huge number of files, counting them efficiently becomes crucial, especially in high-performance or automated environments. In this guide, we'll explore different ways to count files in a directory using Linux command-line tools and Perl scripting. 📌 Method 1: Using ls and wc (Fast and Simple) If you're dealing - [Ultimate Guide to Installing Software on Ubuntu 24.04](https://www.shkodenko.com/ultimate-guide-to-installing-software-on-ubuntu-24-04/) - Ubuntu 24.04 is a powerful and user-friendly Linux distribution, but new users often wonder how to install software efficiently. In this guide, we'll explore multiple ways to install applications, from traditional package managers to direct .deb installations. 1. Installing Software via APT (Recommended) APT (Advanced Package Tool) is the default package manager in Ubuntu. It's - [How to Get PostgreSQL Version Using SQL Query](https://www.shkodenko.com/how-to-get-postgresql-version-using-sql-query/) - When working with PostgreSQL, it’s often necessary to check the version of the database server to ensure compatibility with features, extensions, and security updates. Here’s a quick guide on how to retrieve the PostgreSQL version using SQL queries. Using version() Function The simplest way to get detailed PostgreSQL version information is by running the following - [Changing Domain from rndpwd.info to rndpwd.shkodenko.com](https://www.shkodenko.com/changing-domain-from-rndpwd-info-to-rndpwd-shkodenko-com/) - We are excited to announce that our service, previously accessible at https://rndpwd.info, has now moved to a new domain: https://rndpwd.shkodenko.com. Why the Change? This transition allows us to integrate our service under a unified domain, making it easier to manage and ensuring better branding consistency. All functionalities remain the same, and we are committed to - [Extracting and Using an RSA Public Key for JWT Verification in Laravel](https://www.shkodenko.com/extracting-and-using-an-rsa-public-key-for-jwt-verification-in-laravel/) - Introduction When working with JWT authentication in Laravel, you may encounter the error: openssl_verify(): Supplied key param cannot be coerced into a public key This typically happens when verifying an RS256-signed JWT with an incorrect or improperly formatted public key. In this guide, we'll walk through the steps to extract and use the correct RSA - [Linux find: Find Files in a Folder That Changed Today](https://www.shkodenko.com/linux-find-find-files-in-a-folder-that-changed-today/) - Linux find: Find Files in a Folder That Changed Today The find command in Linux is a powerful tool for searching files and directories based on various criteria, including modification time. If you need to find files in a specific folder that were modified today, you can use the -mtime option. Basic Command To list - [Analyze Laravel code for upgrading PostgreSQL database version](https://www.shkodenko.com/analyze-laravel-code-for-upgrading-postgresql-database-version/) - Checking PHP Code and Laravel Migrations for PostgreSQL database version upgrade from 14 to 17 Compatibility Upgrading your PostgreSQL database from version 14 to 17 is an excellent way to take advantage of new features and performance improvements. However, ensuring that your Laravel application’s PHP code and migrations are compatible with both versions is critical - [Linux tail Command: How to Display and Track the Last Part of a File](https://www.shkodenko.com/linux-tail-command-how-to-display-and-track-the-last-part-of-a-file/) - Linux tail Command: How to Display and Track the Last Part of a File The tail command in Linux is a powerful utility that allows users to display the last part (or "tail") of a file. It's especially useful for monitoring log files or examining large files where only the most recent data is of interest. In this article, - [Filtering Requests by Status Code 498 in Graylog](https://www.shkodenko.com/filtering-requests-by-status-code-498-in-graylog/) - Filtering Requests by Status Code 498 in Graylog Graylog is a powerful tool for log management and analysis, widely used by IT professionals to monitor and troubleshoot their systems. One common task is filtering logs by specific HTTP status codes to identify and address issues. In this post, we'll walk you through the steps to - [How to Undo a Commit, Pull Remote Changes, and Reapply Your Work in Git](https://www.shkodenko.com/how-to-undo-a-commit-pull-remote-changes-and-reapply-your-work-in-git/) - How to Undo a Commit, Pull Remote Changes, and Reapply Your Work in Git When working with Git, it's common to encounter situations where you've made a local commit, but later realize you need to pull changes from the remote repository before reapplying your work. Here's a step-by-step guide to achieve this smoothly. Step 1: - [Linux Screen Command: Manage Multiple Terminal Sessions Efficiently](https://www.shkodenko.com/linux-screen-command-manage-multiple-terminal-sessions-efficiently/) - Linux Screen Command: Manage Multiple Terminal Sessions Efficiently If you frequently work on Linux systems and need to manage multiple terminal sessions within a single window, the Linux Screen utility is an indispensable tool. In this guide, you'll learn how to install and use Screen on popular Linux distributions like Ubuntu, Fedora, CentOS, and more. - [How to Compare Two Arrays from Files in PHP](https://www.shkodenko.com/how-to-compare-two-arrays-from-files-in-php/) - How to Compare Two Arrays from Files in PHP Comparing arrays is a common task when dealing with datasets in PHP. Suppose you have two files containing lists of text values, and you want to find: Values present in both files. Values that exist only in the second file. In this post, I’ll guide you - [Linux find Command: How to Search Files by Name](https://www.shkodenko.com/linux-find-command-how-to-search-files-by-name/) - Linux find Command: How to Search Files by Name When working in Linux, the find command is an incredibly powerful tool for locating files and directories. One common use case is searching for files by name, especially when you need to locate specific file types like .php, .js, and .css—regardless of case sensitivity. In - [How to Change Process Priority in Linux Using the nice Command](https://www.shkodenko.com/how-to-change-process-priority-in-linux-using-the-nice-command/) - How to Change Process Priority in Linux Using the nice Command When working with Linux, there are times you may want to adjust the priority of a process to optimize your system's performance. For this, the built-in nice utility is your go-to tool. The nice command allows you to start a process with a - [How to Resolve "fatal: refusing to merge unrelated histories" in Git and Transition to Remote Repositories](https://www.shkodenko.com/how-to-resolve-fatal-refusing-to-merge-unrelated-histories-in-git-and-transition-to-remote-repositories/) - Introduction Have you encountered the following frustrating scenario when working with Git? test-app$ git status On branch master Your branch and 'origin/master' have diverged, and have 1 and 2 different commits each, respectively. (use "git pull" to merge the remote branch into yours) nothing to commit, working tree clean test-app$ git pull fatal: refusing to - [How to Add a Favicon to Your WordPress Theme](https://www.shkodenko.com/how-to-add-a-favicon-to-your-wordpress-theme/) - How to Add a Favicon to Your WordPress Theme Favicons are small icons displayed in browser tabs, bookmarks, and other areas to represent your website visually. Adding a favicon to your WordPress theme can help enhance branding and user experience. This guide will walk you through creating a favicon and adding it to your theme - [Best practices for managing .env files for multiple Laravel projects and multiple environments](https://www.shkodenko.com/best-practices-for-managing-env-files-for-multiple-laravel-projects-and-multiple-environments/) - Managing .env files across multiple Laravel projects and environments requires a well-structured approach to ensure security, consistency, and ease of use. Here are some best practices: 1. Environment-Specific Configuration Files Use environment-specific .env files for each environment (development, staging, production): .env.development .env.staging .env.production In your deployment pipeline or server configuration, ensure the correct .env file - [Happy 33-th birthday Linux OS!](https://www.shkodenko.com/happy-33-th-birthday-linux-os/) - Celebrating Linux: the Operating System That Changed the World Every year on August 25th, the tech community celebrates a significant milestone: the birthday of the Linux operating system. It's hard to believe that what started as a personal project by a young Finnish student named Linus Torvalds has evolved into one of the most influential - [How to Extract MP3 Audio from MP4 Video Using FFmpeg: A Step-by-Step Guide](https://www.shkodenko.com/how-to-extract-mp3-audio-from-mp4-video-using-ffmpeg-a-step-by-step-guide/) - How to Extract MP3 Audio from MP4 Video Using FFmpeg: A Step-by-Step Guide If you've ever needed to extract audio from a video file, you're in the right place. Whether you're a content creator, podcast editor, or simply someone looking to convert video files to audio, FFmpeg is the perfect tool for the job. In - [Understanding Feature Flags in Laravel: A Comprehensive Guide](https://www.shkodenko.com/understanding-feature-flags-in-laravel-a-comprehensive-guide/) - Feature flags, also known as feature toggles, are a powerful development pattern that allows developers to enable or disable features in a system without deploying new code. This approach is particularly useful in modern software development, where continuous integration and continuous deployment (CI/CD) are crucial. What Are Feature Flags? Feature flags are conditional statements within - [How to Fix ERR_CONNECTION_CLOSED and ERR_CONNECTION_RESET Errors: A Comprehensive Guide](https://www.shkodenko.com/how-to-fix-err_connection_closed-and-err_connection_reset-errors-a-comprehensive-guide/) - Introduction Encountering network errors like `ERR_CONNECTION_CLOSED` and `ERR_CONNECTION_RESET` can be frustrating, especially when you're trying to browse the web or access a critical application. These errors typically indicate issues with the connection between your device and a server, but understanding what they mean and how to fix them can help you quickly resolve the problem. - [Celebrating Achievement: Lean White Belt and Lean Yellow Belt Certifications](https://www.shkodenko.com/celebrating-achievement-lean-white-belt-and-lean-yellow-belt-certifications/) - I'm excited to share a significant milestone in my professional journey. Recently, I completed two Lean certification courses with Nova company, achieving both the Lean White Belt and Lean Yellow Belt certifications. Lean White Belt Certification The Lean White Belt certification is the first step in understanding Lean principles. This foundational course provided me with - [Resolving Compatibility Issues When Upgrading Laravel from 10.x to 11.x with Composer Libraries](https://www.shkodenko.com/resolving-compatibility-issues-when-upgrading-laravel-from-10-x-to-11-x-with-composer-libraries/) - Upgrading Laravel from version 10.x to 11.x can be a smooth process, but some Composer libraries may cause compatibility issues. In this article, we'll address common problems with two specific packages and provide a step-by-step guide to ensure a successful upgrade. Problematic Libraries During the upgrade, I encountered issues with the following Composer libraries: "hedii/laravel-gelf-logger": - [Why Use declare(strict_types=1) in PHP?](https://www.shkodenko.com/why-use-declarestrict_types1-in-php/) - Why Use `declare(strict_types=1) in PHP? In PHP, the `declare(strict_types=1);` directive is used to enforce strict type-checking for the file in which it is declared. By default, PHP uses dynamic typing, which means that it attempts to automatically convert types when they don't match the expected type. This can sometimes lead to unexpected behavior and bugs - [How to fix LF will be replaced by CRLF the next time Git touches it on Windows](https://www.shkodenko.com/how-to-fix-lf-will-be-replaced-by-crlf-the-next-time-git-touches-it-on-windows/) - To disable Git warnings about line endings on Windows, you can configure Git to handle line endings according to your preference. Here are a few options: Option 1: Configure Git to Use LF Line Endings You can set Git to use LF line endings by running the following command: This setting ensures that Git will - [Converting WebP Images to PNG on Linux: A Comprehensive Guide](https://www.shkodenko.com/converting-webp-images-to-png-on-linux-a-comprehensive-guide/) - If you're working with images on Linux, you might often encounter WebP format, which is known for its efficient compression. However, there might be instances where you need to convert these WebP images to more widely supported formats like PNG. In this guide, we'll explore how to convert WebP images to PNG using various tools - [Streamline Your PHP Laravel Development with Code Sniffer on Ubuntu](https://www.shkodenko.com/streamline-your-php-laravel-development-with-code-sniffer-on-ubuntu/) - Introduction: In the dynamic world of web development, maintaining code quality and consistency can be a challenge, especially as projects grow and teams expand. For PHP Laravel developers working on Ubuntu, integrating a tool like PHP Code Sniffer can be a game-changer. This tutorial will guide you through the steps to set up PHP Code - [Exploring the Magic of CSV File Handling in PHP: From Reading to Saving Data](https://www.shkodenko.com/exploring-the-magic-of-csv-file-handling-in-php-from-reading-to-saving-data/) - In this blog post, we will delve into how the PHP programming language can be effectively utilized to manage data in CSV format. PHP provides straightforward methods for reading and writing CSV files, a crucial skill for developers who handle large volumes of data. Reading a CSV File The first step in managing a CSV - [Streamline Your Development with Laravel Seeders](https://www.shkodenko.com/streamline-your-development-with-laravel-seeders/) - Laravel's powerful seeding capability offers a robust way to populate your databases with necessary initial data for testing and development purposes. In this post, we'll delve into how you can manually run a seeder to fill a specific database table with data using Laravel's artisan command line tool. What is a Seeder in Laravel? In - [Monitoring Processes in Linux with the ps Command: checking web server Apache processes information](https://www.shkodenko.com/monitoring-processes-in-linux-with-the-ps-command-checking-web-server-apache-processes-information/) - In the vast toolbox of Linux system monitoring utilities, the `ps` command stands out for its direct approach to tracking what's happening on your server or desktop. Whether you're a system administrator, a developer, or simply a curious user, knowing how to leverage `ps` can provide you with insights into the processes running under the - [How to Find and Kill Processes in Linux: A Practical Guide](https://www.shkodenko.com/how-to-find-and-kill-processes-in-linux-a-practical-guide/) - Managing processes efficiently is a fundamental skill for any Linux user. There are instances, such as when an application becomes unresponsive or is consuming too much memory, where terminating processes becomes necessary. This post builds on the basics covered in a previous article, "Monitoring Processes in Linux with the ps Command: checking web server Apache - [How to fix pass store is uninitialized on Ubuntu Linux in Docker setup](https://www.shkodenko.com/how-to-fix-pass-store-is-uninitialized-on-ubuntu-linux-in-docker-setup/) - The error message you're seeing, "pass store is uninitialized", indicates that the `pass` utility, which Docker uses for secure password storage, hasn't been set up yet. To initialize `pass` and resolve this error, follow these steps: **Install Pass**: If you haven't already, ensure that the `pass` password manager is installed on your system. You can - [Secure Your Web Development Workflow: Generating and Using PGP Keys in phpStorm IDE on Linux](https://www.shkodenko.com/secure-your-web-development-workflow-generating-and-using-pgp-keys-in-phpstorm-ide-on-linux/) - In today's digital age, security is paramount, especially when it comes to web development. As developers, we handle sensitive information regularly, from user credentials to proprietary code. One way to enhance the security of your development workflow is by using Pretty Good Privacy (PGP) keys. In this guide, we'll walk through the process of generating - [Counting the Number of Files in a Folder with Efficiency](https://www.shkodenko.com/counting-the-number-of-files-in-a-folder-with-efficiency/) - Managing folders with a massive number of files can be a daunting task, especially when you need to quickly assess how many files are contained within. Thankfully, there are efficient ways to tackle this challenge using command-line tools. Using `ls` and `wc` One approach is to leverage the combination of `ls` and `wc` commands. By - [Linux IPTables: limit the number of HTTP requests from one IP per minute (for CentOs, RHEL and Ubuntu)](https://www.shkodenko.com/linux-iptables-limit-the-number-of-http-requests-from-one-ip-per-minute-for-centos-rhel-and-ubuntu/) - Protecting Your Web Server: Implementing IP-based Request Limiting with IPTables on Linux In the face of relentless cyber attacks, safeguarding your web server becomes paramount. Recently, our server encountered a barrage of requests from a single IP address, causing severe strain on our resources. To mitigate such threats, we employed IPTables, the powerful firewall utility - [How to Identify IP Addresses Sending Many Requests in Ubuntu Linux](https://www.shkodenko.com/how-to-identify-ip-addresses-sending-many-requests-in-ubuntu-linux/) - In today's interconnected world, network security is paramount. One aspect of network security involves identifying and monitoring IP addresses that may be sending an unusually high volume of requests to your system. In Ubuntu Linux, several tools can help you accomplish this task effectively. Using netstat One of the simplest ways to identify IP addresses - [Linux OpenSSL generate self-signed SSL certificate and Apache web server configuration](https://www.shkodenko.com/linux-openssl-generate-self-signed-ssl-certificate-and-apache-web-server-configuration/) - In a previous post, we covered the creation of a CSR and key for obtaining an SSL certificate. Today, we'll focus on generating a self-signed SSL certificate, a useful step in development and testing environments. Follow along to secure your website with HTTPS. Generating the SSL Certificate To create a self-signed SSL certificate, execute the - [Linux chkconfig and service: managing autostart and service state](https://www.shkodenko.com/linux-chkconfig-and-service-managing-autostart-and-service-state/) - In Red Hat-like Linux systems such as Red Hat Enterprise Linux, CentOS, Fedora (up to version 15), and similar distributions, service management often involves the use of the /sbin/chkconfig command. To view the status of the NFS (Network File System) service, you can use the following command: This command displays a list indicating whether the - [Linux useradd passwd: create accounts with access to a specific folder](https://www.shkodenko.com/linux-useradd-passwd-create-accounts-with-access-to-a-specific-folder/) - How to Create an Additional FTP Account with Access to a Specific Subfolder Sometimes, managing access to specific directories on your server is essential for security and organization purposes. One common scenario is creating an additional FTP account with access limited to a particular subfolder. In this guide, we'll walk through the steps to achieve - [Trimming the Last Character from a String in Bash](https://www.shkodenko.com/trimming-the-last-character-from-a-string-in-bash/) - Trimming the Last Character from a String in Bash. In the world of shell scripting, manipulating string variables is a common task. One interesting challenge you might encounter is removing the last character from a string. This task might seem simple at first glance, but it showcases the flexibility and power of Bash scripting. Let's - [Mastering Program Search in Linux: A Guide to Using whereis, find, and locate Commands](https://www.shkodenko.com/mastering-program-search-in-linux-a-guide-to-using-whereis-find-and-locate-commands/) - To locate a specific program in your system, the `whereis` command is often the most efficient choice. For instance, if you're searching for the 'ls' program, simply enter: This command will display results such as: Alternatively, you have other commands at your disposal, although they might be slower. One such option is the `find` command, - [Enhancing Laravel Controllers to Output Custom JSON Structures](https://www.shkodenko.com/enhancing-laravel-controllers-to-output-custom-json-structures/) - Introduction In the world of web development, especially when working with APIs, customizing the output of your controllers can significantly improve the readability and usability of your data. In this post, we'll explore how to modify a Laravel controller to output a specific JSON format. This technique is particularly useful when dealing with front-end applications - [How to Implement Automatic Logout in Linux Bash Session After 5 Minutes of Inactivity](https://www.shkodenko.com/how-to-implement-automatic-logout-in-linux-bash-session-after-5-minutes-of-inactivity/) - If you're looking to enhance the security of your Linux system, setting up an automatic logout for the bash session after a period of inactivity is a great step. Here's how to implement a 5-minute timeout policy: Set the Timeout Policy: Open the `~/.bash_profile` or `/etc/profile` file in your preferred text editor. Add the following - [Efficiently Adding Multiple Lines to Files in Linux](https://www.shkodenko.com/efficiently-adding-multiple-lines-to-files-in-linux/) - In the world of Linux, managing files is a daily task for many users, especially those in the field of web development. Today, we'll explore efficient methods to add multiple lines to a file, catering to different scenarios, including when elevated privileges are required. When Elevated Privileges are Needed Often, you might need to write - [Resolving Laravel .env File Issues: Handling Special Characters in Database Passwords](https://www.shkodenko.com/resolving-laravel-env-file-issues-handling-special-characters-in-database-passwords/) - Dealing with configuration files in web development can sometimes be tricky, especially when special characters are involved. A common issue faced by Laravel developers is handling the `.env` file, particularly when database passwords include special characters like the hash symbol (`#`). In Laravel, the `#` is interpreted as the beginning of a comment, which can - [Managing Multiple PostgreSQL Versions on Ubuntu Linux: A Guide to Using pg_dump with Different Server Versions](https://www.shkodenko.com/managing-multiple-postgresql-versions-on-ubuntu-linux-a-guide-to-using-pg_dump-with-different-server-versions/) - Are you struggling with a version mismatch between your PostgreSQL server and the `pg_dump` utility on Ubuntu? You're not alone. Many developers face this common issue, particularly when working with multiple projects that require different PostgreSQL versions. In this post, we'll guide you through the steps to install and manage multiple versions of `pg_dump` on - [Linux ionice: set I/O priority for command](https://www.shkodenko.com/linux-ionice-set-i-o-priority-for-command/) - In Linux, when operating with root administrator privileges, you have the ability to adjust the I/O priority of processes. This is particularly useful when you need to manage system resources more effectively. The tool for this task is the `ionice` command. Here's how you can utilize `ionice`: Running a Command with Highest I/O Priority: To - [Linux find: search files by name](https://www.shkodenko.com/linux-find-search-files-by-name/) - Efficiently Finding and Archiving Specific File Types in Linux In the world of Linux, the `find` command is an incredibly powerful tool, especially when you need to locate files of different types by their names. Let's dive into a common scenario: You need to find all `*.php`, `*.js`, and `*.css` files in a folder for - [Converting Space-Separated Strings to Arrays in Bash Scripts](https://www.shkodenko.com/converting-space-separated-strings-to-arrays-in-bash-scripts/) - Introduction: In bash scripting, there are times when you need to process a string of space-separated values. A common scenario is when a script receives a string as an argument and needs to handle each word separately. Let's explore how to convert a space-separated string into an array. The Solution: Here's a simple bash script - [How to Extract MP3 Audio from AVI or WebM Videos Using FFmpeg](https://www.shkodenko.com/how-to-extract-mp3-audio-from-avi-or-webm-videos-using-ffmpeg/) - Introduction: What You Will Need: a computer with FFmpeg installed. I'm providing you with a link with instructions on how to install FFmpeg on Linux, Windows or MacOS just in case if it’s not already installed. Step-by-Step Guide: Open the Terminal or Command Prompt: - I think there is no need to explain you on - [How to use the nice command to change process priority in Linux](https://www.shkodenko.com/how-to-use-the-nice-command-to-change-process-priority-in-linux/) - Introduction In the world of Linux, managing process priorities is crucial for optimal system performance. The 'nice' command is a built-in utility in Linux that allows you to execute commands with altered priorities. Understanding how to use this tool effectively can significantly enhance your system management skills. Understanding the 'nice' Command The 'nice' command in - [What string set -Eeuo pipefail in shell script does mean?](https://www.shkodenko.com/what-string-set-eeuo-pipefail-in-shell-script-does-mean/) - The string `set -Eeuo pipefail` is a command used in shell scripts, particularly in Bash, to modify the behavior of the script for better error handling and debugging. Here's what each component means: `set`: This is a shell builtin command that sets or unsets shell options and positional parameters. `-E`: This option ensures that the - [Converting Adobe Photoshop PSD Files with CMYK color scheme to RGB for best compatibility for GIMP in Linux](https://www.shkodenko.com/converting-adobe-photoshop-psd-files-with-cmyk-color-scheme-to-rgb-for-best-compatibility-with-gimp-in-linux/) - Recently, I encountered a challenging issue while working with graphic files: I was unable to open files created in Adobe Photoshop (with a CMYK color scheme) using the GIMP editor on Linux. This compatibility problem is not uncommon for graphic designers and developers who work across different operating systems and software.To overcome this hurdle, I - [How to Exclude Files from Git Tracking Without Using .gitignore](https://www.shkodenko.com/how-to-exclude-files-from-git-tracking-without-using-gitignore/) - How to Exclude Files from Git Tracking Without Using .gitignore Introduction: In certain scenarios, you might find yourself needing to stop Git from tracking changes in specific files without adding them to `.gitignore`. This situation often arises with local configuration files, which you do not wish to share with others but still need to keep - [What is the difference between print in echo in PHP?](https://www.shkodenko.com/what-is-the-difference-between-print-in-echo-in-php/) - In PHP, both `print` and `echo` are used for outputting data to the screen, but there are some differences between them: Type: `echo` is a language construct, not really a function, so you can use it without parentheses. It can take multiple arguments. `print` is also a construct but behaves more like a function and - [Merging MP3 Files Seamlessly with FFmpeg](https://www.shkodenko.com/merging-mp3-files-seamlessly-with-ffmpeg/) - It could be useful to merge a number of mp3 files into one using the following command: The command above will combine mp3 files listed in -i option into one large audio file called _all_files_combined.mp3. Check out video tutorial version located on my Youtube channel Linux Tutorials at: https://youtu.be/1YM_G7nPQo4 - [Linux diff: compare two directories](https://www.shkodenko.com/linux-diff-compare-two-directories/) - Comparing Directories in Linux: Essential Commands for Efficient Management As a Linux user, you might frequently encounter the need to compare the contents of two directories. This is a common task in various scenarios, such as synchronizing files, diagnosing changes, or simply understanding the differences between two sets of data. Linux, known for its powerful - [Linux: create csr and key to get SSL certificate](https://www.shkodenko.com/linux-create-csr-and-key-to-get-ssl-certificate/) - Securing Your Website: A Simple Guide to Generating SSL Certificates in Linux In today's digital world, securing your website with an SSL certificate is not just a best practice; it's a necessity. This process involves generating a private key and a Certificate Signing Request (CSR). For Linux users, this task can be accomplished effortlessly with - [Efficiently Displaying Configuration Files in Linux: Excluding Empty Lines and Comments](https://www.shkodenko.com/efficiently-displaying-configuration-files-in-linux-excluding-empty-lines-and-comments/) - Efficiently Displaying Configuration Files in Linux: Excluding Empty Lines and Comments When working with Linux, there's a frequent need to view the contents of configuration files, such as `/etc/my.cnf`, without the clutter of empty lines or comments. This task can be efficiently accomplished using a combination of command-line tools. Here's a simple yet effective command - [Efficiently Logging Your Linux Console Activities](https://www.shkodenko.com/efficiently-logging-your-linux-console-activities/) - Efficiently Logging Your Linux Console Activities Working with the Linux console regularly demands a systematic approach to logging your activities. This practice isn't just about keeping a record; it's crucial for analyzing past actions and generating detailed reports. Here's how you can achieve this with ease. 1. Understanding the `history` Command Firstly, the Linux environment - [PHP composer show view installed libraries](https://www.shkodenko.com/php-composer-show-view-installed-libraries/) - To effectively manage and view the list of all PHP libraries installed in your project using Composer, you can utilize the following command: Adding the | more part to the command is particularly helpful when dealing with extensive lists. This suffix enables you to paginate the output, making it easier to read and navigate, especially - [How to clear the history of a Git repository from a PHP file?](https://www.shkodenko.com/how-to-clear-the-history-of-a-git-repository-from-a-php-file/) - In order to completely remove a PHP file from Git including its commit history, you need to follow this sequence of actions: Make sure that you have created a working backup of the file you are going to delete and checked that you can restore from it. Delete the file from the repository. You can - [Dealing with Binary Files in the Console: A Quick Fix for Common Issues - using reset command](https://www.shkodenko.com/dealing-with-binary-files-in-the-console-a-quick-fix-for-common-issues-using-reset-command/) - Viewing binary files through the console can occasionally lead to unexpected and disruptive issues. You might have experienced situations where the console seems to 'break'— displaying strange characters, replacing normal text with incomprehensible hieroglyphs, and even triggering unexpected sound alerts or bizarre color blends. These anomalies can render the console practically unusable, disrupting your workflow. - [Exploring Array Syntax in Shell Scripting: A C-Like Approach](https://www.shkodenko.com/exploring-array-syntax-in-shell-scripting-a-c-like-approach/) - Shell scripting provides a versatile way to automate tasks in Unix-like systems. For programmers familiar with C or languages with similar syntax, the following pattern can be particularly intuitive: In this script, we define an array named arr with three string elements: 'foo', 'bar', and 'baz'. We then iterate over the array using a for - [Linux find search for files changed in date range](https://www.shkodenko.com/linux-find-search-for-files-changed-in-date-range/) - Introduction In this quick guide, we'll explore some useful bash commands to find files modified within a specific time frame. This is especially useful for system administrators and developers. Finding Files Modified Today To find all files in a directory that were modified today, you can use the following command: This command searches for files - [Some useful composer options we are use for production Docker setup in Laravel apps](https://www.shkodenko.com/some-useful-composer-options-we-are-use-for-production-docker-setup-in-laravel-apps/) - As a part of our Docker production setup of Laravel web application we are using the following composer install with some options described below: --optimize-autoloader or -o: This flag tells Composer to optimize the autoloader for better performance. Autoloading is a mechanism in PHP that automatically loads classes when they are needed. Optimizing the autoloader - [How to install TeamViewer on Ubuntu Linux 22.04](https://www.shkodenko.com/how-to-install-teamviewer-on-ubuntu-linux-22-04/) - To install TeamViewer on Ubuntu Linux 22.04 use the follwoing commands: This command will make you Linux administrator super user root. It is needed to install or update any system software on your system. The first thing we need is to install SSL certificates using commands below: The second part of commands updates system software - [How to make password-protected zip archive in Linux?](https://www.shkodenko.com/how-to-make-password-protected-zip-archive-in-linux/) - Sometimes, when you working with Linux, you may need to zip some files with a password-protected zip archive. You could do it with the command below: - [PHP - swap two variable values](https://www.shkodenko.com/php-swap-two-variable-values/) - For example, you have a function which takes two parameters int|float $min and int|float $max parameters and you need to swap variable values vise versa, in case if $max value is less then $min value. You can do it using the following code below: - [Git - copy few branches from old repository to a new one](https://www.shkodenko.com/git-copy-few-branches-from-old-repository-to-a-new-one/) - Sometimes, then you need to transfer few Git branches from existing repository to a new one you could run the following commands: This command will create a new folder new-repo-folder with a .git folder inside, but without any files from branches. Change to the repository folder: Adding the necessary branches: Now you need to do - [Linux date - display date one or two days ago](https://www.shkodenko.com/linux-date-display-date-one-or-two-days-ago/) - If you need to display date one or two days ago you could use the following command in the terminal: - [Join the PHP Dinos Telegram Channel!](https://www.shkodenko.com/join-the-php-dinos-telegram-channel/) - Are you a PHP enthusiast, developer, or just curious about the world of PHP? Look no further! We're thrilled to introduce the brand-new Telegram channel, PHP Dinos. What to expect: PHP tips and tricks. PHP news and updates. Engaging in discussions on PHP development. Valuable resources for PHP beginners and experts alike. Community support and - [Bulk files rename shell script for Linux](https://www.shkodenko.com/bulk-files-rename-shell-script-for-linux/) - If you need to make a bulk files rename on Linux you could use the following Bash Shell script: Just replace directory variable value to an actual path to folder with *.mp4 files on your system. Replace _name-prefix- with a desired file names prefix. You could use the following Gist: with bulk mp4 files rename - [Convert mp3 to aac on linux using ffmpeg](https://www.shkodenko.com/convert-mp3-to-aac-on-linux-using-ffmpeg/) - To convert mp3 file to aac format on Linux you could use the following command: Replace inputFileName.mp3 and outputFileName.aac with actual file names in command above. - [Generate .htaccess config file using tee shell command](https://www.shkodenko.com/generate-htaccess-config-file-using-tee-shell-command/) - If you are using Docker setup for Yii2 Advanced application template to build REST API as I do, you could be interested in the command below: it is generating .htaccess configuration file for Apache web server to redirect all requests from not existing files or directories to index.php file in API web application inside Docker - [Docker network declared as external could not be found](https://www.shkodenko.com/docker-network-declared-as-external-could-not-be-found/) - I've faced the following error running CoreShop 3.0.2 demo in a Docker running command: I've got the following error: To fix it run the commands below: I hope this will save several minutes of your time. - [Error 500: Attempted to load class "Twig_Function" from the global namespace. Did you forget a "use" statement?](https://www.shkodenko.com/error-500-attempted-to-load-class-twig_function-from-the-global-namespace-did-you-forget-a-use-statement/) - During the Pimcore update from older versions to the most recent 10.5 at this time I've got the following errpr: To fix it add the following use statement to your class: And replace all Twig_Function to TwigFunction in your php class file code. - [PHP Yii2 Framework Advanced Certification on ITVDN](https://www.shkodenko.com/php-yii2-framework-advanced-certification-on-itvdn/) - I've completed a PHP Yii2 Framework Advanced course and certification on an ITVDN platform. Previously, I've created my first own Yii2 Framework Essentials course on the ITVDN platform. - [Git: search commits by author](https://www.shkodenko.com/git-search-commits-by-author/) - To search commits by the author you can use the following command: where Taras Shkodenko example author name. To get the list of all authors in a current Git repository use the useful command below: - [wp-cli update WordPress translations](https://www.shkodenko.com/wp-cli-update-wordpress-translations/) - To update WordPress CMS core, plugin and theme translations the following commands can be used: - [Pimcore CMS Certification](https://www.shkodenko.com/pimcore-cms-certification/) - Today, I have finally completed my first Pimcore Academy Certification. I really like Pimcore CMS. It is really cool tool to build amazing websites and web applications. - [Pimcore CMS Developer Senior Certification](https://www.shkodenko.com/pimcore-cms-senior-certification/) - I've completed Pimcore CMS Senior Developer Certification. - [PHP Symfony Developer Certification on ITVDN Platform](https://www.shkodenko.com/php-symfony-developer-certification-on-itvdn-platform/) - Today I've complete PHP Symfony Developer Certification on ITVDN Platform. - [Git: how to list all the files in a commit](https://www.shkodenko.com/git-how-to-list-all-the-files-in-a-commit/) - To list all the files in a commit use command: To get a commitId use command: - [Git show: display commit information](https://www.shkodenko.com/git-show-display-commit-information/) - To display changes in the particular commit you can use the following command: You can find commit hash using one of the following commands: ... or by commit message text: You can also find more information in git show documentation. - [Git: how to stash / unstash not commited changes](https://www.shkodenko.com/git-how-to-stash-unstash-not-commited-changes/) - Git has a useful feature. You can stash not committed changes and then re-apply them. It helps you to restore the working directory and the index, to a clean working directory as it was before your not commited changes. To stash your changes run a command below: To apply (unstash) your changes run a command - [Amend git commit (change the author or message) of the last not pushed commit](https://www.shkodenko.com/git-commit-amend-change-the-author-or-message-of-the-commit/) - To change the author or message of the last commit consider using the following commands: or - [Git remove file from index (assume unchanged)](https://www.shkodenko.com/git-remove-file-from-index-assume-unchanged/) - The command below will tell git you want to start ignoring the changes to the file: When you want to start keeping track again: - [Docker: copy file from host to container](https://www.shkodenko.com/docker-copy-file-from-host-to-container/) - To copy file from you host computer to a container use command docker cp Replace ${CONTAINER_ID} with ID of the container. You can get container name using command: Docker cp documentation. - [Apache 2.4 virtual host config for a WordPress CMS](https://www.shkodenko.com/apache-2-4-virtual-host-config-for-a-wordpress-cms/) - Example of a virtual host for web server Apache version 2.4 config to run a development copy of WordPress CMS: - [Composer show installed packages](https://www.shkodenko.com/composer-show-installed-packages/) - To list installed composer libraries use command below: - [PHP ?: ternary operator the Elvis operator](https://www.shkodenko.com/php-ternary-operator-the-elvis-operator/) - You can use ?: ternary operator in PHP then you need not empty value. Set value to a $action variable from $_POST['action'] parameter if it is not empty or use string default instead. It is shown in the example code below: For more information see PHP documentation page for Ternary Operator. In PHP 5.3, a - [mysqldump: Got error: 1045: "Access denied for user ... (using password: YES)" when using LOCK TABLES](https://www.shkodenko.com/mysqldump-got-error-1045-access-denied-for-user-using-password-yes-when-using-lock-tables/) - Then I've developed MySQL backup script I've faced an error: which was fixed by adding parameter to mysqldump command. Also, if you dump InnoDB tables consider using the parameter. As it is described in MySQL 5.7 documentation page. - [Install multiple php versions on Ubuntu server](https://www.shkodenko.com/install-multiple-php-versions-on-ubuntu-server/) - How to Install PHP 7.4 on Ubuntu. All packages should be installed as a root administrator user. Update Ubuntu Server Packages Before we install anything new on a server, you should update your server packages: # apt-get update && apt-get upgrade Install PHP 7.4 Next, to install PHP 7.4 on Ubuntu 20.04, just run the - [Git create and apply patch files](https://www.shkodenko.com/git-create-and-apply-patch-files/) - To create a git patch file from the uncommitted changes in the current working directory use command: git diff > filename.patch In case some part of the work you're doing are new files that are untracked and won't be in your git diff output. So, one way to do a patch is to stage everything - [Git undo last commit](https://www.shkodenko.com/git-undo-last-commit/) - To undo last commit in git you can use the following command below: $ git reset HEAD~ - [MySQL: change table auto increment value](https://www.shkodenko.com/mysql-change-table-auto-increment-value/) - If you need to change current value of auto_increment for table you could use the following SQL query: - [Git: search commits by message text](https://www.shkodenko.com/git-search-commits-by-message-text/) - If you need to find some commits by commit message text you could use the command below: - [Composer: how to downgrade to first version](https://www.shkodenko.com/composer-how-to-downgrade-to-first-version/) - To downgrade composer to version 1 the following command should be used: - [Make tar archive without .git folder or any other version control systems](https://www.shkodenko.com/make-tar-archive-without-git-folder-or-any-other-version-control-systems/) - To make tar archive without .git folder or any other version control systems --exclude-vcs option can be used for tar. Example tar command could be: - [Use fail2ban to protect your server with plesk panel from zero day exploit](https://www.shkodenko.com/use-fail2ban-to-protect-your-server-with-plesk-panel-from-zero-day-exploit/) - To protect your server with Plesk control panel from zero day exploit the following fail2ban configuration can be added: 1. Added custom config with the following regex: # more /etc/fail2ban/filter.d/apache-plesk-vulnerability.conf # Fail2Ban configuration file # # Author: Taras Shkodenko # # $Revision: 1 $ # [Definition] # Option: failregex # Notes.: regex to match the - [Fail2ban configuration for ProFTPd with Plesk on RHEL CentOS Fedora Redhat-based Linux](https://www.shkodenko.com/fail2ban-configuration-for-proftpd-with-plesk-on-rhel-centos-fedora-redhat-based-linux/) - I am using the following fail2ban configuration for ProFTPd with Plesk on RHEL CentOS Fedora Redhat-based Linux (because default one is not working for me properly). File /etc/fail2ban/jail.local or /etc/fail2ban/jail.conf if you have not installed fail2ban using yum package manager which will overwrite your custom configuration files each time you update the package. Filter configuration - [Setup Git deployment on push to remote origin with post-update hook](https://www.shkodenko.com/setup-git-deployment-on-push-to-remote-origin-with-post-update-hook/) - 1. Generate SSH keys pair. Use ssh-keygen command to generate SSH keys pair. Example usage: $ ssh-keygen -t rsa -b 4096 -C "taras@shkodenko.com" Generating public/private rsa key pair. Enter file in which to save the key (/home/tarasius/.ssh/id_rsa): 2. Setup SSH key authorization. To setup autorization by SSH key add contents of your public key ($HOME/.ssh/id_rsa.pub) - [mysql and mysqldump --defaults-file without a password](https://www.shkodenko.com/mysql-and-mysqldump-defaults-file-without-a-password/) - MySQL has an amazing option called --defaults-file. It can be used to store credentials in configuration file as it shown in example below: [client] user=dbUser password=dbPassword Make sure you did not store such configration files anywhere inside public_html accessible via HTTP or HTTPS on your website. It is real security breach. Do not do it. - [Yii2 Framework console built-in web server can't start](https://www.shkodenko.com/yii2-framework-console-built-in-web-server-cant-start/) - If you can`t start built-in web server in Yii2 Framework on Windows with error message like Document root "...\console/web" does not exist. in advanced application template you should use the following commands: 1. For backend admin application: yii.bat serve/index --docroot="backend/web/" 2. For frontend application: yii.bat serve/index --docroot="frontend/web/" For basic application template use command: yii.bat serve/index - [Check PHP files syntax for list of files on Linux](https://www.shkodenko.com/check-php-files-syntax-for-list-of-files-on-linux/) - To check all PHP files syntax in current folders including subfolders you can use command like: If you want to check few files syntax you can add them to some file e.g. /tmp/check-php-files-syntax.list and then run command below: - [Git: create archive](https://www.shkodenko.com/git-create-archive/) - As you may know Git has wonderful feature create archive of files in repository. For example, you can create Bash script to automate making of Git archives: Also, you can use tar format instead of zip and then to gzip it. v1.0 - is tag name of release to archive --prefix=git-1.0/ - adds folder git-1.0/ - [Git: list files between two commits](https://www.shkodenko.com/git-list-files-between-two-commits/) - To display changes between two commits you need to know SHA sum of commit. You can take it from command output. Example command output: Then you can run command: it will show you list of changed files. Alternatively, you can also use command: to see the difference between seventh and fourteenth latest commits. - [Set up password protection for virtual host in nginx](https://www.shkodenko.com/set-up-password-protection-for-virtual-host-in-nginx/) - To set up virtual host password protection in Nginx you can follow such steps: 1. Created .htpassword file outside web server foot folder using commands below: Second command will ask you for a password. 2. Add the following lines to Nginx configuration file /etc/nginx/nginx.conf into virtual host definition section. - [PHP Warning: Unknown: Unable to allocate memory for pool. in Unknown on line 0](https://www.shkodenko.com/php-warning-unknown-unable-to-allocate-memory-for-pool-in-unknown-on-line-0/) - To fix error below: You should increase APC opcode cache parameter apc.shm_size, which is set to 32M by default and restart web server Apache module if PHP is set to wokr like web server module. One more thing, you can switch off APC module for some domain or virtual host you can add the following - [Example usage of custom fields and shortcode parameters in Wordpress CMS](https://www.shkodenko.com/example-usage-of-custom-fields-and-shortcode-parameters-in-wordpress-cms/) - Wordpress CMS has a lot of useful features e.g. shortcodes, custom fields. Look at the code example below: In example above it allows to output slides of exact category on page. Possible slider shortcode usage can be: [mySlider slide_category="1"] Where mySlider is shortcode, slide_category is shortocode attribute which allows us to display flides of particular - [Change URL options in MySQL database when move WordPress CMS website](https://www.shkodenko.com/change-url-options-in-mysql-database-when-move-wordpress-cms-website/) - To change URL options in MySQL database when move WordPress CMS website from one domain to another SQL query can be used: Note, this is true if default value is used in main configuration file wp-config.php - [WP-CLI: command line interface for Wordpress CMS](https://www.shkodenko.com/wp-cli-command-line-interface-for-wordpress-cms/) - If you have shell access to your hosting account and your web server is running Wordpress websites under Linux you should check amazing command line utility wp-cli. Some usage examples: 1. Upgrade Wordpress CMS core: 2. List installed themes: Example output $ wp theme list +----------------+----------+--------+---------+ | name | status | update | version | - [ProFTPd server configuration: enable FTPS (OpenSSL mod_tls)](https://www.shkodenko.com/proftpd-server-configuration-enable-ftps-openssl-mod-tls/) - To setup SSL encryption in ProFTPd you can follow such instructions: 1. Generate self-signed SSL certificate & private key. You should fill form below: 2. Create mod_tls SSL configuration file /etc/proftpd/tls.conf : 3. Include mod_tls SSL configuration file /etc/proftpd/tls.conf into main "/etc/proftpd.conf" using Include : 4. Check ProFTPd configration using command: 5. If there is - [Linux ProFTPD setup passive mode](https://www.shkodenko.com/linux_proftpd_setup_passive_mode/) - 1. IPTables configuration. If you have IPTables firewall enabled add rule -A INPUT -m state --state NEW -m tcp -p tcp --dport 63000:65535 -j ACCEPT to IPTables configuration file /etc/sysconfig/iptables and restart IPTables service: # /sbin/service iptables restart iptables: Flushing firewall rules: [ OK ] iptables: Setting chains to policy ACCEPT: filter [ OK ] - [Linux FTP ProFtpd server configuration: setup timeouts](https://www.shkodenko.com/linux-ftp-proftpd-server-configuration-setup-timeouts/) - First step before making any changes to configuration files is to create backup: # cp -fvp /etc/proftpd.conf /etc/proftpd.conf-2013-03-08.bak Second step is to check service configuration to make sure it is correct. # proftpd -td10 Checking syntax of configuration file ... Syntax check complete. Edit configuration file /etc/proftpd.conf: add timout directives inside section. TimeoutNoTransfer - [Linux FTP ProFtpd server configuration: enable display hidden files](https://www.shkodenko.com/linux-ftp-proftpd-server-configuration-enable-display-hidden-files/) - I have been working with some Linux servers with Plesk control panel. By default ProFtpd FTP server is configured to not display hidden files. To fix this edit ProFtpd main configuration file /etc/proftpd.conf add line below: ListOptions "-a" inside section. Check ProFtpd configuration using command: Checking syntax of configuration file Syntax check complete. - [Upgrading MySQL 5.6 to 5.7 on CentOs](https://www.shkodenko.com/upgrading-mysql-5-6-to-5-7-on-centos/) - First of all I would recommend you to make backups for all MySQL databases and configuration files you have. The second recommendation is to use official Yum repositories located on http://dev.mysql.com/downloads/repo/yum/ It is the best possible option for CentOs and other Red Hat based Linux ditstibutions. You should download repository depending on your distribution version. - [MySQL GROUP_CONCAT default result length & possible problems with big results](https://www.shkodenko.com/mysql-group_concat-default-result-length-possible-problems-with-big-results/) - If you use such function like GROUP_CONCAT you should be aware of default result size is 1024 bytes. It could lead possible problems. For example, check the SQL query below: If you expect result to be list of IDs separated by comma and you have data result bigger than 1024 characters it will be truncated - [Some interesting task related to recursion and arrays in PHP](https://www.shkodenko.com/some-interesting-task-related-to-recursion-and-arrays-in-php/) - Sometimes it is difficult to find best solution for some problem quickly. For example, if you need to walk some nested array. You don't know how deep it could be nested and extract values from it to make it flattern you can use amazing function array_walk_recursive together with anonymous function to solve such task like - [OpenSSL how to decode SSL certificate file](https://www.shkodenko.com/openssl-how-to-decode-ssl-certificate-file/) - To decode SSL certificate the following command can be used: Example command output: Certificate: Data: Version: 3 (0x2) Serial Number: 2b:2e:6e:ea:d9:75:36:6c:14:8a:6e:db:a3:7c:8c:07 Signature Algorithm: sha384WithRSAEncryption Issuer: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO RSA Certification Authority Validity Not Before: Feb 12 00:00:00 2014 GMT Not After : Feb 11 23:59:59 2029 GMT Subject: C=GB, ST=Greater - [OpenSSL generate CSR using secure SHA256 instead of SHA1](https://www.shkodenko.com/openssl-generate-csr-using-secure-sha256-instead-of-sha1/) - To generate RSA private key using 2048 long modulus use command: If you want to password protect your key add -des3 parameter. You can also increase key modulus to 4096 to make it more secure. To generate CSR using secure SHA256 algorithm the following command can be used: There is also genkey utility. By default - [Linux Plesk PHP error: open_basedir restriction in effect](https://www.shkodenko.com/linux-plesk-php-error-open_basedir-restriction-in-effect/) - What is open_basedir ? The open_basedir function defines the locations or paths from which PHP is allowed to access files using functions like fopen() , gzopen() , etc. If a file is outside of the paths defined by open_basdir setting, PHP will refuse to open it. You can't use a symbolic link as a workaround, - [OpenSSL how to decode CSR](https://www.shkodenko.com/openssl-how-to-decode-csr/) - To decode CSR the following command can be used: - [OpenSSL check if SSLv3 is disabled](https://www.shkodenko.com/openssl-check-if-sslv3-is-disabled/) - To verify if OpenSSL protocol version 3 is disabled you can run command: If you will see answer like below: CONNECTED144:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1257:SSL alert number 40 139824221411144:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:596: When SSL3 is disabled. - [Linux malware detect aka maldet installation procedure](https://www.shkodenko.com/linux-malware-detect-aka-maldet-installation-procedure/) - I'm using the following procedure to install and configure Linux Malware Detect (LMD): 1. Download it: --2013-12-06 16:10:52-- http://www.rfxn.com/downloads/maldetect-current.tar.gz Resolving www.rfxn.com... 129.121.132.46 Connecting to www.rfxn.com|129.121.132.46|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 811434 (792K) [application/x-gzip] Saving to: `maldetect-current.tar.gz' 100%[====================================================================================================>] 811,434 --.-K/s in 0.1s 2013-12-06 16:10:53 (7.51 MB/s) - `maldetect-current.tar.gz' saved [811434/811434] 2. Verify - [rkhunter installation procedure](https://www.shkodenko.com/rkhunter-installation-procedure/) - To install rkhunter on Linux servers I am usually using the following procedure: To find out where it is installed I am use command: # whereis rkhunter rkhunter: /usr/bin/rkhunter /etc/rkhunter.conf /usr/share/man/man8/rkhunter.8 To update rkhunter databases run: [ Rootkit Hunter version 1.4.0 ] Checking rkhunter data files... Checking file mirrors.dat [ No update ] Checking file - [nginx: [warn] 4096 worker_connections exceed open file resource limit: 1024](https://www.shkodenko.com/nginx-warn-4096-worker_connections-exceed-open-file-resource-limit-1024/) - If you see error messages like: nginx: [warn] 4096 worker_connections exceed open file resource limit: 1024 Then checking nginx web server configuration using command: It can be fixed permanently (after system reboot) by editing /etc/security/limits.conf configuration file: Default Linux system limits can be viewed using command: core file size (blocks, -c) 0 data seg size - [Plesk for Linux: disable Dr Web update cron notifications](https://www.shkodenko.com/plesk-for-linux-disable-dr-web-update-cron-notifications/) - To disable Dr Web update cron notifications via e-mail in Plesk for Linux: 1. Edit file Dr Web configuration file /etc/drweb/drweb32.ini using your favorite editor. Mine is vim: # CronSummary = yes # ---> CronSummary = no 2. Edit file /etc/cron.d/drweb-update and add to the end of string >/dev/null 2>&1 */30 * * * * - [Shell script to remove Plesk health monitor package for RPM-based Linux RHEL CentOS Fedora etc](https://www.shkodenko.com/shell-script-to-remove-plesk-health-monitor-package-for-rpm-based-linux-rhel-centos-fedora-etc/) - Because I have tired from annoying e-mail messages with subject alarm level changed which are killing me. I can`t find how to disable them in Plesk control panel. I have developed simple script to remove Plesk health monitor package for RPM-based Linux: RHEL, CentOS, Fedora etc. - [Reconfigure vhost in Plesk 10.4.4 add custom web server configuration file](https://www.shkodenko.com/reconfigure-vhost-in-plesk-10-4-4-add-custom-web-server-configuration-file/) - Plesk Control Panel version 10.4.4 does not allow to create aliases for subdomains. To fix it I have created two custom configuration files: and reconfigured subdomain using command: I have checked web server Apache configuration and restarted it: - [bind named error: zone NS has no address records A or AAAA](https://www.shkodenko.com/bind-named-error-zone-ns-has-no-address-records-a-or-aaaa/) - Today I have found bind named error on one of my Linux servers in main server log file /var/log/messages Command to start bind named service: has failed with errors listed above. To fix this error I have added NS and A records to zone file /var/named/chroot/var/shkodenko.com: Also, I have changed zone serial number. I have - [Plesk 11.5.30 for Linux post Update #26 error](https://www.shkodenko.com/plesk-11-5-30-for-linux-post-update-26-error/) - During Plesk control panel version 11.5.30 for Linux when updated to #26 I got error: ERROR: PleskFatalException: Unable to connect to database: mysql_connect(): No such file or directory (auth.php:142) When I have checked KB articles related to this problem on suggested link Search for related Knowledge Base articles I have found working solution: - [Install and configure custom PHP FastCGI version with Plesk 12](https://www.shkodenko.com/install-and-configure-custom-php-fastcgi-version-with-plesk-12/) - If you need to use modern version of PHP and you have Plesk control panel version 12+ you can use php_handler utility. To view list of currently installed PHP versions use command: id: display name: full version: version: type: cgi-bin: php-cli: php.ini: custom: module 5.3.3 5.3.3 5.3 module /usr/bin/php-cgi /etc/php.ini false fastcgi 5.3.3 5.3.3 5.3 - [Errors running mysqldump related to LOCK TABLES](https://www.shkodenko.com/errors-running-mysqldump-related-to-lock-tables/) - If you see such error patterns when running mysqldump backup: Enter password: mysqldump: Got error: 1016: Can't open file: './wordpress_db/wp_1050_postmeta.frm' (errno: 24) when using LOCK TABLES Enter password: mysqldump: Got error: 23: Out of resources when opening file './wordpress_db/wp_1050_options.MYD' (Errcode: 24) when using LOCK TABLES try to add --lock-tables=false to dump command. - [Work with davfs2 on Fedora CentOs RHEL](https://www.shkodenko.com/work-with-davfs2-on-fedora-centos-rhel/) - This post can be useful if you need to work with remote file system using davfs2 protocol. To start work with it you should install davfs2 support using command: To start work you have to create mount point using command: Mount drive using command: You will need to provide username and password to connect. Now, - [RHEL Downloadonly plugin for yum](https://www.shkodenko.com/rhel-downloadonly-plugin-for-yum/) - If you need to get package source code only, and you don't want to install it, you can use Downloadonly plugin for yum. Install the package including "downloadonly" plugin: (RHEL5) (RHEL6) Run yum command with "--downloadonly" option as follows: Confirm the RPM files are available in the specified download directory. Source: https://access.redhat.com/solutions/10154 - [Import SSL certificate from web server Apache OpenSSL to Tomcat format](https://www.shkodenko.com/import-ssl-certificate-from-web-server-apache-openssl-to-tomcat-format/) - To import SSL certificate into pkcs12 format you can use command: You will be prompted to input password. Now, you can use /home/taras/ssl/shkodenko.com.jks certificates storage in your Apache Tomcat SSL virtual host configuration. - [How to find out Magento version if only files backup available](https://www.shkodenko.com/how-to-find-out-magento-version-if-only-files-backup-available/) - If you wish to find out Magento version and only files backup available check file app/Mage.php function getVersionInfo() - [General transfer Magento website procedure in Linux](https://www.shkodenko.com/transfer-magento-website-procedure-in-linux/) - My general transfer Magento website on Linux procedure 1. Export MySQL database to SQL dump to file using phpMyAdmin or mysql command-line: mysqldump -h localhost -u db_user -p db_name > ./db_name.sql ...or any other utility. MySQL database host, name, user and password can be found in file ./app/etc/local.xml Example section with db settings: - [Set up NFS on CentOS and RedHat enterprise remote server folder sharing](https://www.shkodenko.com/set-up-nfs-on-centos-and-redhat-enterprise-remote-server-folder-sharing/) - To set up NFS on CentOS and/or RedHat enterprise Linux the following package should be installed: If you see error while trying to start nfs service: check if portmapper service is working: If not, add portmap service to auto start: Start the portmap serice: When portmap service is started it should show some output like: - [Useful alias to backup and edit configuration file automatically](https://www.shkodenko.com/useful-alias-to-backup-and-edit-configuration-file-automatically/) - I'm using vim editor. I have found useful alias to backup and edit configuration file automatically. It can be added it to your ~/.bashrc To apply newly created alias without restarting run: Usage example: It will create copy of /etc/httpd/conf/httpd.conf configuration file using pattern: /etc/httpd/conf/httpd.conf-YYYY-MM-DD.bak To view your configuration changes you can run command: - [Using dpkg to find package names on Debian Linux 7 (wheezy)](https://www.shkodenko.com/using-dpkg-to-find-package-names-on-debian-linux-7-wheezy/) - To discover what package a file belongs to use command: dash: /bin/dash We find several packages related to what we're looking for, together with brief descriptions. To get more information about a specific package, I can then use: Read more at https://www.debian.org/doc/manuals/apt-howto/ch-search.en.html - [Block / unblock IPs on Linux servers](https://www.shkodenko.com/block-unblock-ips-on-linux-servers/) - There is several ways to block / unblock IPs on linux servers. It can be done using IPTables firewall rules, server configuration files /etc/hosts.deny, using route. I have written simple shell scripts to block / unlbock IPv4 which can be used on any Linux distribution if you have root administrator access. You can get them - [Mtop utility installation on Debian 7](https://www.shkodenko.com/mtop-utility-installation-on-debian-7/) - Mtop utility can be downloaded from http://sourceforge.net/projects/mtop/?source=typ_redirect. Current version at this moment is: 0.6.6. To install it the following system packages should be installed as dependencies: libncurses5-dev Because of error during installation of depended Curses Perl library: fatal error: ncurses.h: No such file or directory The following Perl libraries required by mtop should be installed: - [usermod - add a existing user to existing group](https://www.shkodenko.com/usermod-add-a-existing-user-to-existing-group/) - If you need to add existing user to existing group use usermod command. 1. Check current user groups using id command: uid=10001(serveradmin) gid=10001(serveradmin) groups=10001(serveradmin) 2. Add existing user to group using usermod command: 3. Check if user has been added to group using id command: uid=10001(serveradmin) gid=10001(serveradmin) groups=10001(serveradmin),11(wheel) - [Drupal7 error 403 forbidden after log in from plain HTTP /user/login form](https://www.shkodenko.com/drupal7-error-403-forbidden-after-log-in-from-plain-http-userlogin-form/) - When I have set such settings in file sites/default/settings.php on one of my Drupal7 websites: Users, after log in (if logged in from plain HTTP /user/login form) has started to see 403 forbidden error. To fix it I have added such rules to main .htaccess file: This has fixed the issue. - [PHP Fatal error: Allowed memory size of M bytes exhausted (tried to allocate N bytes) in](https://www.shkodenko.com/php-fatal-error-allowed-memory-size-of-m-bytes-exhausted-tried-to-allocate-n-bytes-in/) - To fix PHP Fatal error: Allowed memory size of M bytes exhausted (tried to allocate N bytes) in /path/to/file.php PHP configuration parameter memory_limit should be changed respectively. If PHP is runned as module (web server Apache). It can be done in .htaccess configuration file: where 128M - is desired increased value. Web server Apache should - [PHP Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0](https://www.shkodenko.com/php-warning-unknown-input-variables-exceeded-1000-to-increase-the-limit-change-max_input_vars-in-php-ini-in-unknown-on-line-0/) - To fix error message: PHP Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0 Change/add PHP ini configuration directive max_input_vars default value in main configuration file /etc/php.ini and restart web server Apache using command: - [How to install drush for Drupal](https://www.shkodenko.com/how-to-install-drush-for-drupal/) - To install Drush for Drupal use commands: To view help: Drush options description also available at http://drush.ws/ - [Linux: enable or disable PHP APC opcode cache for virtual host](https://www.shkodenko.com/linux-enable-or-disable-php-apc-opcode-cache-for-virtual-host/) - 1. To install PHP APC module run commands: # yum install php-devel php-pear pcre-devel # pecl install apc 2. Example configuration file for APC # more /etc/php.d/apc.ini extension=apc.so apc.enabled="1" ; [ disable APC opcode cache by default apc.cache_by_default=0 ; ] apc.shm_segments="1" apc.num_files_hint="1024" apc.ttl="7200" apc.user_ttl="7200" apc.gc_ttl="3600" apc.cache_by_default="1" ;apc.filters="" apc.slam_defense="0" apc.file_update_protection="2" apc.enable_cli="0" apc.max_file_size="1M" apc.stat="1" apc.write_lock="1" apc.report_autofilter="0" apc.include_once_override="0" - [Linux: check system, PHP and MySQL date and time](https://www.shkodenko.com/linux-check-system-php-mysql-date-time/) - Sometimes it can be useful to verify if system, PHP and MySQL date and time is synced. I am using this set of commands to check: Also, it can be useful to check the same information on remote server without logging in to it. It can be done using the same above set of commands - [PHP: get random array value](https://www.shkodenko.com/php-get-random-array-value/) - Sometimes it can be useful to get random array value in PHP. You can use my function below to do it: If you have any ideas how to make it better: all your comments are welcomed. - [SSH login without password using keys](https://www.shkodenko.com/ssh-login-without-password-using-keys/) - To set up SSH login without passwords using keys: 1. Generate key using ssh-keygen utility. Keys will be saved in this example in ~/.ssh/ folder. File ~/.ssh/id_rsa is your private key. File ~/.ssh/id_rsa.pub is your public key. 2. Add public key to ~/.ssh/authorized_keys on server where you want to login without password using command: 3. - [CentOs 6.5 bind 9 hide version](https://www.shkodenko.com/centos-6-5-bind-9-hide-version/) - To hide real bind 9 version add directive to /etc/named.conf configuration file. Inside options { }; block add version directive: version "BIND custom version"; To check bind version using dig utility: where NS_Server_IP your name server IP or host name - [CentOS 6.5 change time zone on server](https://www.shkodenko.com/centos-6-5-change-time-zone-on-server/) - To change time zone on server run commands: First command backups currently selected timezone file. Second is setting desired time zone (America/Los_Angeles in this example). - [How to archive git repository to zip file](https://www.shkodenko.com/how-to-archive-git-repository-to-zip-file/) - To archive master branch of git repository into zip file the following commands can be used: To view list of archived files use command: I have described viewing zip files in my post List files and folders inside Java jar archive. - [Connect to remote MySQL server via SSH tunnel](https://www.shkodenko.com/connect-to-remote-mysql-server-via-ssh-tunnel/) - To connect to remote MySQL server via SSH tunnel run commands: Where 3307 local port, 1.2.3.4 remote MySQL server IP, 3306 remote MySQL port, taras - valid SSH user name. To check if tunnel connection has been set up: Connect to remove MySQL server using local SSH tunnel: - [Debian 7 IPTables set up](https://www.shkodenko.com/debian-7-iptables-set-up/) - To set up persistent IPTables rules on Debian GNU/Linux 7 (wheezy) install package using command: Save current IPTables rules using command: Edit /etc/iptables/rules.v4 file for IPv4 and /etc/iptables/rules.v6 for IPv6 rules. To apply new rules run command: Loading iptables rules... IPv4... IPv6...done. To view current IPTables rules: - [Git edit remote origin URL](https://www.shkodenko.com/git-edit-remote-origin-url/) - To edit remote origin URL in Git configuration file can be edited: [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = ssh://git@bitbucket.org/podlom/example.git fetch = +refs/heads/*:refs/remotes/origin/* Where url = ssh://git@bitbucket.org/podlom/example.git new example path. To check new settings use command: origin ssh://git@bitbucket.org/podlom/example.git (fetch) origin ssh://git@bitbucket.org/podlom/example.git (push) - [RHEL CentOs Fedora htop installation](https://www.shkodenko.com/rhel-centos-fedora-htop-installation/) - I would like to share with you nice process monitoring program htop. I am using this program on my Fedora Linux desktop, CentOs and RHEL (Red Hat Enterprise) Linux servers. To install it several dependent system packages should be installed as root administrator user: Change directory to your installation directory location. Mine is /root/install Download - [Create second MySQL database and give privileges to one user](https://www.shkodenko.com/create-second-mysql-database-and-give-privileges-to-one-user/) - To create second MySQL database and give privileges to the same user the following commands can be used: SHOW CREATE DATABASE `database_name`; will show first MySQL create database DDL SQL query. CREATE DATABASE `database_name2` /*!40100 DEFAULT CHARACTER SET utf8 */; will create second MySQL database. SHOW GRANTS FOR database_user; is used to view current user - [Connect to remote host via ssh proxy](https://www.shkodenko.com/connect-to-remote-host-via-ssh-proxy/) - To connect to remote server via ssh proxy use can use the following sequence of commands: If TCP port 2222 is free you will not see any output. So you can use it for SSH proxied connection. proxy_user - SSH user on SSH proxy server proxy_host. destination_host - IP or host name of remote server - [apachectl - web server Apache control interface](https://www.shkodenko.com/apachectl-web-server-apache-control-interface/) - To view possible options of apachectl - web server Apache server control interface run command: To view full version information run: To view list of compiled-in modules execute: To check web server Apache syntax run: To restart web server Apache gracefully run command: - [List files and folders inside Java jar archive](https://www.shkodenko.com/list-files-and-folders-inside-java-jar-archive/) - To list files and folders inside Java jar archive use unzip. Look at example below: Archive: /home/taras/Downloads/clientControl.jar Length Date Time Name --------- ---------- ----- ---- 0 02-16-2014 12:10 META-INF/ 106 02-16-2014 12:10 META-INF/MANIFEST.MF 0 02-16-2014 12:10 database/ 0 02-16-2014 12:10 i18n/ 0 02-16-2014 12:10 lib/ 0 02-16-2014 12:10 web/ 0 02-16-2014 12:10 web/WEB-INF/ 0 02-16-2014 - [Unable to start MySQL service. Another MySQL daemon is already running with the same UNIX socket](https://www.shkodenko.com/unable-to-start-mysql-service-another-mysql-daemon-is-already-running-with-the-same-unix-socket/) - Еverything happens for the first time ever. Today, first time I have seen such MySQL service error during start: Unable to start MySQL service. Another MySQL daemon is already running with the same UNIX socket. First item to check: main MySQL service log /var/log/mysqld.log and main configuration file /etc/my.cnf Then I have found nice KB - [Plesk 11.0.9 for Linux: fix failed automatic update](https://www.shkodenko.com/pless-11-0-9-for-linux-fix-failed-automatic-update/) - If you can`t start Plesk 11.0.9 control panel for Linux using command: after failed automatic upgrade you can fix it using command: Example commnad output: Changing shell for popuser. Shell not changed. Changing shell for mhandlers-user. Shell not changed. ===> Preparing upgrade Stopping psa... done psa is stopped Stopping psa... done ===> Cumulative database upgrade - [How to get installed Drupal version from MySQL database](https://www.shkodenko.com/how-to-get-installed-drupal-version-from-mysql-database/) - To get installed Drupal version from MySQL database use the following SQL query: select name,type,info from system where type = 'module' and name = 'node'; Inside info you will see serialized data something like: s:7:"package";s:4:"Core";s:7:"version";s:4:"7.22" or s:7:"package";s:15:"Core - required";s:7:"version";s:4:"6.28" - [Warning during restart mysqld service Using unique option prefix pass instead of password is deprecated](https://www.shkodenko.com/warning-during-restart-mysqld-service-using-unique-option-prefix-pass-instead-of-password-is-deprecated/) - If you getting Warning: Using unique option prefix pass instead of password is deprecated and will be removed in a future release. Please use the full name instead. during mysqld service restart you should fix your custom ~/.my.cnf configuration files syntax. # more ~/.my.cnf [client] user="root" pass="YourSecureMySQLPassword" # short "pass" should be removed by "password": - [Node Version Manager for Node.JS](https://www.shkodenko.com/node-version-manager-for-node-js/) - If you need to install particular version of Node.JS (for example 0.10.12) wonderful Node Version Manager package can be used. Automatic installation Now, any Node.JS version can be installed and selected as default in system. - [Install Node.JS with packages on CentOS, Fedora or any Redhat distros](https://www.shkodenko.com/install-node-js-with-packages-on-centos-fedora-or-any-redhat-distros/) - I have started to develop using Node.JS on one of my projects. To prepare Linux development server (on Fedora release 18 (Spherical Cow) as example) the following system packages has been installed (for my development purposes). As root user: As web developer user: To run Node.JS application: - [Enable display of hidden dot files in VSFTPD](https://www.shkodenko.com/enable-display-of-hidden-dot-files-in-vsftpd/) - To enable display of hidden dot files in VSFTPD edit main configuration file /etc/vsftpd/vsftpd.conf Add configuration directive: force_dot_files=YES and restart service using command: - [Apache .htaccess mod_rewrite rule redirect old URL to new one](https://www.shkodenko.com/apache-htaccess-mod_rewrite-rule-redirect-old-url-to-new-one/) - Sometimes I need .htaccess mod_rewrite rule to redirect old URL to new one. I am using the following rules: # Add followsymlinks to server options Options +FollowSymLinks # It will work only if web server Apache mod_rewrite is enabled # Turn on mod_rewrite engine RewriteEngine On # Should be added if virtual document - [Apache .htaccess: Invalid command 'AuthUserFile', perhaps misspelled or defined by a module not included in the server configuration](https://www.shkodenko.com/apache-htaccess-invalid-command-authuserfile-perhaps-misspelled-or-defined-by-a-module-not-included-in-the-server-configuration/) - To fix .htaccess error message: Invalid command 'AuthUserFile', perhaps misspelled or defined by a module not included in the server configuration add directive to main web server Apache configuration file /etc/httpd/conf/httpd.conf check web server Apache configuration: and reload web server using command: - [Find files and fix permissions bash script example](https://www.shkodenko.com/find-files-and-fix-permissions-bash-script-example/) - To find files and fix permissions example bash script below can be used: $ ./find_fix_permissions.sh $ It searches all files in folder SEARCH_FOLDER including sub-folders and if these files found correct permissions set in variable CORRECT_PERMISSIONS - [Get list of Linux users with shell access](https://www.shkodenko.com/get-list-of-linux-users-with-shell-access/) - To get list of Linux users with shell access (/bin/sh, /bin/bash) the following command can be used: - [Backup WordPress website procedure for Linux](https://www.shkodenko.com/backup-wordpress-website-procedure-for-linux/) - To backup your WordPress website on Linux you can follow these steps: 1. Log in via ssh to your server. 2. Change directory where your website files are located. For example: $ cd /home/shkodenko/public_html 3. Find out MySQL connection settings using command: $ grep -ni "DB" ./wp-config.php You will need these lines below. 19:define('DB_NAME', 'db_name'); - [MySQL change password for user](https://www.shkodenko.com/mysql-change-password-for-user/) - To change password in MySQL log in to mysql as root user: $ mysql -h localhost -u root -p mysql> UPDATE mysql.user SET Password=PASSWORD('new_db_password') WHERE User='db_user_name' AND Host='db_host'; mysql> FLUSH PRIVILEGES; mysql> quit; - [MySQL full text search: minimum word length setting](https://www.shkodenko.com/mysql-full-text-search-min-word-len/) - To set up full text search parameter minimum word length edit your main MySQL configuration file /etc/my.cnf. In section [mysqld] # set minimum word length for full text search ft_min_word_len=3 Restart MySQL using command: # /etc/init.d/mysqld restart Documentation: http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html - [Problems with cPanel update MySQL conflicts with mysql-5.0.x](https://www.shkodenko.com/problems-with-cpanel-update-mysql-conflicts-with-mysql-5-0/) - To fix problem with cPanel / WHM upgrade if: error: Failed dependencies: MySQL conflicts with mysql-5.0.x Read: http://docs.cpanel.net/bin/view/AllDocumentation/InstallationGuide/RPMTroubleshoot and forum posts http://forums.cpanel.net/f5/case-64049-overnight-update-failed-mysql-conflicts-mysql-5-0-77-4-el5_4-2-i386-320381.html Made all MySQL databases backup and run command as root user: # rpm -e --nodeps --allmatches --justdb mysql-5.0.x It will resolve Conflict With Rogue mysql RPM. Run cPanel / WHM update once again. - [mysqldump: Got error: 1042: Can't get hostname for your address when trying to connect](https://www.shkodenko.com/mysqldump-got-error-1042-cant-get-hostname-for-your-address-when-trying-to-connect/) - If you getting error: 1042: Can't get hostname for your address when trying to connect when trying to dump remote database using mysqldump it can be fixed by adding configuration directive: skip-name-resolve into section [mysqld] Also, MySQL service should be restarted using command: # /etc/init.d/mysqld restart Stopping mysqld: [ OK ] Starting mysqld: [ OK - [ERROR 2003 (HY000): Can't connect to MySQL server on 'server IP' (10061)](https://www.shkodenko.com/error-2003-hy000-cant-connect-to-mysql-server-on-server-ip-10061/) - If you see error messages below: Can't connect to MySQL server on 'Server IP' (10061): ERROR 2003 (HY000): Can't connect to MySQL server on 'Server IP' (110) Server did not respond within the specified timeout interval And checking port using telnet utility $ telnet 'Server IP' 3306 Gives error message: Trying 'Server IP'... telnet: connect - [Courier imap connections limit error](https://www.shkodenko.com/courier-imap-connections-limit-error/) - To fix courier-imap connections limit errors like shown below: Thunderbird Unable to connect to your IMAP server. You may have exceeded the maximum number of connections to this server. If so, use the Advanced IMAP Server Settings dialog to reduce the number of cached connections. Edit configuration file /etc/courier-imap/imapd parameters: MAXDAEMONS=40 MAXPERIP=4 Restart courier-imap service. - [Bind named check named.conf db zone file check](https://www.shkodenko.com/bind-named-check-named-conf-db-zone-file-check/) - Before making any configuration changes to any services remember to create backup. 1. To check named server Bind main configuration file /etc/named.conf syntax use command: # named-checkconf /etc/named.conf 2. To check zone file configuration use command: # named-checkzone shkodenko.com /var/named/run-root/var/shkodenko.com zone shkodenko.com/IN: loaded serial 201306071 OK # 3. To apply configuation files changes use command: - [Apache server status setup](https://www.shkodenko.com/apache-server-status-setup/) - To set up server status page for web server Apache use the following commands: 1. Check Apache web service configuration files # /sbin/service httpd configtest Syntax OK 2. Make backup copy of main web server Apache configuration file # cp -fvp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf-2013-05-21.bak `/etc/httpd/conf/httpd.conf' -> `/etc/httpd/conf/httpd.conf-2013-05-21.bak' 3. Edit main web server Apache configuration file /etc/httpd/conf/httpd.conf - [git change remote origin](https://www.shkodenko.com/git-change-remote-origin/) - Sometimes you need to migrate remote git repository from one server to another. I am using these commands to make migration: [t.shkodenko@server1 git-projects]$ cd project [t.shkodenko@server1 project]$ git remote -v origin git@192.168.1.122:project.git (fetch) origin git@192.168.1.122:project.git (push) [t.shkodenko@server1 project]$ git remote rm origin [t.shkodenko@server1 project]$ git remote add origin git@192.168.1.123:project.git [t.shkodenko@server1 project]$ git config master.remote origin - [How to output configuration file content without comments and empty lines](https://www.shkodenko.com/how-to-output-configuration-file-content-without-comments-and-empty-lines/) - Sometimes working in Linux you may need to output configuration file content without comments and empty lines. In this case you can use command sequence below: cat /etc/my.cnf |grep -v '#' |sed '/^$/d' |more You can replace /etc/my.cnf with another configuration file name and '#' with any other comment mark e.g. ';' or '//' - [Linux: how to find files changed in dates range](https://www.shkodenko.com/linux-how-to-find-files-changed-in-dates-rang/) - Working in Linux you need to find files changed in dates range. To find these files I am using set of commands below: 1. Create file stamp with date range begin: $ touch --date "2012-11-01" ~/tmp/2012-11-01.txt 2. Create file stamp with date range end: $ touch --date "2012-11-10" ~/tmp/2012-11-10.txt 3. Find all files in user - [Linux: how to kill hanged process](https://www.shkodenko.com/linux-how-to-kill-hanged-process/) - Sometimes, when I am working on Linux, some programs are hanging system, so further work is impossible. I am using this set of commands to find out PID and other data of hanged process in good readable format (KeePass as example): $ ps aux |head -n 1; ps aux |grep -v grep |grep -i pass - [Linux log out ssh user automatically](https://www.shkodenko.com/linux-log-out-ssh-user-automatically/) - To log out ssh user automatically add the TMOUT variable to your /etc/bashrc configuration file using your favorite editor. Mine is vim: # vim /etc/bashrc # Set TMOUT to 600 seconds (10 minuets): TMOUT=300 - [Linux mount Windows samba share](https://www.shkodenko.com/linux-mount-windows-samba-share/) - To mount Windows samba share on Linux: 1. Log in as root administrator user. 2. Create mount point: # mkdir -pv /mnt/share_name 3. Mount share to it using command: # mount -t cifs -o username=User,password=Password //192.168.0.123/share_name /mnt/share_name 4. Use files from Windows share located in /mnt/share_name Note, User should have access to Windows share //192.168.0.123/share_name - [Linux cksum print CRC checksum and byte counts of each FILE](https://www.shkodenko.com/linux-cksum-print-crc-checksum-and-byte-counts-of-each-file/) - When you need to print CRC checksum and byte count for file in Linux use cksum command. Sample usage: $ cksum /home/taras/file.txt 1913889276 220 /home/taras/file.txt Where: - 1913889276 - CRC checksum; - 220 - size in bytes; - /home/taras/file.txt - file name. - [Android 4 or later how to take screenshot](https://www.shkodenko.com/android-4-or-later-how-to-take-screenshot/) - To take screenshot on Android 4 or later press and hold the Volume Down and Power buttons at the same time. - [MySQL error: failed to connect to server on 'xxx.yyy.zzz.aaa' (113)](https://www.shkodenko.com/mysql-error-failed-to-connect-to-server-on-113/) - Sometimes using MySQL Workbench I am getting this kind of errors: Failed to Connect to MySQL at xxx.yyy.zzz.aaa:3306 with user db_user Can't connect to MySQL server on 'xxx.yyy.zzz.aaa' (113) To fix it add configuration directive: skip_name_resolve = off to main MySQL configuration file /etc/my.cnf using your favorite text editor (mine is Vim). to section [mysqld] - [Hello, all!](https://www.shkodenko.com/hello-world/) - Welcome to my little online world. This is my first post. I will edit but not delete this post. Because this one will remind me exact day then I have start blogging here! ## Pages - [Privacy Policy](https://www.shkodenko.com/privacy-policy/) - Who We Are We are team of authors of blog https://www.shkodenko.com. Our blog is operated by an individual content creator Taras Shkodenko, and you can reach out via email or the contact forms on the website. What Personal Data We Collect and Why We Collect It We collect various types of personal data from visitors, - [PHP Mentorship Program](https://www.shkodenko.com/php-mentorship-program/) - Welcome to Our PHP Mentorship Program! Unlock Your Full Potential as a Senior PHP Developer! Are you ready to elevate your skills from a middle-level PHP developer to a senior-level expert? Join our exclusive PHP Mentorship Program, designed specifically for developers who aspire to deepen their understanding and master the complexities of PHP development. Why - [Drawing](https://www.shkodenko.com/drawing/) - Follow me and like my drawings, illustrations and graphic artworks at http://instagram.com/sh_taras Could you support my art activity by donating on Patreon? Support my art by purchasing prints & originals on DeviantArt website on my page: http://shtaras.deviantart.com You can also check my drawings on Pinterest: http://pinterest.com/podlom Find my drawings, illustrations and graphic artworks at My - [About](https://www.shkodenko.com/about/) - My name is Taras Shkodenko. I am an experienced web developer. This blog is about things related to web development and Linux system administration in English. I hope you will enjoy this information. Could you add some comments with proposals on how to make this blog more interesting? Please, let me know if you will ## Categories - [Uncategorized](https://www.shkodenko.com/category/uncategorized/) - [Linux](https://www.shkodenko.com/category/server-configuration/linux/) - [PHP](https://www.shkodenko.com/category/php/) - [MySQL | MariaDB](https://www.shkodenko.com/category/databases/mysql/) - [Apache](https://www.shkodenko.com/category/server-configuration/apache/) - [Plesk](https://www.shkodenko.com/category/server-configuration/plesk/) - [Drupal](https://www.shkodenko.com/category/php/drupal/) - [WordPress](https://www.shkodenko.com/category/cms/wordpress/) - [Server configuration](https://www.shkodenko.com/category/server-configuration/) - [Magento](https://www.shkodenko.com/category/php/magento/) - [Nginx](https://www.shkodenko.com/category/server-configuration/nginx/) - [Git](https://www.shkodenko.com/category/server-configuration/git/) - [Pimcore CMS](https://www.shkodenko.com/category/cms/pimcore-cms/) - [CMS](https://www.shkodenko.com/category/cms/) - [Symfony](https://www.shkodenko.com/category/php/symfony/) - [Docker](https://www.shkodenko.com/category/server-configuration/docker/) - [Yii2](https://www.shkodenko.com/category/php/yii2/) - [PostgreSQL](https://www.shkodenko.com/category/databases/postgresql/) - [Laravel](https://www.shkodenko.com/category/php/laravel/) - [Lean](https://www.shkodenko.com/category/lean/) - [Databases](https://www.shkodenko.com/category/databases/) - [macOs](https://www.shkodenko.com/category/server-configuration/macos/) ## Tags - [Linux](https://www.shkodenko.com/tag/linux/) - [sed](https://www.shkodenko.com/tag/sed/) - [ProFTPD](https://www.shkodenko.com/tag/proftpd/) - ProFTPD Highly configurable GPL-licensed FTP server software - [sh](https://www.shkodenko.com/tag/sh/) - [bash](https://www.shkodenko.com/tag/bash/) - [shell](https://www.shkodenko.com/tag/shell/) - [script](https://www.shkodenko.com/tag/script/) - [rpm](https://www.shkodenko.com/tag/rpm/) - [xinetd](https://www.shkodenko.com/tag/xinetd/) - [cPanel](https://www.shkodenko.com/tag/cpanel/) - [WHM](https://www.shkodenko.com/tag/whm/) - [grep](https://www.shkodenko.com/tag/grep/) - [mysqldump](https://www.shkodenko.com/tag/mysqldump/) - [tar](https://www.shkodenko.com/tag/tar/) - [sha1sum](https://www.shkodenko.com/tag/sha1sum/) - [PHP](https://www.shkodenko.com/tag/php/) - [Security](https://www.shkodenko.com/tag/security/) - [.htaccess](https://www.shkodenko.com/tag/htaccess/) - [named](https://www.shkodenko.com/tag/named/) - [bind](https://www.shkodenko.com/tag/bind/) - [VSFTPD](https://www.shkodenko.com/tag/vsftpd/) - [Magento](https://www.shkodenko.com/tag/magento/) - [Node.JS](https://www.shkodenko.com/tag/node-js/) - [wordpress](https://www.shkodenko.com/tag/wordpress-2/) - [unzip](https://www.shkodenko.com/tag/unzip/) - [zip](https://www.shkodenko.com/tag/zip/) - [jar](https://www.shkodenko.com/tag/jar/) - [java](https://www.shkodenko.com/tag/java/) - [apachectl](https://www.shkodenko.com/tag/apachectl/) - [ssh](https://www.shkodenko.com/tag/ssh/) - [proxy](https://www.shkodenko.com/tag/proxy/) - [lsof](https://www.shkodenko.com/tag/lsof/) - [git](https://www.shkodenko.com/tag/git/) - [remote](https://www.shkodenko.com/tag/remote/) - [IPTables](https://www.shkodenko.com/tag/iptables/) - [firewall](https://www.shkodenko.com/tag/firewall/) - [service](https://www.shkodenko.com/tag/service/) - [openssl](https://www.shkodenko.com/tag/openssl/) - [csr](https://www.shkodenko.com/tag/csr/) - [crt](https://www.shkodenko.com/tag/crt/) - [backup](https://www.shkodenko.com/tag/backup/) - [archive](https://www.shkodenko.com/tag/archive/) - [localtime](https://www.shkodenko.com/tag/localtime/) - [time](https://www.shkodenko.com/tag/time/) - [timezone](https://www.shkodenko.com/tag/timezone/) - [dig](https://www.shkodenko.com/tag/dig/) - [sslv3](https://www.shkodenko.com/tag/sslv3/) - [poodle](https://www.shkodenko.com/tag/poodle/) - [openssh](https://www.shkodenko.com/tag/openssh/) - [ssh-keygen](https://www.shkodenko.com/tag/ssh-keygen/) - [pear](https://www.shkodenko.com/tag/pear/) - [drush](https://www.shkodenko.com/tag/drush/) - [id](https://www.shkodenko.com/tag/id/) - [usermod](https://www.shkodenko.com/tag/usermod/) - [groups](https://www.shkodenko.com/tag/groups/) - [block](https://www.shkodenko.com/tag/block/) - [unblock](https://www.shkodenko.com/tag/unblock/) - [ip](https://www.shkodenko.com/tag/ip/) - [route](https://www.shkodenko.com/tag/route/) - [mtop](https://www.shkodenko.com/tag/mtop/) - [slow queries](https://www.shkodenko.com/tag/slow-queries/) - [dash](https://www.shkodenko.com/tag/dash/) - [apt-cache](https://www.shkodenko.com/tag/apt-cache/) - [dpkg](https://www.shkodenko.com/tag/dpkg/) - [vim](https://www.shkodenko.com/tag/vim/) - [conf](https://www.shkodenko.com/tag/conf/) - [FastCGI](https://www.shkodenko.com/tag/fastcgi/) - [nfs](https://www.shkodenko.com/tag/nfs/) - [shared](https://www.shkodenko.com/tag/shared/) - [network](https://www.shkodenko.com/tag/network/) - [filesystem](https://www.shkodenko.com/tag/filesystem/) - [tomcat](https://www.shkodenko.com/tag/tomcat/) - [ssl](https://www.shkodenko.com/tag/ssl/) - [yum](https://www.shkodenko.com/tag/yum/) - [downloadonly](https://www.shkodenko.com/tag/downloadonly/) - [plugin](https://www.shkodenko.com/tag/plugin/) - [mount](https://www.shkodenko.com/tag/mount/) - [umount](https://www.shkodenko.com/tag/umount/) - [sudo](https://www.shkodenko.com/tag/sudo/) - [davfs2](https://www.shkodenko.com/tag/davfs2/) - [nginx](https://www.shkodenko.com/tag/nginx/) - [ulimit](https://www.shkodenko.com/tag/ulimit/) - [limits](https://www.shkodenko.com/tag/limits/) - [Odin](https://www.shkodenko.com/tag/odin/) - [rkhunter](https://www.shkodenko.com/tag/rkhunter/) - [anti-malware](https://www.shkodenko.com/tag/anti-malware/) - [antivirus](https://www.shkodenko.com/tag/antivirus/) - [maldet](https://www.shkodenko.com/tag/maldet/) - [certificate](https://www.shkodenko.com/tag/certificate/) - [genkey](https://www.shkodenko.com/tag/genkey/) - [MySQL](https://www.shkodenko.com/tag/mysql/) - [Apache](https://www.shkodenko.com/tag/apache/) - [Plesk](https://www.shkodenko.com/tag/plesk/) - [fail2ban](https://www.shkodenko.com/tag/fail2ban/) - [Drupal](https://www.shkodenko.com/tag/drupal/) - [GROUP_CONCAT](https://www.shkodenko.com/tag/group_concat/) - [array_walk_recursive](https://www.shkodenko.com/tag/array_walk_recursive/) - [anonymous function](https://www.shkodenko.com/tag/anonymous-function/) - [pass variable by reference](https://www.shkodenko.com/tag/pass-variable-by-reference/) - [wp-cli](https://www.shkodenko.com/tag/wp-cli/) - [update](https://www.shkodenko.com/tag/update/) - [shortcode](https://www.shkodenko.com/tag/shortcode/) - [custom fields](https://www.shkodenko.com/tag/custom-fields/) - [APC](https://www.shkodenko.com/tag/apc/) - [diff](https://www.shkodenko.com/tag/diff/) - [syntax](https://www.shkodenko.com/tag/syntax/) - [check](https://www.shkodenko.com/tag/check/) - [cat](https://www.shkodenko.com/tag/cat/) - [xargs](https://www.shkodenko.com/tag/xargs/) - [for](https://www.shkodenko.com/tag/for/) - [loop](https://www.shkodenko.com/tag/loop/) - [Yii2](https://www.shkodenko.com/tag/yii2/) - [console](https://www.shkodenko.com/tag/console/) - [web](https://www.shkodenko.com/tag/web/) - [server](https://www.shkodenko.com/tag/server/) - [index](https://www.shkodenko.com/tag/index/) - [ignore](https://www.shkodenko.com/tag/ignore/) - [changes](https://www.shkodenko.com/tag/changes/) - [configuration](https://www.shkodenko.com/tag/configuration/) - [passwords](https://www.shkodenko.com/tag/passwords/) - [Pimcore](https://www.shkodenko.com/tag/pimcore/) - [CMS](https://www.shkodenko.com/tag/cms/) - [Symfony](https://www.shkodenko.com/tag/symfony/) - [composer](https://www.shkodenko.com/tag/composer/) - [SQL](https://www.shkodenko.com/tag/sql/) - [patch](https://www.shkodenko.com/tag/patch/) - [apply](https://www.shkodenko.com/tag/apply/) - [ubuntu](https://www.shkodenko.com/tag/ubuntu/) - [wp](https://www.shkodenko.com/tag/wp/) - [commit](https://www.shkodenko.com/tag/commit/) - [docker](https://www.shkodenko.com/tag/docker/) - [ITVDN](https://www.shkodenko.com/tag/itvdn/) - [twig](https://www.shkodenko.com/tag/twig/) - [function](https://www.shkodenko.com/tag/function/) - [tee](https://www.shkodenko.com/tag/tee/) - [ffmpeg](https://www.shkodenko.com/tag/ffmpeg/) - [mp3](https://www.shkodenko.com/tag/mp3/) - [aac](https://www.shkodenko.com/tag/aac/) - [WebDevelopment](https://www.shkodenko.com/tag/webdevelopment/) - [development](https://www.shkodenko.com/tag/development/) - [programming](https://www.shkodenko.com/tag/programming/) - [community](https://www.shkodenko.com/tag/community/) - [PHPDinos](https://www.shkodenko.com/tag/phpdinos/) - [PHP_Dinos](https://www.shkodenko.com/tag/php_dinos/) - [telegram](https://www.shkodenko.com/tag/telegram/) - [channel](https://www.shkodenko.com/tag/channel/) - [date](https://www.shkodenko.com/tag/date/) - [array](https://www.shkodenko.com/tag/array/) - [swap](https://www.shkodenko.com/tag/swap/) - [password](https://www.shkodenko.com/tag/password/) - [teamviewer](https://www.shkodenko.com/tag/teamviewer/) - [install](https://www.shkodenko.com/tag/install/) - [software](https://www.shkodenko.com/tag/software/) - [Laravel](https://www.shkodenko.com/tag/laravel/) - [production](https://www.shkodenko.com/tag/production/) - [envinronment](https://www.shkodenko.com/tag/envinronment/) - [best practices](https://www.shkodenko.com/tag/best-practices/) - [find](https://www.shkodenko.com/tag/find/) - [mtime](https://www.shkodenko.com/tag/mtime/) - [reset](https://www.shkodenko.com/tag/reset/) - [show](https://www.shkodenko.com/tag/show/) - [view](https://www.shkodenko.com/tag/view/) - [lib](https://www.shkodenko.com/tag/lib/) - [history](https://www.shkodenko.com/tag/history/) - [clean](https://www.shkodenko.com/tag/clean/) - [more](https://www.shkodenko.com/tag/more/) - [log](https://www.shkodenko.com/tag/log/) - [compare](https://www.shkodenko.com/tag/compare/) - [directory](https://www.shkodenko.com/tag/directory/) - [combine](https://www.shkodenko.com/tag/combine/) - [audio](https://www.shkodenko.com/tag/audio/) - [echo](https://www.shkodenko.com/tag/echo/) - [print](https://www.shkodenko.com/tag/print/) - [unchanged](https://www.shkodenko.com/tag/unchanged/) - [gimp](https://www.shkodenko.com/tag/gimp/) - [psd](https://www.shkodenko.com/tag/psd/) - [convert](https://www.shkodenko.com/tag/convert/) - [cmyk](https://www.shkodenko.com/tag/cmyk/) - [rgb](https://www.shkodenko.com/tag/rgb/) - [imagic](https://www.shkodenko.com/tag/imagic/) - [scripts](https://www.shkodenko.com/tag/scripts/) - [set](https://www.shkodenko.com/tag/set/) - [options](https://www.shkodenko.com/tag/options/) - [extract](https://www.shkodenko.com/tag/extract/) - [video](https://www.shkodenko.com/tag/video/) - [nice](https://www.shkodenko.com/tag/nice/) - [priority](https://www.shkodenko.com/tag/priority/) - [process](https://www.shkodenko.com/tag/process/) - [management](https://www.shkodenko.com/tag/management/) - [top](https://www.shkodenko.com/tag/top/) - [ps](https://www.shkodenko.com/tag/ps/) - [string](https://www.shkodenko.com/tag/string/) - [ionice](https://www.shkodenko.com/tag/ionice/) - [PostgreSQL](https://www.shkodenko.com/tag/postgresql/) - [Ubuntu 22.04](https://www.shkodenko.com/tag/ubuntu-22-04/) - [pg_dump](https://www.shkodenko.com/tag/pg_dump/) - [PostgreSQL server](https://www.shkodenko.com/tag/postgresql-server/) - [development environment](https://www.shkodenko.com/tag/development-environment/) - [database compatibility](https://www.shkodenko.com/tag/database-compatibility/) - [server version mismatch](https://www.shkodenko.com/tag/server-version-mismatch/) - [.env file](https://www.shkodenko.com/tag/env-file/) - [special characters](https://www.shkodenko.com/tag/special-characters/) - [database password](https://www.shkodenko.com/tag/database-password/) - [configuration management](https://www.shkodenko.com/tag/configuration-management/) - [web development](https://www.shkodenko.com/tag/web-development/) - [Laravel framework](https://www.shkodenko.com/tag/laravel-framework/) - [environment file](https://www.shkodenko.com/tag/environment-file/) - [hash symbol issue](https://www.shkodenko.com/tag/hash-symbol-issue/) - [artisan config clear](https://www.shkodenko.com/tag/artisan-config-clear/) - [Laravel best practices](https://www.shkodenko.com/tag/laravel-best-practices/) - [Laravel tips](https://www.shkodenko.com/tag/laravel-tips/) - [Linux file management](https://www.shkodenko.com/tag/linux-file-management/) - [tee command](https://www.shkodenko.com/tag/tee-command/) - [file append](https://www.shkodenko.com/tag/file-append/) - [sudo privileges](https://www.shkodenko.com/tag/sudo-privileges/) - [echo command](https://www.shkodenko.com/tag/echo-command/) - [system administration](https://www.shkodenko.com/tag/system-administration/) - [Linux commands](https://www.shkodenko.com/tag/linux-commands/) - [Here Document](https://www.shkodenko.com/tag/here-document/) - [SSH configuration](https://www.shkodenko.com/tag/ssh-configuration/) - [command line interface](https://www.shkodenko.com/tag/command-line-interface/) - [file editing](https://www.shkodenko.com/tag/file-editing/) - [superuser access](https://www.shkodenko.com/tag/superuser-access/) - [Linux file permissions](https://www.shkodenko.com/tag/linux-file-permissions/) - [shell scripting](https://www.shkodenko.com/tag/shell-scripting/) - [multi-line input](https://www.shkodenko.com/tag/multi-line-input/) - [Linux tips](https://www.shkodenko.com/tag/linux-tips/) - [user privileges](https://www.shkodenko.com/tag/user-privileges/) - [Linux system files](https://www.shkodenko.com/tag/linux-system-files/) - [terminal commands](https://www.shkodenko.com/tag/terminal-commands/) - [efficient file handling](https://www.shkodenko.com/tag/efficient-file-handling/) - [Linux security](https://www.shkodenko.com/tag/linux-security/) - [Automatic logout](https://www.shkodenko.com/tag/automatic-logout/) - [Bash session timeout](https://www.shkodenko.com/tag/bash-session-timeout/) - [TMOUT variable](https://www.shkodenko.com/tag/tmout-variable/) - [~/.bash_profile](https://www.shkodenko.com/tag/bash_profile/) - [/etc/profile](https://www.shkodenko.com/tag/etc-profile/) - [Bash shell settings](https://www.shkodenko.com/tag/bash-shell-settings/) - [Readonly variable](https://www.shkodenko.com/tag/readonly-variable/) - [Export command](https://www.shkodenko.com/tag/export-command/) - [Session inactivity](https://www.shkodenko.com/tag/session-inactivity/) - [Command line tips](https://www.shkodenko.com/tag/command-line-tips/) - [Linux administration](https://www.shkodenko.com/tag/linux-administration/) - [System security](https://www.shkodenko.com/tag/system-security/) - [Timeout policy](https://www.shkodenko.com/tag/timeout-policy/) - [User session management](https://www.shkodenko.com/tag/user-session-management/) - [API](https://www.shkodenko.com/tag/api/) - [JSON](https://www.shkodenko.com/tag/json/) - [controllers](https://www.shkodenko.com/tag/controllers/) - [custom JSON output](https://www.shkodenko.com/tag/custom-json-output/) - [array manipulation](https://www.shkodenko.com/tag/array-manipulation/) - [array_map function](https://www.shkodenko.com/tag/array_map-function/) - [array_keys](https://www.shkodenko.com/tag/array_keys/) - [array_values](https://www.shkodenko.com/tag/array_values/) - [data transformation](https://www.shkodenko.com/tag/data-transformation/) - [associative array](https://www.shkodenko.com/tag/associative-array/) - [indexed array](https://www.shkodenko.com/tag/indexed-array/) - [backend development](https://www.shkodenko.com/tag/backend-development/) - [PHP programming](https://www.shkodenko.com/tag/php-programming/) - [coding best practices](https://www.shkodenko.com/tag/coding-best-practices/) - [software development](https://www.shkodenko.com/tag/software-development/) - [MVC framework](https://www.shkodenko.com/tag/mvc-framework/) - [server-side scripting](https://www.shkodenko.com/tag/server-side-scripting/) - [web application development](https://www.shkodenko.com/tag/web-application-development/) - [PHP Laravel](https://www.shkodenko.com/tag/php-laravel/) - [API response customization](https://www.shkodenko.com/tag/api-response-customization/) - [Laravel controllers](https://www.shkodenko.com/tag/laravel-controllers/) - [data formatting in PHP](https://www.shkodenko.com/tag/data-formatting-in-php/) - [PHP array functions](https://www.shkodenko.com/tag/php-array-functions/) - [modern web development](https://www.shkodenko.com/tag/modern-web-development/) - [coding efficiency](https://www.shkodenko.com/tag/coding-efficiency/) - [PHP development](https://www.shkodenko.com/tag/php-development/) - [software engineering](https://www.shkodenko.com/tag/software-engineering/) - [program search in Linux](https://www.shkodenko.com/tag/program-search-in-linux/) - [whereis command](https://www.shkodenko.com/tag/whereis-command/) - [find command](https://www.shkodenko.com/tag/find-command/) - [locate command](https://www.shkodenko.com/tag/locate-command/) - [Linux file search](https://www.shkodenko.com/tag/linux-file-search/) - [command line tools](https://www.shkodenko.com/tag/command-line-tools/) - [Linux terminal](https://www.shkodenko.com/tag/linux-terminal/) - [efficient file searching](https://www.shkodenko.com/tag/efficient-file-searching/) - [Linux system administration](https://www.shkodenko.com/tag/linux-system-administration/) - [advanced Linux commands](https://www.shkodenko.com/tag/advanced-linux-commands/) - [command line utilities](https://www.shkodenko.com/tag/command-line-utilities/) - [Linux tutorials](https://www.shkodenko.com/tag/linux-tutorials/) - [Linux user guide](https://www.shkodenko.com/tag/linux-user-guide/) - [file location techniques](https://www.shkodenko.com/tag/file-location-techniques/) - [Linux command line search](https://www.shkodenko.com/tag/linux-command-line-search/) - [Linux file system navigation](https://www.shkodenko.com/tag/linux-file-system-navigation/) - [command line file search](https://www.shkodenko.com/tag/command-line-file-search/) - [Bash scripting](https://www.shkodenko.com/tag/bash-scripting/) - [string manipulation](https://www.shkodenko.com/tag/string-manipulation/) - [parameter expansion](https://www.shkodenko.com/tag/parameter-expansion/) - [removing characters](https://www.shkodenko.com/tag/removing-characters/) - [Linux shell](https://www.shkodenko.com/tag/linux-shell/) - [command line techniques](https://www.shkodenko.com/tag/command-line-techniques/) - [shell programming](https://www.shkodenko.com/tag/shell-programming/) - [Bash variables](https://www.shkodenko.com/tag/bash-variables/) - [string processing](https://www.shkodenko.com/tag/string-processing/) - [substring extraction](https://www.shkodenko.com/tag/substring-extraction/) - [sed command](https://www.shkodenko.com/tag/sed-command/) - [script optimization](https://www.shkodenko.com/tag/script-optimization/) - [programming tips](https://www.shkodenko.com/tag/programming-tips/) - [Bash syntax](https://www.shkodenko.com/tag/bash-syntax/) - [shell scripting examples](https://www.shkodenko.com/tag/shell-scripting-examples/) - [FTP account](https://www.shkodenko.com/tag/ftp-account/) - [subfolder access](https://www.shkodenko.com/tag/subfolder-access/) - [Linux server](https://www.shkodenko.com/tag/linux-server/) - [user management](https://www.shkodenko.com/tag/user-management/) - [permissions](https://www.shkodenko.com/tag/permissions/) - [useradd command](https://www.shkodenko.com/tag/useradd-command/) - [passwd command](https://www.shkodenko.com/tag/passwd-command/) - [password generator](https://www.shkodenko.com/tag/password-generator/) - [access control](https://www.shkodenko.com/tag/access-control/) - [server administration](https://www.shkodenko.com/tag/server-administration/) - [FTP access](https://www.shkodenko.com/tag/ftp-access/) - [user authentication](https://www.shkodenko.com/tag/user-authentication/) - [user accounts](https://www.shkodenko.com/tag/user-accounts/) - [user permissions](https://www.shkodenko.com/tag/user-permissions/) - [Red Hat-like Linux systems](https://www.shkodenko.com/tag/red-hat-like-linux-systems/) - [Red Hat Enterprise Linux](https://www.shkodenko.com/tag/red-hat-enterprise-linux/) - [CentOS](https://www.shkodenko.com/tag/centos/) - [Fedora](https://www.shkodenko.com/tag/fedora/) - [/sbin/chkconfig command](https://www.shkodenko.com/tag/sbin-chkconfig-command/) - [service management](https://www.shkodenko.com/tag/service-management/) - [Network File System](https://www.shkodenko.com/tag/network-file-system/) - [enable service](https://www.shkodenko.com/tag/enable-service/) - [disable service](https://www.shkodenko.com/tag/disable-service/) - [runlevels](https://www.shkodenko.com/tag/runlevels/) - [autoloading](https://www.shkodenko.com/tag/autoloading/) - [service status](https://www.shkodenko.com/tag/service-status/) - [/sbin/service command](https://www.shkodenko.com/tag/sbin-service-command/) - [start](https://www.shkodenko.com/tag/start/) - [stop](https://www.shkodenko.com/tag/stop/) - [restart](https://www.shkodenko.com/tag/restart/) - [reload](https://www.shkodenko.com/tag/reload/) - [force-reload](https://www.shkodenko.com/tag/force-reload/) - [condrestart](https://www.shkodenko.com/tag/condrestart/) - [try-restart](https://www.shkodenko.com/tag/try-restart/) - [condstop](https://www.shkodenko.com/tag/condstop/) - [SSL certificate](https://www.shkodenko.com/tag/ssl-certificate/) - [self-signed certificate](https://www.shkodenko.com/tag/self-signed-certificate/) - [web server](https://www.shkodenko.com/tag/web-server/) - [virtual host](https://www.shkodenko.com/tag/virtual-host/) - [SSL configuration](https://www.shkodenko.com/tag/ssl-configuration/) - [SSL key](https://www.shkodenko.com/tag/ssl-key/) - [SSL CSR](https://www.shkodenko.com/tag/ssl-csr/) - [SSL command](https://www.shkodenko.com/tag/ssl-command/) - [SSL syntax](https://www.shkodenko.com/tag/ssl-syntax/) - [SSL verification](https://www.shkodenko.com/tag/ssl-verification/) - [SSL setup](https://www.shkodenko.com/tag/ssl-setup/) - [SSL restart](https://www.shkodenko.com/tag/ssl-restart/) - [SSL encryption](https://www.shkodenko.com/tag/ssl-encryption/) - [SSL security](https://www.shkodenko.com/tag/ssl-security/) - [HTTPS](https://www.shkodenko.com/tag/https/) - [SSL tutorial](https://www.shkodenko.com/tag/ssl-tutorial/) - [SSL guide](https://www.shkodenko.com/tag/ssl-guide/) - [SSL generation](https://www.shkodenko.com/tag/ssl-generation/) - [SSL generation command](https://www.shkodenko.com/tag/ssl-generation-command/) - [SSL certificate setup](https://www.shkodenko.com/tag/ssl-certificate-setup/) - [SSL certificate configuration](https://www.shkodenko.com/tag/ssl-certificate-configuration/) - [SSL certificate installation](https://www.shkodenko.com/tag/ssl-certificate-installation/) - [SSL certificate management](https://www.shkodenko.com/tag/ssl-certificate-management/) - [SSL certificate expiration](https://www.shkodenko.com/tag/ssl-certificate-expiration/) - [SSL certificate renewal](https://www.shkodenko.com/tag/ssl-certificate-renewal/) - [SSL certificate validity](https://www.shkodenko.com/tag/ssl-certificate-validity/) - [SSL certificate authority](https://www.shkodenko.com/tag/ssl-certificate-authority/) - [SSL certificate signing](https://www.shkodenko.com/tag/ssl-certificate-signing/) - [SSL certificate best practices](https://www.shkodenko.com/tag/ssl-certificate-best-practices/) - [Ubuntu Linux](https://www.shkodenko.com/tag/ubuntu-linux/) - [network monitoring](https://www.shkodenko.com/tag/network-monitoring/) - [IP addresses](https://www.shkodenko.com/tag/ip-addresses/) - [requests](https://www.shkodenko.com/tag/requests/) - [netstat](https://www.shkodenko.com/tag/netstat/) - [tcpdump](https://www.shkodenko.com/tag/tcpdump/) - [iftop](https://www.shkodenko.com/tag/iftop/) - [network security](https://www.shkodenko.com/tag/network-security/) - [packet analysis](https://www.shkodenko.com/tag/packet-analysis/) - [resource consumption](https://www.shkodenko.com/tag/resource-consumption/) - [network traffic](https://www.shkodenko.com/tag/network-traffic/) - [cyber attacks](https://www.shkodenko.com/tag/cyber-attacks/) - [request limiting](https://www.shkodenko.com/tag/request-limiting/) - [IP-based restrictions](https://www.shkodenko.com/tag/ip-based-restrictions/) - [RHEL](https://www.shkodenko.com/tag/rhel/) - [IP address](https://www.shkodenko.com/tag/ip-address/) - [port 80](https://www.shkodenko.com/tag/port-80/) - [connlimit module](https://www.shkodenko.com/tag/connlimit-module/) - [TCP reset](https://www.shkodenko.com/tag/tcp-reset/) - [server stability](https://www.shkodenko.com/tag/server-stability/) - [cybersecurity](https://www.shkodenko.com/tag/cybersecurity/) - [defense mechanisms](https://www.shkodenko.com/tag/defense-mechanisms/) - [web infrastructure](https://www.shkodenko.com/tag/web-infrastructure/) - [file count](https://www.shkodenko.com/tag/file-count/) - [folder management](https://www.shkodenko.com/tag/folder-management/) - [command line](https://www.shkodenko.com/tag/command-line/) - [ls command](https://www.shkodenko.com/tag/ls-command/) - [wc command](https://www.shkodenko.com/tag/wc-command/) - [Perl scripting](https://www.shkodenko.com/tag/perl-scripting/) - [file organization](https://www.shkodenko.com/tag/file-organization/) - [efficiency](https://www.shkodenko.com/tag/efficiency/) - [directory handling](https://www.shkodenko.com/tag/directory-handling/) - [file management](https://www.shkodenko.com/tag/file-management/) - [large file sets](https://www.shkodenko.com/tag/large-file-sets/) - [scripting languages](https://www.shkodenko.com/tag/scripting-languages/) - [Perl](https://www.shkodenko.com/tag/perl/) - [directory navigation](https://www.shkodenko.com/tag/directory-navigation/) - [productivity tips](https://www.shkodenko.com/tag/productivity-tips/) - [PGP keys](https://www.shkodenko.com/tag/pgp-keys/) - [phpStorm IDE](https://www.shkodenko.com/tag/phpstorm-ide/) - [encryption](https://www.shkodenko.com/tag/encryption/) - [GnuPG](https://www.shkodenko.com/tag/gnupg/) - [version control](https://www.shkodenko.com/tag/version-control/) - [signing commits](https://www.shkodenko.com/tag/signing-commits/) - [encrypting files](https://www.shkodenko.com/tag/encrypting-files/) - [verifying signatures](https://www.shkodenko.com/tag/verifying-signatures/) - [data protection](https://www.shkodenko.com/tag/data-protection/) - [developer workflow](https://www.shkodenko.com/tag/developer-workflow/) - [sensitive information](https://www.shkodenko.com/tag/sensitive-information/) - [confidentiality](https://www.shkodenko.com/tag/confidentiality/) - [integrity](https://www.shkodenko.com/tag/integrity/) - [digital security](https://www.shkodenko.com/tag/digital-security/) - [encryption keys](https://www.shkodenko.com/tag/encryption-keys/) - [key generation](https://www.shkodenko.com/tag/key-generation/) - [secure communication](https://www.shkodenko.com/tag/secure-communication/) - [secure coding practices](https://www.shkodenko.com/tag/secure-coding-practices/) - [password storage](https://www.shkodenko.com/tag/password-storage/) - [pass](https://www.shkodenko.com/tag/pass/) - [error resolution](https://www.shkodenko.com/tag/error-resolution/) - [GPG key](https://www.shkodenko.com/tag/gpg-key/) - [secure password management](https://www.shkodenko.com/tag/secure-password-management/) - [initializing pass](https://www.shkodenko.com/tag/initializing-pass/) - [Docker credential helper](https://www.shkodenko.com/tag/docker-credential-helper/) - [command line instructions](https://www.shkodenko.com/tag/command-line-instructions/) - [software development tools](https://www.shkodenko.com/tag/software-development-tools/) - [Docker-credential-pass list](https://www.shkodenko.com/tag/docker-credential-pass-list/) - [password store](https://www.shkodenko.com/tag/password-store/) - [pass initialization](https://www.shkodenko.com/tag/pass-initialization/) - [~/.docker/config.json](https://www.shkodenko.com/tag/docker-config-json/) - [credsStore](https://www.shkodenko.com/tag/credsstore/) - [Docker configuration](https://www.shkodenko.com/tag/docker-configuration/) - [troubleshooting Docker](https://www.shkodenko.com/tag/troubleshooting-docker/) - [secure credentials storage](https://www.shkodenko.com/tag/secure-credentials-storage/) - [passphrase management](https://www.shkodenko.com/tag/passphrase-management/) - [GPG key listing](https://www.shkodenko.com/tag/gpg-key-listing/) - [pass insert](https://www.shkodenko.com/tag/pass-insert/) - [password management best practices](https://www.shkodenko.com/tag/password-management-best-practices/) - [Docker setup](https://www.shkodenko.com/tag/docker-setup/) - [developer tools](https://www.shkodenko.com/tag/developer-tools/) - [CLI tools](https://www.shkodenko.com/tag/cli-tools/) - [Docker secrets management](https://www.shkodenko.com/tag/docker-secrets-management/) - [process management](https://www.shkodenko.com/tag/process-management/) - [kill command](https://www.shkodenko.com/tag/kill-command/) - [SIGKILL](https://www.shkodenko.com/tag/sigkill/) - [httpd processes](https://www.shkodenko.com/tag/httpd-processes/) - [process termination](https://www.shkodenko.com/tag/process-termination/) - [PID](https://www.shkodenko.com/tag/pid/) - [grep command](https://www.shkodenko.com/tag/grep-command/) - [SIGTERM](https://www.shkodenko.com/tag/sigterm/) - [process handling](https://www.shkodenko.com/tag/process-handling/) - [automation script](https://www.shkodenko.com/tag/automation-script/) - [system resources](https://www.shkodenko.com/tag/system-resources/) - [unresponsive applications](https://www.shkodenko.com/tag/unresponsive-applications/) - [process cleanup](https://www.shkodenko.com/tag/process-cleanup/) - [command explanation](https://www.shkodenko.com/tag/command-explanation/) - [script customization](https://www.shkodenko.com/tag/script-customization/) - [process monitoring](https://www.shkodenko.com/tag/process-monitoring/) - [ps command](https://www.shkodenko.com/tag/ps-command/) - [Apache web server](https://www.shkodenko.com/tag/apache-web-server/) - [Linux utilities](https://www.shkodenko.com/tag/linux-utilities/) - [server management](https://www.shkodenko.com/tag/server-management/) - [process ID](https://www.shkodenko.com/tag/process-id/) - [CPU usage](https://www.shkodenko.com/tag/cpu-usage/) - [memory usage](https://www.shkodenko.com/tag/memory-usage/) - [process status](https://www.shkodenko.com/tag/process-status/) - [command line examples](https://www.shkodenko.com/tag/command-line-examples/) - [troubleshooting Linux](https://www.shkodenko.com/tag/troubleshooting-linux/) - [managing web servers](https://www.shkodenko.com/tag/managing-web-servers/) - [UNIX commands](https://www.shkodenko.com/tag/unix-commands/) - [Linux server monitoring](https://www.shkodenko.com/tag/linux-server-monitoring/) - [Apache httpd](https://www.shkodenko.com/tag/apache-httpd/) - [technical blogging](https://www.shkodenko.com/tag/technical-blogging/) - [Linux commands tutorial](https://www.shkodenko.com/tag/linux-commands-tutorial/) - [database seeding](https://www.shkodenko.com/tag/database-seeding/) - [PHP artisan](https://www.shkodenko.com/tag/php-artisan/) - [Laravel seeder](https://www.shkodenko.com/tag/laravel-seeder/) - [db:seed command](https://www.shkodenko.com/tag/dbseed-command/) - [database setup](https://www.shkodenko.com/tag/database-setup/) - [development tools](https://www.shkodenko.com/tag/development-tools/) - [data population](https://www.shkodenko.com/tag/data-population/) - [initial data loading](https://www.shkodenko.com/tag/initial-data-loading/) - [Laravel development](https://www.shkodenko.com/tag/laravel-development/) - [Laravel tutorial](https://www.shkodenko.com/tag/laravel-tutorial/) - [manual seeding](https://www.shkodenko.com/tag/manual-seeding/) - [database migration](https://www.shkodenko.com/tag/database-migration/) - [seeding best practices](https://www.shkodenko.com/tag/seeding-best-practices/) - [Laravel database management](https://www.shkodenko.com/tag/laravel-database-management/) - [test data](https://www.shkodenko.com/tag/test-data/) - [production environment setup](https://www.shkodenko.com/tag/production-environment-setup/) - [CSV handling](https://www.shkodenko.com/tag/csv-handling/) - [file reading](https://www.shkodenko.com/tag/file-reading/) - [file writing](https://www.shkodenko.com/tag/file-writing/) - [data management](https://www.shkodenko.com/tag/data-management/) - [error handling](https://www.shkodenko.com/tag/error-handling/) - [exceptions in PHP](https://www.shkodenko.com/tag/exceptions-in-php/) - [CSV file manipulation](https://www.shkodenko.com/tag/csv-file-manipulation/) - [data import](https://www.shkodenko.com/tag/data-import/) - [data export](https://www.shkodenko.com/tag/data-export/) - [PHP exceptions](https://www.shkodenko.com/tag/php-exceptions/) - [data processing](https://www.shkodenko.com/tag/data-processing/) - [CSV errors](https://www.shkodenko.com/tag/csv-errors/) - [efficient data handling](https://www.shkodenko.com/tag/efficient-data-handling/) - [PHP scripts](https://www.shkodenko.com/tag/php-scripts/) - [reading CSV in PHP](https://www.shkodenko.com/tag/reading-csv-in-php/) - [writing CSV in PHP](https://www.shkodenko.com/tag/writing-csv-in-php/) - [handling large data sets](https://www.shkodenko.com/tag/handling-large-data-sets/) - [PHP data functions](https://www.shkodenko.com/tag/php-data-functions/) - [exception handling in PHP](https://www.shkodenko.com/tag/exception-handling-in-php/) - [Code Sniffer](https://www.shkodenko.com/tag/code-sniffer/) - [coding standards](https://www.shkodenko.com/tag/coding-standards/) - [PHP testing](https://www.shkodenko.com/tag/php-testing/) - [code quality](https://www.shkodenko.com/tag/code-quality/) - [PHP code analysis](https://www.shkodenko.com/tag/php-code-analysis/) - [Ubuntu for developers](https://www.shkodenko.com/tag/ubuntu-for-developers/) - [ImageMagick](https://www.shkodenko.com/tag/imagemagick/) - [dwebp](https://www.shkodenko.com/tag/dwebp/) - [WebP to PNG](https://www.shkodenko.com/tag/webp-to-png/) - [WebP to JPEG](https://www.shkodenko.com/tag/webp-to-jpeg/) - [Linux image conversion](https://www.shkodenko.com/tag/linux-image-conversion/) - [convert WebP images](https://www.shkodenko.com/tag/convert-webp-images/) - [Linux shell script](https://www.shkodenko.com/tag/linux-shell-script/) - [batch image conversion](https://www.shkodenko.com/tag/batch-image-conversion/) - [image processing on Linux](https://www.shkodenko.com/tag/image-processing-on-linux/) - [WebP tools](https://www.shkodenko.com/tag/webp-tools/) - [warnings](https://www.shkodenko.com/tag/warnings/) - [Windows](https://www.shkodenko.com/tag/windows/) - [working copy](https://www.shkodenko.com/tag/working-copy/) - [database](https://www.shkodenko.com/tag/database/) - [migrations](https://www.shkodenko.com/tag/migrations/) - [LF](https://www.shkodenko.com/tag/lf/) - [CRLF](https://www.shkodenko.com/tag/crlf/) - [line endings](https://www.shkodenko.com/tag/line-endings/) - [configure](https://www.shkodenko.com/tag/configure/) - [preference](https://www.shkodenko.com/tag/preference/) - [global](https://www.shkodenko.com/tag/global/) - [core.autocrlf](https://www.shkodenko.com/tag/core-autocrlf/) - [input](https://www.shkodenko.com/tag/input/) - [checkout](https://www.shkodenko.com/tag/checkout/) - [suppress](https://www.shkodenko.com/tag/suppress/) - [specific](https://www.shkodenko.com/tag/specific/) - [.gitattributes](https://www.shkodenko.com/tag/gitattributes/) - [repository](https://www.shkodenko.com/tag/repository/) - [PHP files](https://www.shkodenko.com/tag/php-files/) - [collaboration](https://www.shkodenko.com/tag/collaboration/) - [workflow](https://www.shkodenko.com/tag/workflow/) - [declare(strict_types=1)](https://www.shkodenko.com/tag/declarestrict_types1/) - [strict typing](https://www.shkodenko.com/tag/strict-typing/) - [type checking](https://www.shkodenko.com/tag/type-checking/) - [PHP strict types](https://www.shkodenko.com/tag/php-strict-types/) - [type coercion](https://www.shkodenko.com/tag/type-coercion/) - [type safety](https://www.shkodenko.com/tag/type-safety/) - [PHP best practices](https://www.shkodenko.com/tag/php-best-practices/) - [PHP type errors](https://www.shkodenko.com/tag/php-type-errors/) - [PHP functions](https://www.shkodenko.com/tag/php-functions/) - [PHP classes](https://www.shkodenko.com/tag/php-classes/) - [PHP type conversion](https://www.shkodenko.com/tag/php-type-conversion/) - [upgrading Laravel](https://www.shkodenko.com/tag/upgrading-laravel/) - [Laravel 10.x to 11.x](https://www.shkodenko.com/tag/laravel-10-x-to-11-x/) - [Composer libraries](https://www.shkodenko.com/tag/composer-libraries/) - [compatibility issues](https://www.shkodenko.com/tag/compatibility-issues/) - [hedii/laravel-gelf-logger](https://www.shkodenko.com/tag/hedii-laravel-gelf-logger/) - [barryvdh/laravel-ide-helper](https://www.shkodenko.com/tag/barryvdh-laravel-ide-helper/) - [Laravel upgrade](https://www.shkodenko.com/tag/laravel-upgrade/) - [remove incompatible libraries](https://www.shkodenko.com/tag/remove-incompatible-libraries/) - [composer remove](https://www.shkodenko.com/tag/composer-remove/) - [composer update](https://www.shkodenko.com/tag/composer-update/) - [composer require](https://www.shkodenko.com/tag/composer-require/) - [Laravel application](https://www.shkodenko.com/tag/laravel-application/) - [Laravel compatibility](https://www.shkodenko.com/tag/laravel-compatibility/) - [Laravel 11.x](https://www.shkodenko.com/tag/laravel-11-x/) - [upgrade Laravel](https://www.shkodenko.com/tag/upgrade-laravel/) - [Laravel transition](https://www.shkodenko.com/tag/laravel-transition/) - [Laravel community](https://www.shkodenko.com/tag/laravel-community/) - [Laravel support](https://www.shkodenko.com/tag/laravel-support/) - [Lean certification](https://www.shkodenko.com/tag/lean-certification/) - [Lean White Belt](https://www.shkodenko.com/tag/lean-white-belt/) - [Lean Yellow Belt](https://www.shkodenko.com/tag/lean-yellow-belt/) - [Nova company courses](https://www.shkodenko.com/tag/nova-company-courses/) - [Corporate University](https://www.shkodenko.com/tag/corporate-university/) - [Lean principles](https://www.shkodenko.com/tag/lean-principles/) - [Lean methodologies](https://www.shkodenko.com/tag/lean-methodologies/) - [continuous improvement](https://www.shkodenko.com/tag/continuous-improvement/) - [waste reduction](https://www.shkodenko.com/tag/waste-reduction/) - [value stream mapping](https://www.shkodenko.com/tag/value-stream-mapping/) - [Kaizen](https://www.shkodenko.com/tag/kaizen/) - [5S](https://www.shkodenko.com/tag/5s/) - [Root Cause Analysis](https://www.shkodenko.com/tag/root-cause-analysis/) - [Process Mapping](https://www.shkodenko.com/tag/process-mapping/) - [project management](https://www.shkodenko.com/tag/project-management/) - [team collaboration](https://www.shkodenko.com/tag/team-collaboration/) - [PHP backend web development](https://www.shkodenko.com/tag/php-backend-web-development/) - [optimizing workflows](https://www.shkodenko.com/tag/optimizing-workflows/) - [enhancing collaboration](https://www.shkodenko.com/tag/enhancing-collaboration/) - [delivering better products](https://www.shkodenko.com/tag/delivering-better-products/) - [Lean training](https://www.shkodenko.com/tag/lean-training/) - [ERR_CONNECTION_CLOSED](https://www.shkodenko.com/tag/err_connection_closed/) - [ERR_CONNECTION_RESET](https://www.shkodenko.com/tag/err_connection_reset/) - [network errors](https://www.shkodenko.com/tag/network-errors/) - [browser errors](https://www.shkodenko.com/tag/browser-errors/) - [server connection issues](https://www.shkodenko.com/tag/server-connection-issues/) - [fix connection closed error](https://www.shkodenko.com/tag/fix-connection-closed-error/) - [fix connection reset error](https://www.shkodenko.com/tag/fix-connection-reset-error/) - [troubleshoot network errors](https://www.shkodenko.com/tag/troubleshoot-network-errors/) - [server connection problems](https://www.shkodenko.com/tag/server-connection-problems/) - [internet connection issues](https://www.shkodenko.com/tag/internet-connection-issues/) - [SSL/TLS handshake failure](https://www.shkodenko.com/tag/ssl-tls-handshake-failure/) - [firewall restrictions](https://www.shkodenko.com/tag/firewall-restrictions/) - [proxy VPN interference](https://www.shkodenko.com/tag/proxy-vpn-interference/) - [MTU settings](https://www.shkodenko.com/tag/mtu-settings/) - [clear browser cache](https://www.shkodenko.com/tag/clear-browser-cache/) - [server configuration errors](https://www.shkodenko.com/tag/server-configuration-errors/) - [website connection errors](https://www.shkodenko.com/tag/website-connection-errors/) - [feature flags](https://www.shkodenko.com/tag/feature-flags/) - [feature toggles](https://www.shkodenko.com/tag/feature-toggles/) - [Laravel feature flags](https://www.shkodenko.com/tag/laravel-feature-flags/) - [continuous integration](https://www.shkodenko.com/tag/continuous-integration/) - [continuous deployment](https://www.shkodenko.com/tag/continuous-deployment/) - [CI/CD](https://www.shkodenko.com/tag/ci-cd/) - [A/B testing](https://www.shkodenko.com/tag/a-b-testing/) - [safe deployments](https://www.shkodenko.com/tag/safe-deployments/) - [gradual rollout](https://www.shkodenko.com/tag/gradual-rollout/) - [feature flag package](https://www.shkodenko.com/tag/feature-flag-package/) - [Spatie Laravel feature flags](https://www.shkodenko.com/tag/spatie-laravel-feature-flags/) - [custom feature flags](https://www.shkodenko.com/tag/custom-feature-flags/) - [environment-based feature flags](https://www.shkodenko.com/tag/environment-based-feature-flags/) - [Laravel blog](https://www.shkodenko.com/tag/laravel-blog/) - [feature management](https://www.shkodenko.com/tag/feature-management/) - [feature flag best practices](https://www.shkodenko.com/tag/feature-flag-best-practices/) - [FFmpeg tutorial](https://www.shkodenko.com/tag/ffmpeg-tutorial/) - [extract MP3 from MP4](https://www.shkodenko.com/tag/extract-mp3-from-mp4/) - [MP4 to MP3 conversion](https://www.shkodenko.com/tag/mp4-to-mp3-conversion/) - [audio extraction](https://www.shkodenko.com/tag/audio-extraction/) - [convert video to audio](https://www.shkodenko.com/tag/convert-video-to-audio/) - [command line audio conversion](https://www.shkodenko.com/tag/command-line-audio-conversion/) - [FFmpeg audio](https://www.shkodenko.com/tag/ffmpeg-audio/) - [MP3 extraction](https://www.shkodenko.com/tag/mp3-extraction/) - [video to audio tutorial](https://www.shkodenko.com/tag/video-to-audio-tutorial/) - [tech tips](https://www.shkodenko.com/tag/tech-tips/) - [FFmpeg commands](https://www.shkodenko.com/tag/ffmpeg-commands/) - [FFmpeg guide](https://www.shkodenko.com/tag/ffmpeg-guide/) - [MP4 to MP3](https://www.shkodenko.com/tag/mp4-to-mp3/) - [how to use FFmpeg](https://www.shkodenko.com/tag/how-to-use-ffmpeg/) - [audio conversion tool](https://www.shkodenko.com/tag/audio-conversion-tool/) - [FFmpeg MP3](https://www.shkodenko.com/tag/ffmpeg-mp3/) - [Birthday](https://www.shkodenko.com/tag/birthday/) - [celebration](https://www.shkodenko.com/tag/celebration/) - [33](https://www.shkodenko.com/tag/33/) - [happpy](https://www.shkodenko.com/tag/happpy/) - [WordPress favicon](https://www.shkodenko.com/tag/wordpress-favicon/) - [add favicon to WordPress](https://www.shkodenko.com/tag/add-favicon-to-wordpress/) - [WordPress theme favicon](https://www.shkodenko.com/tag/wordpress-theme-favicon/) - [create favicon for WordPress](https://www.shkodenko.com/tag/create-favicon-for-wordpress/) - [WordPress favicon tutorial](https://www.shkodenko.com/tag/wordpress-favicon-tutorial/) - [how to add favicon](https://www.shkodenko.com/tag/how-to-add-favicon/) - [favicon in WordPress](https://www.shkodenko.com/tag/favicon-in-wordpress/) - [favicon SEO](https://www.shkodenko.com/tag/favicon-seo/) - [favicon guide](https://www.shkodenko.com/tag/favicon-guide/) - [WordPress branding](https://www.shkodenko.com/tag/wordpress-branding/) - [favicon integration](https://www.shkodenko.com/tag/favicon-integration/) - [WordPress site icon](https://www.shkodenko.com/tag/wordpress-site-icon/) - [favicon setup](https://www.shkodenko.com/tag/favicon-setup/) - [favicon tips](https://www.shkodenko.com/tag/favicon-tips/) - [WordPress theme customization](https://www.shkodenko.com/tag/wordpress-theme-customization/) - [git pull](https://www.shkodenko.com/tag/git-pull/) - [git fetch](https://www.shkodenko.com/tag/git-fetch/) - [git reset](https://www.shkodenko.com/tag/git-reset/) - [git merge unrelated histories](https://www.shkodenko.com/tag/git-merge-unrelated-histories/) - [git error](https://www.shkodenko.com/tag/git-error/) - [resolving git errors](https://www.shkodenko.com/tag/resolving-git-errors/) - [git diverged branches](https://www.shkodenko.com/tag/git-diverged-branches/) - [git remote repository](https://www.shkodenko.com/tag/git-remote-repository/) - [git force push](https://www.shkodenko.com/tag/git-force-push/) - [git cherry-pick](https://www.shkodenko.com/tag/git-cherry-pick/) - [git tutorial](https://www.shkodenko.com/tag/git-tutorial/) - [git best practices](https://www.shkodenko.com/tag/git-best-practices/) - [git status](https://www.shkodenko.com/tag/git-status/) - [git troubleshooting](https://www.shkodenko.com/tag/git-troubleshooting/) - [git reset hard](https://www.shkodenko.com/tag/git-reset-hard/) - [git fetch all](https://www.shkodenko.com/tag/git-fetch-all/) - [local and remote git](https://www.shkodenko.com/tag/local-and-remote-git/) - [git blog post](https://www.shkodenko.com/tag/git-blog-post/) - [git commands](https://www.shkodenko.com/tag/git-commands/) - [git rebase](https://www.shkodenko.com/tag/git-rebase/) - [Linux process priority](https://www.shkodenko.com/tag/linux-process-priority/) - [nice command Linux](https://www.shkodenko.com/tag/nice-command-linux/) - [how to use nice command](https://www.shkodenko.com/tag/how-to-use-nice-command/) - [Linux process management](https://www.shkodenko.com/tag/linux-process-management/) - [change process priority Linux](https://www.shkodenko.com/tag/change-process-priority-linux/) - [nice command syntax](https://www.shkodenko.com/tag/nice-command-syntax/) - [adjust CPU usage Linux](https://www.shkodenko.com/tag/adjust-cpu-usage-linux/) - [Linux system performance](https://www.shkodenko.com/tag/linux-system-performance/) - [prioritize Linux processes](https://www.shkodenko.com/tag/prioritize-linux-processes/) - [Linux nice utility](https://www.shkodenko.com/tag/linux-nice-utility/) - [nice vs renice](https://www.shkodenko.com/tag/nice-vs-renice/) - [Linux multitasking tips](https://www.shkodenko.com/tag/linux-multitasking-tips/) - [process scheduling Linux](https://www.shkodenko.com/tag/process-scheduling-linux/) - [CPU optimization Linux](https://www.shkodenko.com/tag/cpu-optimization-linux/) - [Linux find command](https://www.shkodenko.com/tag/linux-find-command/) - [search files by name](https://www.shkodenko.com/tag/search-files-by-name/) - [find files in Linux](https://www.shkodenko.com/tag/find-files-in-linux/) - [case-insensitive file search](https://www.shkodenko.com/tag/case-insensitive-file-search/) - [Linux find case-sensitive](https://www.shkodenko.com/tag/linux-find-case-sensitive/) - [Linux file search tutorial](https://www.shkodenko.com/tag/linux-file-search-tutorial/) - [find command examples](https://www.shkodenko.com/tag/find-command-examples/) - [how to find files in Linux](https://www.shkodenko.com/tag/how-to-find-files-in-linux/) - [Linux file archiving](https://www.shkodenko.com/tag/linux-file-archiving/) - [tar command with find](https://www.shkodenko.com/tag/tar-command-with-find/) - [search and archive files in Linux](https://www.shkodenko.com/tag/search-and-archive-files-in-linux/) - [Linux terminal commands](https://www.shkodenko.com/tag/linux-terminal-commands/) - [find multiple file types](https://www.shkodenko.com/tag/find-multiple-file-types/) - [find .php files Linux](https://www.shkodenko.com/tag/find-php-files-linux/) - [Linux find .js files](https://www.shkodenko.com/tag/linux-find-js-files/) - [find .css files Linux](https://www.shkodenko.com/tag/find-css-files-linux/) - [case-sensitive search Linux](https://www.shkodenko.com/tag/case-sensitive-search-linux/) - [bzip2 tar archive](https://www.shkodenko.com/tag/bzip2-tar-archive/) - [Linux shell commands tutorial](https://www.shkodenko.com/tag/linux-shell-commands-tutorial/) - [Here’s a list of keywords for the blog post: compare](https://www.shkodenko.com/tag/heres-a-list-of-keywords-for-the-blog-post-compare/) - [arrays](https://www.shkodenko.com/tag/arrays/) - [files](https://www.shkodenko.com/tag/files/) - [common](https://www.shkodenko.com/tag/common/) - [when](https://www.shkodenko.com/tag/when/) - [with](https://www.shkodenko.com/tag/with/) - [datasets](https://www.shkodenko.com/tag/datasets/) - [have](https://www.shkodenko.com/tag/have/) - [text](https://www.shkodenko.com/tag/text/) - [values](https://www.shkodenko.com/tag/values/) - [present](https://www.shkodenko.com/tag/present/) - [both](https://www.shkodenko.com/tag/both/) - [that](https://www.shkodenko.com/tag/that/) - [exist](https://www.shkodenko.com/tag/exist/) - [only](https://www.shkodenko.com/tag/only/) - [second](https://www.shkodenko.com/tag/second/) - [file](https://www.shkodenko.com/tag/file/) - [this](https://www.shkodenko.com/tag/this/) - [file1](https://www.shkodenko.com/tag/file1/) - [transactions](https://www.shkodenko.com/tag/transactions/) - [zone_sync_blockers](https://www.shkodenko.com/tag/zone_sync_blockers/) - [zone_versions](https://www.shkodenko.com/tag/zone_versions/) - [conditions](https://www.shkodenko.com/tag/conditions/) - [internal_conditions](https://www.shkodenko.com/tag/internal_conditions/) - [conditions_from_regions](https://www.shkodenko.com/tag/conditions_from_regions/) - [condition_properties](https://www.shkodenko.com/tag/condition_properties/) - [condition_versions](https://www.shkodenko.com/tag/condition_versions/) - [polygon_belonging_to_zone](https://www.shkodenko.com/tag/polygon_belonging_to_zone/) - [zone_hierarchy](https://www.shkodenko.com/tag/zone_hierarchy/) - [district_kinds](https://www.shkodenko.com/tag/district_kinds/) - [district_types](https://www.shkodenko.com/tag/district_types/) - [countries](https://www.shkodenko.com/tag/countries/) - [geo_zones](https://www.shkodenko.com/tag/geo_zones/) - [area_types](https://www.shkodenko.com/tag/area_types/) - [zones](https://www.shkodenko.com/tag/zones/) - [streets](https://www.shkodenko.com/tag/streets/) - [divisions](https://www.shkodenko.com/tag/divisions/) - [polygons](https://www.shkodenko.com/tag/polygons/) - [regions](https://www.shkodenko.com/tag/regions/) - [geo_zone_belonging_to_zone](https://www.shkodenko.com/tag/geo_zone_belonging_to_zone/) - [features](https://www.shkodenko.com/tag/features/) - [features_changes](https://www.shkodenko.com/tag/features_changes/) - [settlements](https://www.shkodenko.com/tag/settlements/) - [geo_zone_versions](https://www.shkodenko.com/tag/geo_zone_versions/) - [postmachine_regions](https://www.shkodenko.com/tag/postmachine_regions/) - [storage_regions](https://www.shkodenko.com/tag/storage_regions/) - [division_regions](https://www.shkodenko.com/tag/division_regions/) - [condition_groups](https://www.shkodenko.com/tag/condition_groups/) - [city_district_kinds](https://www.shkodenko.com/tag/city_district_kinds/) - [file2](https://www.shkodenko.com/tag/file2/) - [access_roles](https://www.shkodenko.com/tag/access_roles/) - [packages](https://www.shkodenko.com/tag/packages/) - [reports](https://www.shkodenko.com/tag/reports/) - [users](https://www.shkodenko.com/tag/users/) - [user_zone_permissions](https://www.shkodenko.com/tag/user_zone_permissions/) - [notifications](https://www.shkodenko.com/tag/notifications/) - [individual_timetables](https://www.shkodenko.com/tag/individual_timetables/) - [eu_reports](https://www.shkodenko.com/tag/eu_reports/) - [polygon_versions](https://www.shkodenko.com/tag/polygon_versions/) - [hydra_access_tokens](https://www.shkodenko.com/tag/hydra_access_tokens/) - [spatial_ref_sys](https://www.shkodenko.com/tag/spatial_ref_sys/) - [en_reports](https://www.shkodenko.com/tag/en_reports/) - [geography_columns](https://www.shkodenko.com/tag/geography_columns/) - [geometry_columns](https://www.shkodenko.com/tag/geometry_columns/) - [invalid_district_reports](https://www.shkodenko.com/tag/invalid_district_reports/) - [failed_jobs](https://www.shkodenko.com/tag/failed_jobs/) - [en_grouped_reports](https://www.shkodenko.com/tag/en_grouped_reports/) - [password_resets](https://www.shkodenko.com/tag/password_resets/) - [eu_grouped_sender_aggregated_reports](https://www.shkodenko.com/tag/eu_grouped_sender_aggregated_reports/) - [eu_grouped_sender_detailed_reports](https://www.shkodenko.com/tag/eu_grouped_sender_detailed_reports/) - [eu_grouped_recipient_detailed_reports](https://www.shkodenko.com/tag/eu_grouped_recipient_detailed_reports/) - [eu_grouped_recipient_aggregated_reports](https://www.shkodenko.com/tag/eu_grouped_recipient_aggregated_reports/) - [personal_access_tokens](https://www.shkodenko.com/tag/personal_access_tokens/) - [additional_user_cities](https://www.shkodenko.com/tag/additional_user_cities/) - [positions](https://www.shkodenko.com/tag/positions/) - [your](https://www.shkodenko.com/tag/your/) - [exclusive](https://www.shkodenko.com/tag/exclusive/) - [read](https://www.shkodenko.com/tag/read/) - [contents](https://www.shkodenko.com/tag/contents/) - [into](https://www.shkodenko.com/tag/into/) - [file_get_contents](https://www.shkodenko.com/tag/file_get_contents/) - [array1](https://www.shkodenko.com/tag/array1/) - [array_map](https://www.shkodenko.com/tag/array_map/) - [trim](https://www.shkodenko.com/tag/trim/) - [explode](https://www.shkodenko.com/tag/explode/) - [array2](https://www.shkodenko.com/tag/array2/) - [commonvalues](https://www.shkodenko.com/tag/commonvalues/) - [array_intersect](https://www.shkodenko.com/tag/array_intersect/) - [onlyinsecondarray](https://www.shkodenko.com/tag/onlyinsecondarray/) - [array_diff](https://www.shkodenko.com/tag/array_diff/) - [count](https://www.shkodenko.com/tag/count/) - [number](https://www.shkodenko.com/tag/number/) - [elements](https://www.shkodenko.com/tag/elements/) - [each](https://www.shkodenko.com/tag/each/) - [result](https://www.shkodenko.com/tag/result/) - [countcommon](https://www.shkodenko.com/tag/countcommon/) - [countonlyinsecond](https://www.shkodenko.com/tag/countonlyinsecond/) - [output](https://www.shkodenko.com/tag/output/) - [results](https://www.shkodenko.com/tag/results/) - [implode](https://www.shkodenko.com/tag/implode/) - [identifies](https://www.shkodenko.com/tag/identifies/) - [Linux Screen](https://www.shkodenko.com/tag/linux-screen/) - [Linux Screen command](https://www.shkodenko.com/tag/linux-screen-command/) - [terminal multiplexer](https://www.shkodenko.com/tag/terminal-multiplexer/) - [manage terminal sessions](https://www.shkodenko.com/tag/manage-terminal-sessions/) - [Linux Screen tutorial](https://www.shkodenko.com/tag/linux-screen-tutorial/) - [Screen command Linux](https://www.shkodenko.com/tag/screen-command-linux/) - [how to use Linux Screen](https://www.shkodenko.com/tag/how-to-use-linux-screen/) - [install Screen on Linux](https://www.shkodenko.com/tag/install-screen-on-linux/) - [Screen commands list](https://www.shkodenko.com/tag/screen-commands-list/) - [Ubuntu Screen command](https://www.shkodenko.com/tag/ubuntu-screen-command/) - [Fedora Screen command](https://www.shkodenko.com/tag/fedora-screen-command/) - [CentOS Screen command](https://www.shkodenko.com/tag/centos-screen-command/) - [Red Hat Screen command](https://www.shkodenko.com/tag/red-hat-screen-command/) - [Debian Screen utility](https://www.shkodenko.com/tag/debian-screen-utility/) - [Linux Screen shortcuts](https://www.shkodenko.com/tag/linux-screen-shortcuts/) - [Linux multitasking](https://www.shkodenko.com/tag/linux-multitasking/) - [reattach Screen session](https://www.shkodenko.com/tag/reattach-screen-session/) - [detach Screen session](https://www.shkodenko.com/tag/detach-screen-session/) - [rename Screen window](https://www.shkodenko.com/tag/rename-screen-window/) - [Screen window management](https://www.shkodenko.com/tag/screen-window-management/) - [Linux productivity tools](https://www.shkodenko.com/tag/linux-productivity-tools/) - [remote server terminal](https://www.shkodenko.com/tag/remote-server-terminal/) - [Linux command-line tools](https://www.shkodenko.com/tag/linux-command-line-tools/) - [Linux terminal management](https://www.shkodenko.com/tag/linux-terminal-management/) - [Linux Screen tips](https://www.shkodenko.com/tag/linux-screen-tips/) - [Linux Screen features](https://www.shkodenko.com/tag/linux-screen-features/) - [undo git commit](https://www.shkodenko.com/tag/undo-git-commit/) - [git remote](https://www.shkodenko.com/tag/git-remote/) - [git workflow](https://www.shkodenko.com/tag/git-workflow/) - [git reset soft](https://www.shkodenko.com/tag/git-reset-soft/) - [git pull changes](https://www.shkodenko.com/tag/git-pull-changes/) - [reapply git commit](https://www.shkodenko.com/tag/reapply-git-commit/) - [git conflict resolution](https://www.shkodenko.com/tag/git-conflict-resolution/) - [git merge](https://www.shkodenko.com/tag/git-merge/) - [git branch tracking](https://www.shkodenko.com/tag/git-branch-tracking/) - [git tips](https://www.shkodenko.com/tag/git-tips/) - [git collaboration](https://www.shkodenko.com/tag/git-collaboration/) - [remote repository](https://www.shkodenko.com/tag/remote-repository/) - [git workflow management](https://www.shkodenko.com/tag/git-workflow-management/) - [Graylog](https://www.shkodenko.com/tag/graylog/) - [log management](https://www.shkodenko.com/tag/log-management/) - [HTTP status code 498](https://www.shkodenko.com/tag/http-status-code-498/) - [invalid token](https://www.shkodenko.com/tag/invalid-token/) - [log filtering](https://www.shkodenko.com/tag/log-filtering/) - [search query](https://www.shkodenko.com/tag/search-query/) - [Graylog search](https://www.shkodenko.com/tag/graylog-search/) - [log analysis](https://www.shkodenko.com/tag/log-analysis/) - [monitoring](https://www.shkodenko.com/tag/monitoring/) - [troubleshooting](https://www.shkodenko.com/tag/troubleshooting/) - [REST API](https://www.shkodenko.com/tag/rest-api/) - [automation](https://www.shkodenko.com/tag/automation/) - [IT professionals](https://www.shkodenko.com/tag/it-professionals/) - [token-based authentication](https://www.shkodenko.com/tag/token-based-authentication/) - [system monitoring](https://www.shkodenko.com/tag/system-monitoring/) - [log entries](https://www.shkodenko.com/tag/log-entries/) - [save search](https://www.shkodenko.com/tag/save-search/) - [advanced filtering](https://www.shkodenko.com/tag/advanced-filtering/) - [Linux tail command](https://www.shkodenko.com/tag/linux-tail-command/) - [how to use tail in Linux](https://www.shkodenko.com/tag/how-to-use-tail-in-linux/) - [real-time log monitoring](https://www.shkodenko.com/tag/real-time-log-monitoring/) - [Linux log analysis](https://www.shkodenko.com/tag/linux-log-analysis/) - [tail with grep](https://www.shkodenko.com/tag/tail-with-grep/) - [tail with more](https://www.shkodenko.com/tag/tail-with-more/) - [monitor file changes in Linux](https://www.shkodenko.com/tag/monitor-file-changes-in-linux/) - [Linux file utilities](https://www.shkodenko.com/tag/linux-file-utilities/) - [laravel migrations](https://www.shkodenko.com/tag/laravel-migrations/) - [postgresql compatibility](https://www.shkodenko.com/tag/postgresql-compatibility/) - [phpstan](https://www.shkodenko.com/tag/phpstan/) - [laravel pint](https://www.shkodenko.com/tag/laravel-pint/) - [laravel ide helper](https://www.shkodenko.com/tag/laravel-ide-helper/) - [phpunit](https://www.shkodenko.com/tag/phpunit/) - [sql compatibility](https://www.shkodenko.com/tag/sql-compatibility/) - [postgresql 14](https://www.shkodenko.com/tag/postgresql-14/) - [postgresql 17](https://www.shkodenko.com/tag/postgresql-17/) - [laravel database queries](https://www.shkodenko.com/tag/laravel-database-queries/) - [postgresql extensions](https://www.shkodenko.com/tag/postgresql-extensions/) - [database upgrade](https://www.shkodenko.com/tag/database-upgrade/) - [postgresql linter](https://www.shkodenko.com/tag/postgresql-linter/) - [schema validation](https://www.shkodenko.com/tag/schema-validation/) - [staging environment](https://www.shkodenko.com/tag/staging-environment/) - [raw sql validation](https://www.shkodenko.com/tag/raw-sql-validation/) - [laravel tools](https://www.shkodenko.com/tag/laravel-tools/) - [database compatibility tools](https://www.shkodenko.com/tag/database-compatibility-tools/) - [postgresql upgrade](https://www.shkodenko.com/tag/postgresql-upgrade/) - [postgis](https://www.shkodenko.com/tag/postgis/) - [pg_trgm](https://www.shkodenko.com/tag/pg_trgm/) - [uuid-ossp](https://www.shkodenko.com/tag/uuid-ossp/) - [database migrations](https://www.shkodenko.com/tag/database-migrations/) - [static analysis](https://www.shkodenko.com/tag/static-analysis/) - [laravel database compatibility](https://www.shkodenko.com/tag/laravel-database-compatibility/) - [find modified files](https://www.shkodenko.com/tag/find-modified-files/) - [find files changed today](https://www.shkodenko.com/tag/find-files-changed-today/) - [linux search files by date](https://www.shkodenko.com/tag/linux-search-files-by-date/) - [find recent files](https://www.shkodenko.com/tag/find-recent-files/) - [find files by modification time](https://www.shkodenko.com/tag/find-files-by-modification-time/) - [linux mtime](https://www.shkodenko.com/tag/linux-mtime/) - [find mtime -1](https://www.shkodenko.com/tag/find-mtime-1/) - [find files in last 24 hours](https://www.shkodenko.com/tag/find-files-in-last-24-hours/) - [find files modified today](https://www.shkodenko.com/tag/find-files-modified-today/) - [find files by time](https://www.shkodenko.com/tag/find-files-by-time/) - [find modified files in linux](https://www.shkodenko.com/tag/find-modified-files-in-linux/) - [search files in linux](https://www.shkodenko.com/tag/search-files-in-linux/) - [linux find by date](https://www.shkodenko.com/tag/linux-find-by-date/) - [find files in a folder](https://www.shkodenko.com/tag/find-files-in-a-folder/) - [linux file search tool](https://www.shkodenko.com/tag/linux-file-search-tool/) - [find mmin](https://www.shkodenko.com/tag/find-mmin/) - [find files in last x hours](https://www.shkodenko.com/tag/find-files-in-last-x-hours/) - [JWT](https://www.shkodenko.com/tag/jwt/) - [RS256](https://www.shkodenko.com/tag/rs256/) - [RSA public key](https://www.shkodenko.com/tag/rsa-public-key/) - [JWT verification](https://www.shkodenko.com/tag/jwt-verification/) - [JSON Web Token](https://www.shkodenko.com/tag/json-web-token/) - [Laravel authentication](https://www.shkodenko.com/tag/laravel-authentication/) - [Laravel JWT](https://www.shkodenko.com/tag/laravel-jwt/) - [JWKS](https://www.shkodenko.com/tag/jwks/) - [JWKS to PEM](https://www.shkodenko.com/tag/jwks-to-pem/) - [RSA key extraction](https://www.shkodenko.com/tag/rsa-key-extraction/) - [JWT public key](https://www.shkodenko.com/tag/jwt-public-key/) - [Laravel security](https://www.shkodenko.com/tag/laravel-security/) - [Firebase JWT](https://www.shkodenko.com/tag/firebase-jwt/) - [JWT decoding](https://www.shkodenko.com/tag/jwt-decoding/) - [JWT error](https://www.shkodenko.com/tag/jwt-error/) - [JWT troubleshooting](https://www.shkodenko.com/tag/jwt-troubleshooting/) - [Laravel config](https://www.shkodenko.com/tag/laravel-config/) - [JWT authentication](https://www.shkodenko.com/tag/jwt-authentication/) - [Laravel API security](https://www.shkodenko.com/tag/laravel-api-security/) - [domain change](https://www.shkodenko.com/tag/domain-change/) - [website migration](https://www.shkodenko.com/tag/website-migration/) - [rndpwd](https://www.shkodenko.com/tag/rndpwd/) - [rndpwd.info](https://www.shkodenko.com/tag/rndpwd-info/) - [rndpwd.shkodenko.com](https://www.shkodenko.com/tag/rndpwd-shkodenko-com/) - [domain update](https://www.shkodenko.com/tag/domain-update/) - [website update](https://www.shkodenko.com/tag/website-update/) - [URL change](https://www.shkodenko.com/tag/url-change/) - [redirect](https://www.shkodenko.com/tag/redirect/) - [domain transition](https://www.shkodenko.com/tag/domain-transition/) - [API update](https://www.shkodenko.com/tag/api-update/) - [branding](https://www.shkodenko.com/tag/branding/) - [website management](https://www.shkodenko.com/tag/website-management/) - [new domain](https://www.shkodenko.com/tag/new-domain/) - [URL redirection](https://www.shkodenko.com/tag/url-redirection/) - [SQL query](https://www.shkodenko.com/tag/sql-query/) - [get PostgreSQL version](https://www.shkodenko.com/tag/get-postgresql-version/) - [PostgreSQL version check](https://www.shkodenko.com/tag/postgresql-version-check/) - [PostgreSQL version command](https://www.shkodenko.com/tag/postgresql-version-command/) - [version()](https://www.shkodenko.com/tag/version/) - [SHOW server_version](https://www.shkodenko.com/tag/show-server_version/) - [database version check](https://www.shkodenko.com/tag/database-version-check/) - [PostgreSQL database](https://www.shkodenko.com/tag/postgresql-database/) - [PostgreSQL tutorial](https://www.shkodenko.com/tag/postgresql-tutorial/) - [SQL database](https://www.shkodenko.com/tag/sql-database/) - [PostgreSQL administration](https://www.shkodenko.com/tag/postgresql-administration/) - [PostgreSQL features](https://www.shkodenko.com/tag/postgresql-features/) - [database security](https://www.shkodenko.com/tag/database-security/) - [PostgreSQL updates](https://www.shkodenko.com/tag/postgresql-updates/) - [PostgreSQL performance](https://www.shkodenko.com/tag/postgresql-performance/) - [PostgreSQL commands](https://www.shkodenko.com/tag/postgresql-commands/) - [PostgreSQL tips](https://www.shkodenko.com/tag/postgresql-tips/) - [Ubuntu 24.04](https://www.shkodenko.com/tag/ubuntu-24-04/) - [install software Ubuntu](https://www.shkodenko.com/tag/install-software-ubuntu/) - [Ubuntu package manager](https://www.shkodenko.com/tag/ubuntu-package-manager/) - [APT install Ubuntu](https://www.shkodenko.com/tag/apt-install-ubuntu/) - [Snap packages Ubuntu](https://www.shkodenko.com/tag/snap-packages-ubuntu/) - [Flatpak Ubuntu](https://www.shkodenko.com/tag/flatpak-ubuntu/) - [install deb package Ubuntu](https://www.shkodenko.com/tag/install-deb-package-ubuntu/) - [AppImage Ubuntu](https://www.shkodenko.com/tag/appimage-ubuntu/) - [PPA Ubuntu](https://www.shkodenko.com/tag/ppa-ubuntu/) - [software installation Linux](https://www.shkodenko.com/tag/software-installation-linux/) - [Ubuntu software guide](https://www.shkodenko.com/tag/ubuntu-software-guide/) - [Linux package management](https://www.shkodenko.com/tag/linux-package-management/) - [Ubuntu terminal commands](https://www.shkodenko.com/tag/ubuntu-terminal-commands/) - [install VLC Ubuntu](https://www.shkodenko.com/tag/install-vlc-ubuntu/) - [install Google Chrome Ubuntu](https://www.shkodenko.com/tag/install-google-chrome-ubuntu/) - [install Spotify Ubuntu](https://www.shkodenko.com/tag/install-spotify-ubuntu/)