Установка YOURLS · 8 min read · Nov 29, 2025
Как установить самостоятелный сокращатель URL YOURLS на CentOS 8

YOURLS — это бесплатный, с открытым исходным кодом и самостоятелный сокращатель URL, написанный на PHP. Он очень похож на TinyURL или Bitly и позволяет вам запустить собственный сервис сокращения URL. Он также позволяет добавлять брендинг к вашим коротким URL. Он предлагает богатый набор функций, включая частные и публичные ссылки, пользовательские ключевые слова URL, исторические отчеты о кликах, интерфейс Ajax, поддержку Jsonp и многое другое.
В этом руководстве мы покажем вам, как установить YOURLS на CentOS 8 с SSL Let’s Encrypt.
Предварительные требования
- Сервер с установленной CentOS 8.
- Действительное доменное имя, указывающее на IP вашего сервера.
- Настроенный пароль root для сервера.
Установка LEMP сервера
Сначала вам нужно установить Nginx, MariaDB, PHP и необходимые расширения PHP на вашем сервере. Вы можете установить все из них с помощью следующей команды:
dnf install nginx mariadb-server php php-fpm php-json php-common php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath git unzip wget -yПосле установки всех пакетов отредактируйте файл конфигурации PHP-FPM /etc/php-fpm.d/www.conf и измените пользователя с apache на nginx:
nano /etc/php-fpm.d/www.confИзмените следующие строки:
user = nginx
group = nginxСохраните и закройте файл, затем запустите Nginx, MariaDB, службу PHP-FPM и включите их для автоматического запуска при перезагрузке системы с помощью следующей команды:
systemctl start nginx
systemctl enable nginx
systemctl start mariadb
systemctl enable mariadb
systemctl start php-fpm
systemctl enable php-fpmПосле завершения вы можете перейти к следующему шагу.
Создание базы данных для YOURLS
Далее вам нужно создать базу данных и пользователя для YOURLS. Сначала войдите в MariaDB с помощью следующей команды:
mysqlПосле входа создайте базу данных и пользователя с помощью следующей команды:
MariaDB [(none)]> CREATE DATABASE yourlsdb;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON yourlsdb.* TO 'yourlsuser'@'localhost' IDENTIFIED BY 'password';Далее сбросьте привилегии и выйдите из MariaDB с помощью следующей команды:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \qНа этом этапе MariaDB установлена и настроена.
Установка YOURLS
Сначала перейдите в корневую директорию веб-сервера Nginx и загрузите последнюю версию YOURLS с помощью следующей команды:
cd /var/www/html
git clone https://github.com/YOURLS/YOURLS.gitДалее переименуйте файл конфигурации примера с помощью следующей команды:
cd YOURLS/user/
cp config-sample.php config.phpДалее отредактируйте файл config.php и определите настройки вашей базы данных:
nano config.phpИзмените следующие строки:
/** Имя пользователя базы данных MySQL */
define( 'YOURLS_DB_USER', 'yourlsuser' );
/** Пароль базы данных MySQL */
define( 'YOURLS_DB_PASS', 'password' );
/ Имя базы данных для YOURLS
Используйте только строчные буквы [a-z], цифры [0-9] и символы подчеркивания [_] */
define( 'YOURLS_DB_NAME', 'yourlsdb' );
/ Хост базы данных MySQL.
Если используется нестандартный порт, укажите его как 'hostname:port', например 'localhost:9999' или '127.0.0.1:666' */
define( 'YOURLS_DB_HOST', 'localhost' );
/ Префикс таблиц MySQL
YOURLS создаст таблицы, используя этот префикс (например, `yourls_url`, `yourls_options`, ...)
** Используйте только строчные буквы [a-z], цифры [0-9] и символы подчеркивания [_] */
define( 'YOURLS_DB_PREFIX', 'yourls_' );
define( 'YOURLS_SITE', 'http://yourls.example.com' );
$yourls_user_passwords = array(
'admin' => 'yourpassword',Сохраните и закройте файл, когда закончите. Далее создайте файл .htaccess с помощью следующей команды:
nano /var/www/html/YOURLS/.htaccessДобавьте следующие строки:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /yourls-loader.php [L]
Сохраните и закройте файл, затем задайте правильные разрешения и владельца с помощью следующей команды:
chown -R nginx:nginx /var/www/html/YOURLS
chmod -R 775 /var/www/html/YOURLSПосле завершения вы можете перейти к следующему шагу.
Настройка Nginx для YOURLS
Далее создайте новый файл конфигурации виртуального хоста Nginx для YOURLS:
nano /etc/nginx/conf.d/yourls.confДобавьте следующие строки:
server {
listen 80;
server_name yourls.example.com;
root /var/www/html/YOURLS;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /yourls-loader.php$is_args$args;
}
location ~ \.php$ {
include fastcgi.conf;
fastcgi_index index.php;
fastcgi_pass unix:/run/php-fpm/www.sock;
}
}Сохраните и закройте файл, затем перезапустите Nginx и службу PHP-FPM с помощью следующей команды:
systemctl restart nginx
systemctl restart php-fpmВы также можете проверить статус Nginx с помощью следующей команды:
systemctl status nginxВы должны получить следующий вывод:
? nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/nginx.service.d
??php-fpm.conf
Active: active (running) since Tue 2020-10-20 09:37:40 EDT; 5min ago
Process: 12864 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 12862 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 12860 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 12871 (nginx)
Tasks: 3 (limit: 12523)
Memory: 5.5M
CGroup: /system.slice/nginx.service
??12871 nginx: master process /usr/sbin/nginx
??12872 nginx: worker process
??12873 nginx: worker process
Oct 20 09:37:40 centos systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Oct 20 09:37:40 centos systemd[1]: Starting The nginx HTTP and reverse proxy server...
Oct 20 09:37:40 centos nginx[12862]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Oct 20 09:37:40 centos nginx[12862]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Oct 20 09:37:40 centos systemd[1]: Started The nginx HTTP and reverse proxy server.Настройка SELinux и брандмауэра
По умолчанию SELinux включен в CentOS 8. Поэтому вам нужно будет настроить его для вашего сайта YOURLS.
Вы можете настроить SELinux с помощью следующей команды:
setsebool httpd_can_network_connect on -P
chcon -R -u system_u -t httpd_sys_rw_content_t -r object_r /var/www/html/YOURLSДалее разрешите порты 80 и 443 через брандмауэр с помощью следующей команды:
firewall-cmd --permanent --add-service=httpfirewall-cmd --permanent --add-service=https
firewall-cmd --reloadПосле завершения вы можете перейти к следующему шагу.
Доступ к YOURLS
Теперь откройте веб-браузер и получите доступ к YOURLS, используя URL http://yourls.example.com/admin. Вы должны увидеть следующую страницу:

