Compare commits
22 Commits
leokhoa-pa
...
8.2.3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
705c0da87b | ||
|
|
6a9a83fb47 | ||
|
|
593338f8f8 | ||
|
|
f403e94463 | ||
|
|
ec467a6f33 | ||
|
|
4b7289618f | ||
|
|
b716689318 | ||
|
|
b99af56576 | ||
|
|
45219c7b39 | ||
|
|
98a6ced6b0 | ||
|
|
620dc8bc72 | ||
|
|
3ad0d09569 | ||
|
|
9fdd698e09 | ||
|
|
ea6254fc80 | ||
|
|
566be5ce9f | ||
|
|
959aab1bc7 | ||
|
|
3f0534e0e1 | ||
|
|
6d0ca768f9 | ||
|
|
1bf6169ffc | ||
|
|
6959b13189 | ||
|
|
2631fda37b | ||
|
|
3fcd32d767 |
1
CHANGELOG.md
Normal file
1
CHANGELOG.md
Normal file
@@ -0,0 +1 @@
|
||||
https://github.com/leokhoa/laragon/releases
|
||||
10
README.md
10
README.md
@@ -6,18 +6,20 @@ Laragon is a portable, isolated, fast & powerful universal development environme
|
||||
|
||||
Laragon is great for building and managing modern web applications. It is focused on performance - designed around stability, simplicity, flexibility and freedom.
|
||||
|
||||
Laragon is very lightweight and will stay as lean as possible. The core binary itself is less than 2MB and uses less than 4MB RAM when running.
|
||||
Laragon is very lightweight and will stay as lean as possible. The core binary itself is less than 6MB and uses around 4MB - 10MB RAM when running.
|
||||
|
||||
Laragon doesn't use Windows services. It has its own `service orchestration` which manages services asynchronously and non-blocking so you'll find things run fast & smoothly with Laragon.
|
||||
|
||||
Enjoy!
|
||||
|
||||
> Starting with Laragon 7.x, a license is required to use Laragon. For more details, visit <https://laragon.lemonsqueezy.com/>.
|
||||
|
||||
## Features
|
||||
|
||||
- **Pretty URLs**
|
||||
Use `app.test` instead of `localhost/app`.
|
||||
- **Portable**
|
||||
You can move Laragon folder around (to another disks, to another laptops, sync to Cloud,...) without any worries.
|
||||
You can move Laragon folder around (to another disks, to another laptops, sync to Cloud,...) without any worries.
|
||||
- **Isolated**
|
||||
Laragon has an isolated environment with your OS - it will keep your system clean.
|
||||
- **Easy Operation**
|
||||
@@ -26,7 +28,7 @@ Enjoy!
|
||||
Laragon comes with a modern architecture which is suitable to build modern web apps. You can work with both Apache & Nginx as they are fully-managed.
|
||||
Also, Laragon makes things a lot easier:
|
||||
- Wanna have a Wordpress CMS? Just 1 click.
|
||||
- Wanna show your local project to customers? Just 1 click.
|
||||
- Wanna show your local project to customers? Just 1 click.
|
||||
- Wanna enable/disable a PHP extension? Just 1 click.
|
||||
|
||||
|
||||
@@ -37,7 +39,7 @@ Enjoy!
|
||||
## How fast?
|
||||
Laragon starts instantly. You can set Laragon autorun when Windows starts. When running, Laragon uses just a little amount of your RAM.
|
||||
Here is the GUI of Laragon:
|
||||

|
||||

