Пускането на PHP приложение на Linux хостинг изисква добра подготовка на файловете, уеб сървъра, версията на PHP, базата данни и средата за изпълнение. Ако използвате управляван хостинг или контролен панел като Plesk, процесът обикновено е по-удобен, но основните стъпки остават същите: качване на кода, настройка на document root, избор на подходяща PHP версия, импорт на база данни и проверка на правата за достъп.
По-долу ще видите как да подготвите и пуснете PHP приложение на Linux хостинг по безопасен и повторяем начин, както и кои настройки са най-важни за стабилен production сайт. Ще разгледаме практични варианти за качване през файлов мениджър, FTP/SFTP, Git и SSH, както и добри практики за обновления, staging среда и връщане към предишна версия.
Какво означава пускане на PHP приложение
Пускането на приложение е процесът по прехвърляне на готова версия от локална среда или staging среда към production хостинг среда, където сайтът е достъпен за потребителите. При PHP приложенията това включва няколко важни компонента:
- качване на PHP файловете и зависимостите;
- настройка на домейна и document root;
- избор и конфигуриране на подходяща PHP версия;
- импорт и настройка на база данни;
- проверка на права за файлове и папки;
- активиране на HTTPS и други настройки за production среда.
В хостинг среда, особено при Plesk или подобен контролен панел, тези задачи обикновено са разделени в отделни секции. Това намалява риска от грешки и улеснява поддръжката, особено когато работите с няколко домейна или с екип.
Подготовка преди пускане
Преди да качите приложението в Linux хостинг, проверете дали проектът е готов за production. Това спестява време при отстраняване на проблеми след пускането и намалява риска от прекъсване на работата на сайта.
Проверете изискванията на приложението
Някои PHP приложения и framework-ове, като Laravel, Symfony, WordPress с плъгини или custom CRM системи, имат специфични изисквания. Проверете следното:
- минимална и препоръчителна версия на PHP;
- необходими PHP разширения;
- изисквания към MySQL или MariaDB;
- нужни права за запис в определени директории;
- дали проектът използва Composer, Node.js build процес или cron задачи.
Подгответе production конфигурация
Добра практика е конфигурацията за production да е отделена от development. Обикновено това означава:
- отделен .env файл или отделни environment променливи;
- изключен debug режим;
- правилен URL адрес на сайта;
- настройки за база данни, кеш и mail сървър;
- логване на грешки във файл, вместо показване на грешки пред потребителите.
Ако използвате Plesk, част от тези настройки могат да се управляват през PHP Settings, Hosting Settings и File Manager, без да е нужен директен достъп до сървъра.
Избор на подход за пускане
Има няколко основни начина да пуснете PHP приложение на Linux hosting. Изборът зависи от това дали имате SSH достъп, Git workflow, контролен панел или само файлов мениджър.
1. Пускане през файлов мениджър
Това е най-лесният вариант за малки сайтове и по-прости PHP приложения. Качвате ZIP архив или отделни файлове през файловия мениджър в контролния панел.
Подходящ е, когато:
- приложението е малко;
- нямате Git или SSH достъп;
- правите еднократно качване на статичен или лек динамичен проект.
Недостатъкът е, че този метод е по-бавен и не е толкова удобен при чести обновления.
2. Пускане чрез FTP/SFTP
FTP и SFTP са удобни за качване на файлове от локалната машина към хостинга. SFTP е за предпочитане, защото използва криптирана връзка. При Linux hosting това е често използван вариант за контролирано обновяване на PHP проект.
Подходящ е, когато:
- работите с файлове директно от IDE;
- нямате автоматизиран процес за пускане;
- подменяте конкретни файлове или папки.
3. Пускане чрез Git и SSH
Това е най-добрият избор за по-сериозни PHP приложения. Кодът се съхранява в Git repository и се пуска на сървъра чрез pull, hook за пускане или автоматизация. При управляван хостинг често е възможно repository-то да се свърже директно с домейна или с отделна папка.
Предимства:
- ясна история на промените;
- лесно връщане към предишна версия;
- по-малък риск от пропуснати файлове;
- по-удобен процес за екипи.
Стъпки за пускане на PHP приложение на Linux хостинг
1. Създайте или изберете домейн и hosting акаунт
Ако приложението ще работи на нов домейн, създайте сайта в контролния панел. В Plesk това обикновено става през Add Domain или Add Subdomain. При вече съществуващ сайт преценете дали ще го пуснете в основната директория или в отделна поддиректория.
Добра практика е production приложението да има собствен домейн или поддомейн, например:
- example.com
- app.example.com
- staging.example.com
2. Настройте document root
За много PHP framework-ове document root трябва да сочи към публичната директория на проекта, а не към корена на repository-то. Например:
- Laravel: public/
- Symfony: public/
- custom app: public_html/ или web/
Неправилният document root е една от най-честите причини за 404 грешки, отказан достъп или показване на чувствителни файлове. В Plesk можете да промените document root от настройките на домейна.
3. Качете файловете на приложението
Качете кода чрез избрания метод: Git, SFTP, файлов мениджър или скрипт за пускане. Уверете се, че всички необходими файлове са налични, включително:
- PHP source code;
- assets и templates;
- composer.json и composer.lock, ако използвате Composer;
- конфигурационни шаблони;
- публични файлове, ако не се генерират отделно.
Ако качвате ZIP архив през хостинг контролен панел, след това проверете структурата на папките. Понякога архивът се разопакова в допълнителна вложена директория и това променя очаквания път към приложението.
4. Инсталирайте dependencies
При съвременните PHP приложения често е необходимо да се изпълни Composer инсталация на сървъра:
- composer install --no-dev
- composer dump-autoload -o
Това гарантира, че production ще използва само нужните пакети и оптимизиран autoload. Ако hosting планът ви предлага SSH достъп, това е най-удобният вариант. При Plesk често има и интеграция с Composer през интерфейса или чрез SSH terminal.
5. Настройте версията на PHP и разширенията
Различните PHP приложения изискват различни версии. В контролния панел изберете версията, която е съвместима с приложението, и активирайте нужните разширения. Често необходими са:
- mbstring;
- pdo_mysql;
- intl;
- zip;
- curl;
- gd или imagick;
- xml;
- openssl.
Ако приложението има проблеми след пускане, проверете PHP error logs и дали всички изисквани разширения са включени за конкретния домейн.
6. Създайте база данни и потребител
Повечето PHP приложения използват MySQL или MariaDB. Създайте отделна база данни и отделен потребител с ограничени права. Не използвайте root потребител за production приложение.
Минималните стъпки са:
- създаване на база данни;
- създаване на потребител;
- свързване на потребителя с базата;
- импорт на схема или архив;
- актуализиране на credentials в конфигурацията.
7. Импортирайте база данни
Ако прехвърляте съществуващо приложение, импортът на база данни е критична стъпка. Използвайте phpMyAdmin, команден ред или инструменти в хостинга, за да качите .sql архив. Преди това проверете:
- дали архивът е от същата или съвместима версия на приложението;
- дали charset и collation са коректни;
- дали таблиците съдържат нужните данни;
- дали миграциите са приложени, ако framework-ът използва такива.
При Laravel, Symfony и други framework-ове често е нужно допълнително да се изпълнят migrations и seeders.
8. Конфигурирайте environment променливи
Production конфигурацията трябва да съдържа правилни стойности за URL адрес, база данни, mail и cache. Примери за важни параметри:
- APP_ENV=production
- APP_DEBUG=false
- DB_HOST, DB_NAME, DB_USER, DB_PASS
- MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD
- CACHE_DRIVER и SESSION_DRIVER
Не съхранявайте чувствителни данни в публично достъпни файлове. Ако контролният панел поддържа управление на environment променливи, използвайте тази възможност за по-добра сигурност.
9. Настройте права върху файлове и папки
Правата за достъп са важни при Linux hosting. Неправилните permissions могат да доведат до проблеми при запис или до риск за сигурността. Обичайният подход е:
- директориите да са с права 755;
- файловете да са с права 644;
- папките за cache, logs и uploads да позволяват запис;
- да се избягват прекалено отворени права като 777, освен ако няма временна техническа причина.
При управляван хостинг често собственикът и уеб сървърът работят с правилно конфигурирани потребители, но все пак е добре да проверите поведението на приложението след пускане.
10. Активирайте HTTPS и проверете redirect-и
SSL сертификатът е задължителен за production сайт. След пускане проверете:
- дали домейнът зарежда през HTTPS;
- дали има коректен redirect от HTTP към HTTPS;
- дали няма redirect loop;
- дали всички ресурси се зареждат със secure URL.
При Plesk SSL сертификатите често могат да се управляват от същия панел, а Let’s Encrypt е лесен вариант за автоматично издаване и подновяване.
Пускане на популярни PHP framework-ове
Laravel
За Laravel обикновено е нужно document root да сочи към public/ директорията. След качване на кода изпълнете Composer install, генерирайте app key, ако е нов проект, и проверете правата за storage и bootstrap/cache.
Често полезни команди са:
- php artisan migrate --force
- php artisan config:cache
- php artisan route:cache
- php artisan view:cache
WordPress
Макар WordPress да е по-лесен за пускане, той също изисква правилно качване на файловете, база данни и wp-config.php. Проверете версията на PHP, активните плъгини и теми, както и дали upload директорията позволява запис. При миграция от staging към production обърнете внимание на стойностите site URL и home URL в базата данни.
Symfony и други framework-ове
При Symfony и подобни приложения public/ директорията трябва да бъде web root. След пускане обновете dependencies, изпълнете миграции и проверете environment variables. Ако използвате cache слоеве, изчистете cache след обновяване, за да избегнете стари настройки.
Staging среда и безопасно пускане на нови версии
Staging средата е отделно копие на приложението, в което можете да тествате нова версия преди production. Това е особено полезно при екипна работа и когато сайтът има реални потребители, поръчки или интеграции с външни услуги.
Защо staging е важен
- позволява да откриете грешки преди реалното пускане;
- намалява риска от прекъсване на работата;
- помага да тествате миграции и нови зависимости;
- улеснява сравняването на поведението между версии.
Какво да отделите в staging
- отделна база данни;
- отделни environment променливи;
- отделен домейн или поддомен;
- ограничен достъп чрез защита с парола или ограничение по IP.
Чести проблеми при пускане и как да ги решите
Бял екран или 500 Internal Server Error
Най-често причината е syntax error, липсващо PHP extension, грешна версия на PHP или проблем с права. Проверете error logs в контролния панел и включете временно логване, ако това е безопасно.
404 след качване на приложението
Проверете document root, rewrite rules и .htaccess файла. При framework-ове, които разчитат на front controller, липсващите rewrite правила могат да блокират маршрутизацията.
Грешка при връзка с база данни
Проверете host-а на базата данни, името на базата, потребителя, паролата и дали потребителят има права върху съответната база. Уверете се, че приложението използва правилните credentials за production.
Липсващи стилове, изображения или JS файлове
Най-често причината е грешен публичен път или неправилно генерирани assets. Проверете дали build процесът е изпълнен и дали файловете са качени в правилната директория.
Проблеми след обновяване на версията
Възможно е новата версия да изисква по-нова PHP версия, нови зависимости или database migrations. Добра практика е първо да се тества в staging среда, а след това да се пусне в production с backup и план за връщане назад.
Добри практики за пускане на PHP приложение на Linux hosting
- винаги правете backup преди пускане;
- използвайте Git за проследяване на промените;
- поддържайте отделни production и staging среди;
- не пускайте директно от локални незавършени файлове;
- използвайте SSH, когато е възможно;
- обновявайте dependencies контролирано;
- следете логовете след всяка нова версия;
- ограничавайте достъпа до конфигурационни файлове;
- редовно проверявайте backup-ите и процедурата за възстановяване.
Ако хостинг акаунтът ви е в Plesk, можете да комбинирате няколко удобства: управление на домейни, версии на PHP, SSL сертификати, бази данни, cron задачи и файлове от едно място. Това прави процеса по-предвидим и намалява зависимостта от ръчни действия.
FAQ
Мога ли да пусна PHP приложение без SSH?
Да. Можете да използвате файлов мениджър, FTP/SFTP или инструменти в контролния панел. SSH обаче е по-удобен за Composer, миграции и автоматизация.
Коя PHP версия да избера за production?
Изберете версията, която е съвместима с приложението и активните му зависимости. Ако приложението поддържа по-нова стабилна версия, това обикновено е по-добър избор за сигурност и производителност.
Трябва ли винаги да използвам Composer install на сървъра?
Не винаги, но често е най-практично. За production се използва --no-dev, за да не се инсталират ненужни development пакети.
Как да разбера дали document root е настроен правилно?
Ако приложението е базирано на framework, document root трябва да сочи към публичната директория, която съдържа index.php и публичните assets. Проверете документацията на конкретния framework.
Нужно ли е да имам staging среда?
За сериозни сайтове и приложения, да. Staging средата позволява да тествате промени преди production и значително намалява риска от проблеми при обновления.
Какво да направя, ако сайтът показва 500 след пускане?
Първо проверете error logs, версията на PHP, dependencies, environment променливите и правата върху файловете. Това са най-честите причини.
Заключение
Пускането на PHP приложение на Linux хостинг е най-лесно, когато процесът е подреден: правилен document root, точна PHP конфигурация, коректна база данни, подходящи файлови права и ясно отделена production среда. В управляван хостинг и Plesk тези стъпки могат да се изпълнят по-бързо и с по-малък риск, особено ако използвате Git, SSH и staging.
Ако планирате чести обновления, изградете повторяем процес, който включва backup, тестове, production пускане и план за връщане назад. Така вашето PHP приложение ще бъде по-стабилно, по-сигурно и по-лесно за поддръжка в Linux hosting среда.