Нажмите на кнопку Установить YOURLS. Вы должны увидеть следующую страницу:

Нажмите на “ Страница администрирования YOURLS ”. Вы должны увидеть страницу входа в YOURLS:

Введите ваше имя пользователя администратора и пароль, которые вы определили в config.php, затем нажмите кнопку Войти. Вы должны увидеть панель управления YOURLS на следующей странице:

Защита YOURLS с помощью SSL Let’s Encrypt
Далее вам нужно будет установить утилиту Certbot в вашу систему, чтобы загрузить и установить SSL Let’s Encrypt для вашего сайта YOURLS.
Вы можете установить клиент Certbot с помощью следующей команды:
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-autoДалее получите и установите SSL-сертификат для вашего сайта YOURLS с помощью следующей команды:
certbot-auto --nginx -d yourls.example.comВышеуказанная команда сначала установит все необходимые зависимости на вашем сервере. После установки вам будет предложено указать адрес электронной почты и принять условия обслуживания, как показано ниже:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for yourls.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/yourls.confВыберите, хотите ли вы перенаправить HTTP-трафик на HTTPS или нет, как показано ниже:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2Введите 2 и нажмите Enter, чтобы продолжить. После успешного завершения установки вы должны получить следующий вывод:
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/yourls.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://yourls.example.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=yourls.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/yourls.example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/yourls.example.com/privkey.pem
Your cert will expire on 2020-06-11. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again with the "certonly" option. To non-interactively renew *all*
of your certificates, run "certbot-auto renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-leТеперь вы можете безопасно получить доступ к сайту YOURLS, используя URL https://yourls.example.com.
Заключение
Поздравляем! Вы успешно установили YOURLS с Nginx и SSL Let’s Encrypt на CentOS 8. Теперь вы можете легко разместить свой собственный сокращатель URL с помощью YOURLS. Не стесняйтесь задавать вопросы, если у вас есть какие-либо.
Get new posts in your inbox
No spam. Unsubscribe anytime.