In this guide, I will explain how to install YOURLS on a Centos7 VPS with MariaDB 10.4, PHP 7.3, and Nginx with HTTPS. YOURLS stands for Your Own URL Shortener. YOURLS is an open-source self-hosted application build with PHP which allows you to run your own URL shortening service.
Also, check yourls.org! Learn more tweaks in the Wiki documentation.
First Download the latest stable version MariaDB 10.4 on centos 7.
cat <<EOF | sudo tee -a /etc/yum.repos.d/MariaDB.repo # MariaDB 10.4 CentOS repository list - created 2020-01-03 16:44 UTC # http://downloads.mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.4/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 EOF yum install MariaDB-server systemctl start mariadb systemctl enable mariadb
Once the database server is installed, execute the ‘mysql_secure_installation’ post-installation script to set your MySQL root password and secure the server.
mysql_secure_connection
Login to MySQL shell as root and configure the database.
mysql -u root -p MariaDB [(none)]> CREATE DATABASE yourlsdb; MariaDB [(none)]> GRANT ALL PRIVILEGES ON yourlsdb.* TO ‘username’@‘localhost' IDENTIFIED BY ‘password’; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> exit
Now Install PHP 7.3 and require modules.
yum install epel-release yum-utils yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm yum-config-manager --enable remi-php73 yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd php-fpm php -v
Configure PHP-FPM:
Create a new PHP-FPM pool for yourls.
vim /etc/php-fpm.d/yourls.conf [yourls] listen = /var/run/php-fpm/php-fpm.sock listen.allowed_clients = 127.0.0.1 listen.owner = nginx listen.group = nginx listen.mode = 0666 user = nginx group = nginx pm = ondemand pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35 security.limit_extensions = .php .php3 .php4 .php5 php_admin_value[error_log] = /var/log/php-fpm/www-error.log
Now Restart PHP-FPM
systemctl restart php-fpm
Now Install and configure YOURLS.
yum install git cd /var/www/html/ git clone https://github.com/YOURLS/YOURLS.git chown -R nginx: /var/www/html/YOURLS mv /var/www/html/YOURLS/user/config-sample.php /var/www/html/YOURLS/user/config.php vim /var/www/html/YOURLS/user/config.php (Replace below lines according to your configuration.) /** MySQL database username */ define( 'YOURLS_DB_USER', 'username' ); /** MySQL database password */ define( 'YOURLS_DB_PASS', 'password' ); /** The name of the database for YOURLS */ define( 'YOURLS_DB_NAME', 'yourlsdb' ); /** MySQL hostname. define( 'YOURLS_DB_HOST', 'localhost' ); /** MySQL tables prefix */ define( 'YOURLS_DB_PREFIX', 'yourls_' ); define( 'YOURLS_SITE', 'https://link.bdn.com.np’ ); define('YOURLS_ADMIN_SSL', true); /** A random secret hash used to encrypt cookies. You don't have to remember it, make it long and complicated. define( 'YOURLS_COOKIEKEY', ‘0101011’01010x0x0x0x0xx0x0x0xx0asadqw23232dsdsd2e22232 ); $yourls_user_passwords = array( 'bdnadmin => ‘password123' /* This credential is used for web login later.*/ , // 'username2' => 'password2', // You can have one or more 'login'=>'password' lines );
Install and configure Nginx:
yum install nginx vim /etc/nginx/conf.d/link.bdn.com.np.conf server { listen 80; listen [::]:80; server_name link.bdn.com.np www.link.bdn.com.np; return 301 https://$host$request_uri; } server { listen 443 ssl; listen [::]:443 ssl; server_name link.bdn.com.np www.link.bdn.com.np; ssl_certificate /etc/nginx/ssl/bundle.crt; ssl_certificate_key /etc/nginx/ssl/bdncom.np.key; root /var/www/html/YOURLS; index index.php index.html index.htm; access_log /var/log/nginx/link.bdn.com.np_access.log; error_log /var/log/nginx/link.bdn.com.np_error.log; index index.php; # Rewrites location / { try_files $uri $uri/ /yourls-loader.php; expires 14d; add_header Cache-Control 'public'; } # PHP Engine location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors off; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; } }
Test the Nginx configuration and restart Nginx:
nginx -t systemctl restart nginx
Final step:
Open** https://link.bdn.com.np/admin/install.php** in your favorite web browser and you should see the YOURLS install screen. Click on the ‘Install YOURLS’ button to populate the database.
Now login to YOURLS Administration Page.
https://link.bdn.com.np/admin username: bdnadmin password: password123
Top comments (1)
Neat article. Could you open a PR on github.com/YOURLS/awesome-yourls to get it listed?