|
||||
|
||||
## How easy?
|
||||
- Laragon is very easy to install & upgrade. Just download the latest version and click `Next, Next, Next...`
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
## Supported Versions
|
||||
|
||||
| Version | Supported |Reason |
|
||||
| Version | Supported |Reason |
|
||||
| ------- | ------------------ | ---------- |
|
||||
| >=7.0 | :white_check_mark: | |
|
||||
| <=6.0 | :x: | EOL |
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
If you find a security vulnerability in Laragon, please report it via email to Leo Khoa at leo@laragon.org
|
||||
If you find a security vulnerability in Laragon, please report it via email to Leo Khoa at leo@laragon.org
|
||||
We take security seriously, and all reports will be promptly addressed.
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Alias /adminer "C:/laragon/etc/apps/adminer/"
|
||||
|
||||
# to give access from outside
|
||||
# to give access from outside
|
||||
# replace the lines
|
||||
#
|
||||
# Require local
|
||||
#
|
||||
#
|
||||
# by
|
||||
#
|
||||
# Require all granted
|
||||
@@ -12,8 +12,8 @@ Alias /adminer "C:/laragon/etc/apps/adminer/"
|
||||
|
||||
<Directory "C:/laragon/etc/apps/adminer/">
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride all
|
||||
|
||||
AllowOverride all
|
||||
|
||||
Require local
|
||||
|
||||
|
||||
</Directory>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Alias /laragon "C:/laragon/etc/apps/laragon/"
|
||||
|
||||
# to give access from outside
|
||||
# to give access from outside
|
||||
# replace the lines
|
||||
#
|
||||
# Require local
|
||||
#
|
||||
#
|
||||
# by
|
||||
#
|
||||
# Require all granted
|
||||
@@ -12,18 +12,18 @@ Alias /laragon "C:/laragon/etc/apps/laragon/"
|
||||
|
||||
<Directory "C:/laragon/etc/apps/laragon/">
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride None
|
||||
|
||||
AllowOverride None
|
||||
|
||||
Require local
|
||||
|
||||
</Directory>
|
||||
|
||||
<Directory "C:/laragon/etc/apps/laragon/uploads/">
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride None
|
||||
AllowOverride None
|
||||
DirectoryIndex None.Always.Listing
|
||||
Require local
|
||||
|
||||
|
||||
SetHandler none
|
||||
SetHandler default-handler
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
Alias /memcached "C:/laragon/etc/apps/memcached/"
|
||||
|
||||
# to give access from outside
|
||||
# to give access from outside
|
||||
# replace the lines
|
||||
#
|
||||
# Require local
|
||||
# Require local
|
||||
#
|
||||
# by
|
||||
#
|
||||
@@ -13,7 +13,7 @@ Alias /memcached "C:/laragon/etc/apps/memcached/"
|
||||
<Directory "C:/laragon/etc/apps/memcached/">
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride all
|
||||
|
||||
|
||||
Require local
|
||||
|
||||
</Directory>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Alias /phpmyadmin "C:/laragon/etc/apps/phpMyAdmin/"
|
||||
|
||||
# to give access from outside
|
||||
# to give access from outside
|
||||
# replace the lines
|
||||
#
|
||||
# Require local
|
||||
#
|
||||
#
|
||||
# by
|
||||
#
|
||||
# Require all granted
|
||||
@@ -12,8 +12,8 @@ Alias /phpmyadmin "C:/laragon/etc/apps/phpMyAdmin/"
|
||||
|
||||
<Directory "C:/laragon/etc/apps/phpMyAdmin/">
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride all
|
||||
|
||||
AllowOverride all
|
||||
|
||||
Require local
|
||||
|
||||
|
||||
</Directory>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
Alias /redis "C:/laragon/etc/apps/phpredisAdmin/"
|
||||
|
||||
# to give access from outside
|
||||
# to give access from outside
|
||||
# replace the lines
|
||||
#
|
||||
# Require local
|
||||
# Require local
|
||||
#
|
||||
# by
|
||||
#
|
||||
@@ -13,7 +13,7 @@ Alias /redis "C:/laragon/etc/apps/phpredisAdmin/"
|
||||
<Directory "C:/laragon/etc/apps/phpredisAdmin/">
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride all
|
||||
|
||||
|
||||
Require local
|
||||
|
||||
|
||||
</Directory>
|
||||
|
||||
@@ -8,7 +8,7 @@ FcgidInitialEnv TEMP "C:/Windows/Temp"
|
||||
FcgidInitialEnv TMP "C:/Windows/Temp"
|
||||
FcgidInitialEnv windir "C:/Windows"
|
||||
|
||||
# 10 hrs: in case you have long running scripts, increase FcgidIOTimeout
|
||||
# 10 hrs: in case you have long running scripts, increase FcgidIOTimeout
|
||||
FcgidIOTimeout 36000
|
||||
FcgidConnectTimeout 16
|
||||
FcgidMaxRequestsPerProcess 0
|
||||
|
||||
@@ -5,7 +5,7 @@ SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4
|
||||
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4
|
||||
|
||||
|
||||
SSLHonorCipherOrder on
|
||||
SSLHonorCipherOrder on
|
||||
|
||||
SSLProtocol all -SSLv3
|
||||
SSLProxyProtocol all -SSLv3
|
||||
@@ -13,5 +13,3 @@ SSLProxyProtocol all -SSLv3
|
||||
|
||||
SSLSessionCache "shmcb:logs/ssl_scache(512000)"
|
||||
SSLSessionCacheTimeout 300
|
||||
|
||||
|
||||
@@ -38,14 +38,14 @@ if exist "%USER_DIR%\user.cmd" (
|
||||
echo :: call start-ssh-agent.cmd
|
||||
echo :: set PATH=%%USER_DIR%%\bin\whatever;%%PATH%%
|
||||
echo.
|
||||
echo :: cmd /c start http://localhost
|
||||
echo :: cmd /c start http://localhost
|
||||
echo.
|
||||
) > "%USER_DIR%\user.cmd"
|
||||
|
||||
|
||||
:: cd /d "%CMDER_ROOT%\..\..\www"
|
||||
rem
|
||||
)
|
||||
|
||||
:: Laragon End -------------------------------------------------------------------
|
||||
|
||||
|
||||
exit /b 0
|
||||
|
||||
@@ -6,7 +6,7 @@ location /adminer {
|
||||
|
||||
location ~ ^/adminer/(.+\.php)$ {
|
||||
alias C:/laragon/etc/apps/adminer/$1;
|
||||
fastcgi_pass php_upstream;
|
||||
fastcgi_pass php_upstream;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_param SCRIPT_FILENAME $request_filename;
|
||||
|
||||
@@ -12,7 +12,7 @@ location ~ /laragon/uploads/(.+)\.php$ {
|
||||
location ~ ^/laragon/(.+\.php)$ {
|
||||
allow all;
|
||||
alias C:/laragon/etc/apps/laragon/$1;
|
||||
fastcgi_pass php_upstream;
|
||||
fastcgi_pass php_upstream;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_param SCRIPT_FILENAME $request_filename;
|
||||
|
||||
@@ -3,10 +3,10 @@ location /memcached {
|
||||
alias C:/laragon/etc/apps/memcached/;
|
||||
index index.php;
|
||||
}
|
||||
|
||||
|
||||
location ~ ^/memcached/(.+\.php)$ {
|
||||
alias C:/laragon/etc/apps/memcached/$1;
|
||||
fastcgi_pass php_upstream;
|
||||
fastcgi_pass php_upstream;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param SCRIPT_FILENAME $request_filename;
|
||||
|
||||
|
||||
@@ -3,12 +3,12 @@ location /phpmyadmin {
|
||||
alias C:/laragon/etc/apps/phpmyadmin/;
|
||||
index index.php;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
location ~ ^/phpmyadmin/(.+\.php)$ {
|
||||
alias C:/laragon/etc/apps/phpmyadmin/$1;
|
||||
fastcgi_pass php_upstream;
|
||||
fastcgi_pass php_upstream;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param SCRIPT_FILENAME $request_filename;
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ location /redis {
|
||||
|
||||
location ~ ^/redis/(.+\.php)$ {
|
||||
alias C:/laragon/etc/apps/phpRedisAdmin/$1;
|
||||
fastcgi_pass php_upstream;
|
||||
fastcgi_pass php_upstream;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param SCRIPT_FILENAME $request_filename;
|
||||
|
||||
|
||||
@@ -173,9 +173,9 @@ class Memcached
|
||||
protected $socket = null;
|
||||
|
||||
public function getVersion() {
|
||||
return ['localhost:11211' => '1.4.5'];
|
||||
return ['localhost:11211' => '1.4.5'];
|
||||
}
|
||||
|
||||
|
||||
|
||||
//may check: https://raw.githubusercontent.com/GoogleCloudPlatform/python-compat-runtime/master/appengine-compat/exported_appengine_sdk/php/sdk/google/appengine/runtime/Memcached.php
|
||||
public function setMulti() {
|
||||
@@ -185,7 +185,7 @@ class Memcached
|
||||
//TODO
|
||||
die('TODO');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add a serer to the server pool
|
||||
*
|
||||
@@ -444,7 +444,7 @@ class Memcached
|
||||
|
||||
|
||||
/**
|
||||
* Store an item.
|
||||
* Store an item.
|
||||
* Fails if $key already exists
|
||||
*
|
||||
* @param string $key
|
||||
@@ -464,7 +464,7 @@ class Memcached
|
||||
|
||||
if ('STORED' == $s) {
|
||||
$this->resultCode = Memcached::RES_SUCCESS;
|
||||
$this->resultMessage = '';
|
||||
$this->resultMessage = '';
|
||||
return true;
|
||||
|
||||
} else {
|
||||
|
||||
BIN
laragon.exe
BIN
laragon.exe
Binary file not shown.
@@ -9,7 +9,6 @@
|
||||
; PWD: Current working directory - where the COMMANDS run
|
||||
|
||||
# Examples:
|
||||
; My Cool App: autorun node start $PORT PORT=9000 env_file=usr\my_file.env PWD=usr/proj/myapp DB_HOST=1.2.3.4 DB_PORT=9999 DB_USER=user DB_PASS="!$Ab.cs3cre1" DB_NAME=cooldb
|
||||
; My Cool App: autorun node start $PORT PORT=9000 env_file=usr\my_file.env PWD=usr/proj/myapp DB_HOST=1.2.3.4 DB_PORT=9999 DB_USER=user DB_PASS="!$Ab.cs3cre1" DB_NAME=cooldb
|
||||
; Awesome Tool: "PATH HAS SPACES SHOULD BE QUOTED LIKE THIS"
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
; PWD: Current working directory - where the COMMANDS run
|
||||
|
||||
# Examples:
|
||||
; My Cool App: autorun node start $PORT PORT=9000 env_file=usr\my_file.env PWD=usr/proj/myapp DB_HOST=1.2.3.4 DB_PORT=9999 DB_USER=user DB_PASS="!$Ab.cs3cre1" DB_NAME=cooldb
|
||||
; My Cool App: autorun node start $PORT PORT=9000 env_file=usr\my_file.env PWD=usr/proj/myapp DB_HOST=1.2.3.4 DB_PORT=9999 DB_USER=user DB_PASS="!$Ab.cs3cre1" DB_NAME=cooldb
|
||||
; Awesome Tool: "PATH HAS SPACES SHOULD BE QUOTED LIKE THIS"
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -1,25 +1,33 @@
|
||||
# PHP
|
||||
# https://windows.php.net/download/
|
||||
# NTS = Non Thread Safe
|
||||
*PHP-8.4=https://windows.php.net/downloads/releases/archives/php-8.4.2-nts-Win32-vs17-x64.zip
|
||||
*PHP-8.3=https://windows.php.net/downloads/releases/archives/php-8.3.15-nts-Win32-vs16-x64.zip
|
||||
*PHP-8.2=https://windows.php.net/downloads/releases/archives/php-8.2.27-nts-Win32-vs16-x64.zip
|
||||
*PHP-8.1=https://windows.php.net/downloads/releases/archives/php-8.1.31-nts-Win32-vs16-x64.zip
|
||||
# NTS = Non Thread Safe
|
||||
*PHP-8.4=https://windows.php.net/downloads/releases/archives/php-8.4.3-nts-Win32-vs17-x64.zip
|
||||
*PHP-8.3=https://windows.php.net/downloads/releases/archives/php-8.3.16-nts-Win32-vs16-x64.zip
|
||||
*PHP-8.2=https://windows.php.net/downloads/releases/archives/php-8.2.26-nts-Win32-vs16-x64.zip
|
||||
*PHP-8.1=https://windows.php.net/downloads/releases/archives/php-8.1.30-nts-Win32-vs16-x64.zip
|
||||
|
||||
|
||||
---
|
||||
# Web Servers
|
||||
Apache-2.4.63=https://www.apachelounge.com/download/VS17/binaries/httpd-2.4.63-250122-win64-VS17.zip
|
||||
Apache-2.4.57=https://www.apachelounge.com/download/VS16/binaries/httpd-2.4.57-win64-VS16.zip
|
||||
Nginx-1.27.4=https://nginx.org/download/nginx-1.27.4.zip
|
||||
|
||||
---
|
||||
|
||||
|
||||
# Node.js
|
||||
# https://nodejs.org/en/download/prebuilt-binaries/current
|
||||
node-23=https://nodejs.org/dist/v23.4.0/node-v23.4.0-win-x64.zip
|
||||
node-22=https://nodejs.org/dist/v22.12.0/node-v22.12.0-win-x64.zip
|
||||
node-23.9=https://nodejs.org/dist/v23.9.0/node-v23.9.0-win-x64.zip
|
||||
node-22.14=https://nodejs.org/dist/v22.14.0/node-v22.14.0-win-x64.zip
|
||||
|
||||
---
|
||||
|
||||
|
||||
# phpMyAdmin
|
||||
# After download, visit -> http://localhost/phpmyadmin
|
||||
phpmyadmin=https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip
|
||||
phpmyadmin-6.0snapshot=https://files.phpmyadmin.net/snapshots/phpMyAdmin-6.0+snapshot-english.tar.xz
|
||||
phpmyadmin=https://files.phpmyadmin.net/phpMyAdmin/5.2.2/phpMyAdmin-5.2.2-english.zip
|
||||
|
||||
# DB Tools
|
||||
DBeaver=https://dbeaver.io/files/dbeaver-ce-latest-win32.win32.x86_64.zip
|
||||
@@ -43,7 +51,7 @@ postgresql-15.10=https://sbp.enterprisedb.com/getfile.jsp?fileid=1259300
|
||||
---
|
||||
|
||||
|
||||
# MongoDB
|
||||
# MongoDB
|
||||
# https://www.mongodb.com/try/download/community
|
||||
#mongodb-8=https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-8.0.4.zip
|
||||
#mongodb-7=https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-7.0.14.zip
|
||||
@@ -56,8 +64,10 @@ code=https://go.microsoft.com/fwlink/?Linkid=850641
|
||||
---
|
||||
# Golang
|
||||
# https://go.dev/dl/
|
||||
golang-1.23=https://go.dev/dl/go1.23.4.windows-amd64.zip
|
||||
go-1.24=https://go.dev/dl/go1.24.1.windows-amd64.zip
|
||||
go-1.23=https://go.dev/dl/go1.23.4.windows-amd64.zip
|
||||
|
||||
|
||||
# Pocketbase
|
||||
# https://github.com/pocketbase/pocketbase/releases
|
||||
pocketbase=https://github.com/pocketbase/pocketbase/releases/download/v0.23.7/pocketbase_0.23.7_windows_amd64.zip
|
||||
pocketbase=https://github.com/pocketbase/pocketbase/releases/download/v0.25.9/pocketbase_0.25.9_windows_amd64.zip
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
Simplicity is the ultimate sophistication. - Leonardo da Vinci
|
||||
Success is going from failure to failure without losing your enthusiasm. - Winston Churchill
|
||||
Success is going from failure to failure without losing your enthusiasm. - Winston Churchill
|
||||
The journey of a thousand miles begins with one step. - Lao Tzu
|
||||
Dream big and dare to fail. - Norman Vaughan
|
||||
Dream big and dare to fail. - Norman Vaughan
|
||||
The power of imagination makes us infinite. - John Muir
|
||||
Make each day your masterpiece. - John Wooden
|
||||
Believe and act as if it were impossible to fail. - Charles Kettering
|
||||
Make each day your masterpiece. - John Wooden
|
||||
Believe and act as if it were impossible to fail. - Charles Kettering
|
||||
Light tomorrow with today. - Elizabeth Barrett Browning
|
||||
Even if you're on the right track, you'll get run over if you just sit there. - Will Rogers
|
||||
Even if you're on the right track, you'll get run over if you just sit there. - Will Rogers
|
||||
Believe you can and you're halfway there. - Theodore Roosevelt
|
||||
Don't wait. The time will never be just right. - Napoleon Hill
|
||||
A year from now you may wish you had started today. - Karen Lamb
|
||||
Don't wait. The time will never be just right. - Napoleon Hill
|
||||
A year from now you may wish you had started today. - Karen Lamb
|
||||
It is never too late to be what you might have been. - George Eliot
|
||||
If there is no struggle, there is no progress. - Frederick Douglass
|
||||
What we fear doing most is usually what we most need to do. - Tim Ferriss
|
||||
|
||||
@@ -2,5 +2,32 @@
|
||||
AutoCreateDatabase=true
|
||||
Cached=true
|
||||
|
||||
# Blank: an empty project
|
||||
Blank=
|
||||
|
||||
# WordPress
|
||||
WordPress=https://wordpress.org/latest.zip
|
||||
WordPress=https://wordpress.org/latest.tar.gz
|
||||
------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Laravel
|
||||
|
||||
Laravel=composer create-project laravel/laravel %s --prefer-dist
|
||||
Laravel CLI=laravel new %s
|
||||
# Laravel (zip)=PATH-TO-YOUR-ZIP
|
||||
------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# CakePHP
|
||||
### CakePHP=composer create-project --prefer-dist cakephp/app %s
|
||||
|
||||
# Symfony
|
||||
Symfony=composer create-project symfony/website-skeleton %s
|
||||
|
||||
232
www/index.php
232
www/index.php
@@ -1,167 +1,105 @@
|
||||
<?php
|
||||
if (!empty($_GET['q'])) {
|
||||
switch ($_GET['q']) {
|
||||
case 'info':
|
||||
phpinfo();
|
||||
exit;
|
||||
break;
|
||||
}
|
||||
$query = htmlspecialchars($_GET['q'], ENT_QUOTES, 'UTF-8');
|
||||
|
||||
switch ($query) {
|
||||
case 'info':
|
||||
phpinfo();
|
||||
exit;
|
||||
default:
|
||||
header("HTTP/1.0 404 Not Found");
|
||||
echo "Invalid query parameter.";
|
||||
exit;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Laragon</title>
|
||||
<link href="https://fonts.googleapis.com/css?family=Karla:400" rel="stylesheet" type="text/css">
|
||||
<link rel="shortcut icon" href="https://i.imgur.com/ky9oqct.png" type="image/png">
|
||||
<style>
|
||||
*,
|
||||
:before *,
|
||||
:after * {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Laragon</title>
|
||||
<link href="https://fonts.googleapis.com/css?family=Karla:400" rel="stylesheet" type="text/css">
|
||||
<style>
|
||||
html, body {
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: 'Karla', sans-serif;
|
||||
font-weight: 100;
|
||||
background-color: #f9f9f9;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
min-height: 100vh;
|
||||
font-weight: 100;
|
||||
font-family: 'Karla', sans-serif;
|
||||
font-size: 18px;
|
||||
}
|
||||
.container {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
header,
|
||||
main,
|
||||
nav,
|
||||
aside {
|
||||
padding: 1rem;
|
||||
margin: auto;
|
||||
max-width: 1200px;
|
||||
text-align: center;
|
||||
}
|
||||
.content {
|
||||
max-width: 800px;
|
||||
padding: 100px;
|
||||
background: #fff;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
header {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.title {
|
||||
font-size: 60px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.header__item {
|
||||
margin: 0;
|
||||
padding: 1rem;
|
||||
}
|
||||
.info {
|
||||
margin-top: 20px;
|
||||
font-size: 18px;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.header--logo {
|
||||
height: 8rem;
|
||||
}
|
||||
.info a {
|
||||
color: #007bff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 5rem;
|
||||
}
|
||||
.info a:hover {
|
||||
color: #0056b3;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
main {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
.opt {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
nav {
|
||||
width: 100%;
|
||||
}
|
||||
.opt a {
|
||||
font-size: 18px;
|
||||
color: #007bff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #37ADFF;
|
||||
font-weight: 900;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: red;
|
||||
font-weight: 900;
|
||||
transition: 300ms;
|
||||
}
|
||||
|
||||
main a {
|
||||
color: grey;
|
||||
}
|
||||
|
||||
nav a {
|
||||
display: block;
|
||||
margin: 1rem 0;
|
||||
}
|
||||
|
||||
nav a:after {
|
||||
content: '→';
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
|
||||
.alert {
|
||||
color: red;
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
@media (min-width: 650px) {
|
||||
h1 {
|
||||
font-size: 10rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
.opt a:hover {
|
||||
color: #0056b3;
|
||||
text-decoration: underline;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<img class="header__item header--logo" src="https://i.imgur.com/ky9oqct.png" alt="Offline">
|
||||
<h1 class="header__item header--title" title="Laragon">Laragon</h1>
|
||||
</header>
|
||||
<main>
|
||||
<p>
|
||||
<?php print($_SERVER['SERVER_SOFTWARE']); ?>
|
||||
</p>
|
||||
<p>
|
||||
PHP version: <?php print PHP_VERSION; ?> <span><a title="phpinfo()" href="/?q=info">info</a></span>
|
||||
</p>
|
||||
<p>
|
||||
Document Root: <?php print($_SERVER['DOCUMENT_ROOT']); ?>
|
||||
</p>
|
||||
<p>
|
||||
<a title="Getting Started" href="https://laragon.org/docs">Getting Started</a>
|
||||
</p>
|
||||
</main>
|
||||
<?php
|
||||
$dirList = glob('*', GLOB_ONLYDIR);
|
||||
if (!empty($dirList)) :
|
||||
?>
|
||||
<nav>
|
||||
<ul>
|
||||
<?php
|
||||
foreach ($dirList as $key => $value) :
|
||||
$link = 'https://' . $value . '.test';
|
||||
?>
|
||||
<a href="<?php echo $link; ?>" target="_blank"><?php echo $link; ?></a>
|
||||
<?php
|
||||
endforeach;
|
||||
?>
|
||||
</ul>
|
||||
</nav>
|
||||
<?php
|
||||
else :
|
||||
?>
|
||||
<aside>
|
||||
<p class="alert">There are no directories, create your first project now</p>
|
||||
<div>
|
||||
<img src="https://i.imgur.com/3Sgu8XI.png" alt="Offline">
|
||||
</div>
|
||||
</aside>
|
||||
<?php
|
||||
endif;
|
||||
?>
|
||||
<div class="container">
|
||||
<div class="content">
|
||||
<h1 class="title" title="Laragon">Laragon</h1>
|
||||
<div class="info">
|
||||
<p><?php echo htmlspecialchars($_SERVER['SERVER_SOFTWARE'], ENT_QUOTES, 'UTF-8'); ?></p>
|
||||
<p>PHP version: <?php echo htmlspecialchars(phpversion(), ENT_QUOTES, 'UTF-8'); ?>
|
||||
<a title="phpinfo()" href="/?q=info">info</a>
|
||||
</p>
|
||||
<p>Document Root: <?php echo htmlspecialchars($_SERVER['DOCUMENT_ROOT'], ENT_QUOTES, 'UTF-8'); ?></p>
|
||||
</div>
|
||||
<div class="opt">
|
||||
<p><a title="Getting Started" href="https://laragon.org/docs">Getting Started</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user