Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Хостването на собствен уебсайт на Linux сървър предлага гъвкавост и пълен контрол над вашите уеб проекти. Ubuntu е една от най-популярните и лесни за използване Linux дистрибуции. Apache е най-разпространеният уеб сървър в света. PHP е мощен скриптов език за динамични уеб приложения. Тази комбинация, известна като LAMP стек, е основа за много успешни уеб проекти. В това ръководство ще научите всички необходими стъпки за създаване на собствен уеб сървър.
Преди да започнем с инсталацията, трябва да подготвим нашия Ubuntu сървър. Това включва актуализиране на системата и настройка на основните конфигурации.
Първо трябва да актуализираме пакетите на нашата система. Отворете терминал и въведете следните команди:
sudo apt update
sudo apt upgrade -y
Тези команди обновяват списъка с пакети и след това инсталират всички налични актуализации. Флагът "-y" автоматично потвърждава инсталацията.
Правилната конфигурация на хостнейм и системно време е важна за функционирането на уеб сървъра:
sudo hostnamectl set-hostname webserver
sudo timedatectl set-timezone Europe/Sofia
Първата команда задава хостнейм "webserver" на вашия сървър. Втората настройва часовата зона за България.
Някои основни инструменти могат да бъдат полезни при настройката и управлението на сървъра:
sudo apt install -y curl wget unzip vim net-tools
Тези инструменти ще ви помогнат при изтегляне на файлове, редактиране на конфигурации и мрежова диагностика.
Apache е най-популярният уеб сървър в света. Той е стабилен, гъвкав и добре документиран.
Инсталирането на Apache в Ubuntu е просто:
sudo apt install apache2 -y
След инсталацията Apache автоматично се стартира. Можете да проверите неговия статус с командата:
sudo systemctl status apache2
Ако използвате UFW защитна стена (активирана по подразбиране в Ubuntu), трябва да разрешите HTTP трафик:
sudo ufw allow 'Apache Full'
Тази команда разрешава трафик на портове 80 (HTTP) и 443 (HTTPS).
Отворете уеб браузър и въведете IP адреса на вашия сървър. Трябва да видите стандартната начална страница на Apache.
За да намерите IP адреса на вашия сървър, използвайте командата:
ip addr show
Виртуалните хостове позволяват хостването на множество уебсайтове на един сървър. Тази функционалност е ключова за ефективното управление на уеб проекти.
Първо създайте основна директория за вашия сайт:
sudo mkdir -p /var/www/example.com/public_html
След това задайте правилни разрешения:
sudo chown -R $USER:$USER /var/www/example.com
sudo chmod -R 755 /var/www/example.com
Създайте проста HTML страница за тестване:
echo "<html><head><title>Welcome to example.com</title></head><body><h1>Success! The example.com virtual host is working!</h1></body></html>" > /var/www/example.com/public_html/index.html
Създайте нов конфигурационен файл:
sudo nano /etc/apache2/sites-available/example.com.conf
Добавете следната конфигурация:
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>
Активирайте новия виртуален хост и деактивирайте подразбиращия се:
sudo a2ensite example.com.conf
sudo a2dissite 000-default.conf
Накрая рестартирайте Apache:
sudo systemctl restart apache2
PHP е най-популярният скриптов език за уеб разработка. Той работи отлично с Apache.
Инсталирайте PHP и най-често използваните модули:
sudo apt install -y php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip
За да оптимизирате PHP за вашите нужди, редактирайте основния конфигурационен файл:
sudo nano /etc/php/8.1/apache2/php.ini
Променете следните настройки за по-добра производителност и сигурност:
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_time = 300
display_errors = Off
Създайте тестов файл:
echo "<?php phpinfo(); ?>" > /var/www/example.com/public_html/info.php
Рестартирайте Apache:
sudo systemctl restart apache2
Тествайте PHP, като посетите http://your_server_ip/info.php в браузъра. След тестването изтрийте файла:
rm /var/www/example.com/public_html/info.php
MySQL е популярна релационна база данни, която работи отлично с PHP.
Инсталирайте MySQL сървъра:
sudo apt install -y mysql-server
Стартирайте скрипта за сигурност на MySQL:
sudo mysql_secure_installation
Следвайте стъпките за настройка на паролата на root потребителя, премахване на анонимните потребители, забрана на отдалечен достъп като root и премахване на тестовата база данни.
Влезте в MySQL конзолата:
sudo mysql
Създайте нова база данни и потребител:
CREATE DATABASE example_db;
CREATE USER 'example_user'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON example_db.* TO 'example_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Сигурността е от първостепенно значение за всеки уеб сървър, особено ако е публично достъпен.
Инсталирайте Certbot за автоматично генериране на SSL сертификати:
sudo apt install -y certbot python3-certbot-apache
Генерирайте сертификат:
sudo certbot --apache -d example.com -d www.example.com
Следвайте инструкциите за автоматично конфигуриране на Apache за HTTPS.
Редактирайте основния конфигурационен файл на Apache:
sudo nano /etc/apache2/conf-available/security.conf
Добавете или променете следните директиви:
ServerTokens Prod
ServerSignature Off
TraceEnable Off
Активирайте допълнителни модули за сигурност:
sudo a2enmod headers
sudo a2enmod ssl
Конфигурирайте UFW за основна защита:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 'Apache Full'
sudo ufw enable
След като имате работещ LAMP стек, можете да започнете с разработката на вашия сайт.
Трансферирайте вашите уеб файлове към директорията /var/www/example.com/public_html/
използвайки SCP, SFTP или Git.
Пример с SCP:
scp -r /path/to/local/website/* user@your_server_ip:/var/www/example.com/public_html/
Задайте правилни разрешения за вашите файлове:
sudo find /var/www/example.com/public_html -type d -exec chmod 755 {} \;
sudo find /var/www/example.com/public_html -type f -exec chmod 644 {} \;
Ако използвате CMS като WordPress, следвайте специфичните инструкции за инсталация:
Редовната поддръжка е важна за сигурността и производителността на вашия сървър.
Конфигурирайте автоматични актуализации за сигурност:
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
Редовно проверявайте логовете на Apache за проблеми:
sudo tail -f /var/log/apache2/error.log
sudo tail -f /var/log/apache2/access.log
Настройте скрипт за автоматични резервни копия:
sudo nano /root/backup.sh
Добавете следното съдържание:
#!/bin/bash
DATE=$(date +%Y-%m-%d)
BACKUP_DIR="/backup"
# Създаване на директория за резервни копия
mkdir -p $BACKUP_DIR/$DATE
# Архивиране на уеб файлове
tar -czf $BACKUP_DIR/$DATE/website.tar.gz /var/www/example.com
# Архивиране на бази данни
mysqldump -u root -p --all-databases > $BACKUP_DIR/$DATE/all_databases.sql
# Изтриване на стари резервни копия (по-стари от 30 дни)
find $BACKUP_DIR -type d -mtime +30 -exec rm -rf {} \;
Направете скрипта изпълним и добавете cronjob:
sudo chmod +x /root/backup.sh
sudo crontab -e
Добавете следния ред за всекидневно изпълнение в 2 часа сутринта:
0 2 * * * /root/backup.sh
Ако имате проблеми с разрешенията, проверете собствеността на файловете:
sudo chown -R www-data:www-data /var/www/example.com/public_html
Ако PHP скриптовете не работят, проверете дали PHP модулът е активиран:
sudo a2enmod php8.1
sudo systemctl restart apache2
Проверете логовете на Apache за подробности:
sudo tail -f /var/log/apache2/example.com_error.log
Ако имате проблеми със SSL, опитайте ръчно обновяване на сертификатите:
sudo certbot renew --dry-run
След като настроите основния LAMP стек, можете да разширите функционалността на вашия сървър.
В зависимост от нуждите ви, можете да добавите:
За по-добра производителност, помислете за:
За по-добър мониторинг на вашия сървър, можете да инсталирате:
Следвайки това подробно ръководство, вие успешно настроихте пълноценен LAMP стек на вашия Ubuntu сървър. Тази среда е идеална за хостване на разнообразни уеб проекти – от прости статични сайтове до сложни динамични приложения и системи за управление на съдържанието.
Редовното обновяване и поддръжка на вашия сървър ще гарантират дългосрочна стабилност и сигурност на вашите уеб проекти. С основните знания, придобити от това ръководство, вече имате солидна база за по-нататъшно разширяване на вашите умения в управлението на уеб сървъри.
Не забравяйте да следите за нови версии на използваните софтуерни пакети и да прилагате най-добрите практики за сигурност, за да защитите вашите данни и тези на вашите потребители.
Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:
Donate ☕️ Дарете с PayPalDonate 💳 Дарете с Revolut