Compare commits
22 Commits
leokhoa-pa
...
8.2.2
| 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
|
||||
@@ -6,12 +6,14 @@ 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**
|
||||
|
||||
@@ -13,5 +13,3 @@ SSLProxyProtocol all -SSLv3
|
||||
|
||||
SSLSessionCache "shmcb:logs/ssl_scache(512000)"
|
||||
SSLSessionCacheTimeout 300
|
||||
|
||||
|
||||
BIN
laragon.exe
BIN
laragon.exe
Binary file not shown.
@@ -12,4 +12,3 @@
|
||||
; 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"
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -12,4 +12,3 @@
|
||||
; 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
|
||||
*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
|
||||
@@ -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
|
||||
|
||||
@@ -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