Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6a9a83fb47 | ||
|
|
593338f8f8 | ||
|
|
f403e94463 | ||
|
|
ec467a6f33 | ||
|
|
4b7289618f | ||
|
|
b716689318 | ||
|
|
b99af56576 | ||
|
|
45219c7b39 | ||
|
|
98a6ced6b0 | ||
|
|
620dc8bc72 | ||
|
|
3ad0d09569 | ||
|
|
9fdd698e09 | ||
|
|
ea6254fc80 | ||
|
|
566be5ce9f | ||
|
|
959aab1bc7 | ||
|
|
3f0534e0e1 | ||
|
|
6d0ca768f9 | ||
|
|
1bf6169ffc | ||
|
|
6959b13189 | ||
|
|
2631fda37b | ||
|
|
3fcd32d767 | ||
|
|
b371252f27 |
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 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.
|
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!
|
Enjoy!
|
||||||
|
|
||||||
|
> Starting with Laragon 7.x, a license is required to use Laragon. For more details, visit <https://laragon.lemonsqueezy.com/>.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- **Pretty URLs**
|
- **Pretty URLs**
|
||||||
Use `app.test` instead of `localhost/app`.
|
Use `app.test` instead of `localhost/app`.
|
||||||
- **Portable**
|
- **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**
|
- **Isolated**
|
||||||
Laragon has an isolated environment with your OS - it will keep your system clean.
|
Laragon has an isolated environment with your OS - it will keep your system clean.
|
||||||
- **Easy Operation**
|
- **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.
|
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:
|
Also, Laragon makes things a lot easier:
|
||||||
- Wanna have a Wordpress CMS? Just 1 click.
|
- 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.
|
- Wanna enable/disable a PHP extension? Just 1 click.
|
||||||
|
|
||||||
|
|
||||||
@@ -37,7 +39,7 @@ Enjoy!
|
|||||||
## How fast?
|
## How fast?
|
||||||
Laragon starts instantly. You can set Laragon autorun when Windows starts. When running, Laragon uses just a little amount of your RAM.
|
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:
|
Here is the GUI of Laragon:
|
||||||

|

|
||||||
|
|
||||||
## How easy?
|
## How easy?
|
||||||
- Laragon is very easy to install & upgrade. Just download the latest version and click `Next, Next, Next...`
|
- Laragon is very easy to install & upgrade. Just download the latest version and click `Next, Next, Next...`
|
||||||
|
|||||||
13
SECURITY.md
13
SECURITY.md
@@ -2,13 +2,12 @@
|
|||||||
|
|
||||||
## Supported Versions
|
## Supported Versions
|
||||||
|
|
||||||
| Version | Supported |
|
| Version | Supported |Reason |
|
||||||
| ------- | ------------------ |
|
| ------- | ------------------ | ---------- |
|
||||||
| 7.x.x | :white_check_mark: |
|
| >=7.0 | :white_check_mark: | |
|
||||||
| < 6.x | :x: |
|
| <=6.0 | :x: | EOL |
|
||||||
|
|
||||||
## Reporting a Vulnerability
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
For the moment, you can reach out @leokhoa via Slack: <https://laragon.slack.com/> - send a direct message.
|
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.
|
||||||
More options will be evaluated in the near future.
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
Alias /adminer "C:/laragon/etc/apps/adminer/"
|
Alias /adminer "C:/laragon/etc/apps/adminer/"
|
||||||
|
|
||||||
# to give access from outside
|
# to give access from outside
|
||||||
# replace the lines
|
# replace the lines
|
||||||
#
|
#
|
||||||
# Require local
|
# Require local
|
||||||
#
|
#
|
||||||
# by
|
# by
|
||||||
#
|
#
|
||||||
# Require all granted
|
# Require all granted
|
||||||
@@ -12,8 +12,8 @@ Alias /adminer "C:/laragon/etc/apps/adminer/"
|
|||||||
|
|
||||||
<Directory "C:/laragon/etc/apps/adminer/">
|
<Directory "C:/laragon/etc/apps/adminer/">
|
||||||
Options Indexes FollowSymLinks MultiViews
|
Options Indexes FollowSymLinks MultiViews
|
||||||
AllowOverride all
|
AllowOverride all
|
||||||
|
|
||||||
Require local
|
Require local
|
||||||
|
|
||||||
</Directory>
|
</Directory>
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
Alias /laragon "C:/laragon/etc/apps/laragon/"
|
Alias /laragon "C:/laragon/etc/apps/laragon/"
|
||||||
|
|
||||||
# to give access from outside
|
# to give access from outside
|
||||||
# replace the lines
|
# replace the lines
|
||||||
#
|
#
|
||||||
# Require local
|
# Require local
|
||||||
#
|
#
|
||||||
# by
|
# by
|
||||||
#
|
#
|
||||||
# Require all granted
|
# Require all granted
|
||||||
@@ -12,18 +12,18 @@ Alias /laragon "C:/laragon/etc/apps/laragon/"
|
|||||||
|
|
||||||
<Directory "C:/laragon/etc/apps/laragon/">
|
<Directory "C:/laragon/etc/apps/laragon/">
|
||||||
Options Indexes FollowSymLinks MultiViews
|
Options Indexes FollowSymLinks MultiViews
|
||||||
AllowOverride None
|
AllowOverride None
|
||||||
|
|
||||||
Require local
|
Require local
|
||||||
|
|
||||||
</Directory>
|
</Directory>
|
||||||
|
|
||||||
<Directory "C:/laragon/etc/apps/laragon/uploads/">
|
<Directory "C:/laragon/etc/apps/laragon/uploads/">
|
||||||
Options Indexes FollowSymLinks MultiViews
|
Options Indexes FollowSymLinks MultiViews
|
||||||
AllowOverride None
|
AllowOverride None
|
||||||
DirectoryIndex None.Always.Listing
|
DirectoryIndex None.Always.Listing
|
||||||
Require local
|
Require local
|
||||||
|
|
||||||
SetHandler none
|
SetHandler none
|
||||||
SetHandler default-handler
|
SetHandler default-handler
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
Alias /memcached "C:/laragon/etc/apps/memcached/"
|
Alias /memcached "C:/laragon/etc/apps/memcached/"
|
||||||
|
|
||||||
# to give access from outside
|
# to give access from outside
|
||||||
# replace the lines
|
# replace the lines
|
||||||
#
|
#
|
||||||
# Require local
|
# Require local
|
||||||
#
|
#
|
||||||
# by
|
# by
|
||||||
#
|
#
|
||||||
@@ -13,7 +13,7 @@ Alias /memcached "C:/laragon/etc/apps/memcached/"
|
|||||||
<Directory "C:/laragon/etc/apps/memcached/">
|
<Directory "C:/laragon/etc/apps/memcached/">
|
||||||
Options Indexes FollowSymLinks MultiViews
|
Options Indexes FollowSymLinks MultiViews
|
||||||
AllowOverride all
|
AllowOverride all
|
||||||
|
|
||||||
Require local
|
Require local
|
||||||
|
|
||||||
</Directory>
|
</Directory>
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
Alias /phpmyadmin "C:/laragon/etc/apps/phpMyAdmin/"
|
Alias /phpmyadmin "C:/laragon/etc/apps/phpMyAdmin/"
|
||||||
|
|
||||||
# to give access from outside
|
# to give access from outside
|
||||||
# replace the lines
|
# replace the lines
|
||||||
#
|
#
|
||||||
# Require local
|
# Require local
|
||||||
#
|
#
|
||||||
# by
|
# by
|
||||||
#
|
#
|
||||||
# Require all granted
|
# Require all granted
|
||||||
@@ -12,8 +12,8 @@ Alias /phpmyadmin "C:/laragon/etc/apps/phpMyAdmin/"
|
|||||||
|
|
||||||
<Directory "C:/laragon/etc/apps/phpMyAdmin/">
|
<Directory "C:/laragon/etc/apps/phpMyAdmin/">
|
||||||
Options Indexes FollowSymLinks MultiViews
|
Options Indexes FollowSymLinks MultiViews
|
||||||
AllowOverride all
|
AllowOverride all
|
||||||
|
|
||||||
Require local
|
Require local
|
||||||
|
|
||||||
</Directory>
|
</Directory>
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
Alias /redis "C:/laragon/etc/apps/phpredisAdmin/"
|
Alias /redis "C:/laragon/etc/apps/phpredisAdmin/"
|
||||||
|
|
||||||
# to give access from outside
|
# to give access from outside
|
||||||
# replace the lines
|
# replace the lines
|
||||||
#
|
#
|
||||||
# Require local
|
# Require local
|
||||||
#
|
#
|
||||||
# by
|
# by
|
||||||
#
|
#
|
||||||
@@ -13,7 +13,7 @@ Alias /redis "C:/laragon/etc/apps/phpredisAdmin/"
|
|||||||
<Directory "C:/laragon/etc/apps/phpredisAdmin/">
|
<Directory "C:/laragon/etc/apps/phpredisAdmin/">
|
||||||
Options Indexes FollowSymLinks MultiViews
|
Options Indexes FollowSymLinks MultiViews
|
||||||
AllowOverride all
|
AllowOverride all
|
||||||
|
|
||||||
Require local
|
Require local
|
||||||
|
|
||||||
</Directory>
|
</Directory>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ FcgidInitialEnv TEMP "C:/Windows/Temp"
|
|||||||
FcgidInitialEnv TMP "C:/Windows/Temp"
|
FcgidInitialEnv TMP "C:/Windows/Temp"
|
||||||
FcgidInitialEnv windir "C:/Windows"
|
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
|
FcgidIOTimeout 36000
|
||||||
FcgidConnectTimeout 16
|
FcgidConnectTimeout 16
|
||||||
FcgidMaxRequestsPerProcess 0
|
FcgidMaxRequestsPerProcess 0
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4
|
|||||||
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4
|
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4
|
||||||
|
|
||||||
|
|
||||||
SSLHonorCipherOrder on
|
SSLHonorCipherOrder on
|
||||||
|
|
||||||
SSLProtocol all -SSLv3
|
SSLProtocol all -SSLv3
|
||||||
SSLProxyProtocol all -SSLv3
|
SSLProxyProtocol all -SSLv3
|
||||||
@@ -13,5 +13,3 @@ SSLProxyProtocol all -SSLv3
|
|||||||
|
|
||||||
SSLSessionCache "shmcb:logs/ssl_scache(512000)"
|
SSLSessionCache "shmcb:logs/ssl_scache(512000)"
|
||||||
SSLSessionCacheTimeout 300
|
SSLSessionCacheTimeout 300
|
||||||
|
|
||||||
|
|
||||||
@@ -38,14 +38,14 @@ if exist "%USER_DIR%\user.cmd" (
|
|||||||
echo :: call start-ssh-agent.cmd
|
echo :: call start-ssh-agent.cmd
|
||||||
echo :: set PATH=%%USER_DIR%%\bin\whatever;%%PATH%%
|
echo :: set PATH=%%USER_DIR%%\bin\whatever;%%PATH%%
|
||||||
echo.
|
echo.
|
||||||
echo :: cmd /c start http://localhost
|
echo :: cmd /c start http://localhost
|
||||||
echo.
|
echo.
|
||||||
) > "%USER_DIR%\user.cmd"
|
) > "%USER_DIR%\user.cmd"
|
||||||
|
|
||||||
:: cd /d "%CMDER_ROOT%\..\..\www"
|
:: cd /d "%CMDER_ROOT%\..\..\www"
|
||||||
rem
|
rem
|
||||||
)
|
)
|
||||||
|
|
||||||
:: Laragon End -------------------------------------------------------------------
|
:: Laragon End -------------------------------------------------------------------
|
||||||
|
|
||||||
exit /b 0
|
exit /b 0
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ location /adminer {
|
|||||||
|
|
||||||
location ~ ^/adminer/(.+\.php)$ {
|
location ~ ^/adminer/(.+\.php)$ {
|
||||||
alias C:/laragon/etc/apps/adminer/$1;
|
alias C:/laragon/etc/apps/adminer/$1;
|
||||||
fastcgi_pass php_upstream;
|
fastcgi_pass php_upstream;
|
||||||
fastcgi_index index.php;
|
fastcgi_index index.php;
|
||||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||||
fastcgi_param SCRIPT_FILENAME $request_filename;
|
fastcgi_param SCRIPT_FILENAME $request_filename;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ location ~ /laragon/uploads/(.+)\.php$ {
|
|||||||
location ~ ^/laragon/(.+\.php)$ {
|
location ~ ^/laragon/(.+\.php)$ {
|
||||||
allow all;
|
allow all;
|
||||||
alias C:/laragon/etc/apps/laragon/$1;
|
alias C:/laragon/etc/apps/laragon/$1;
|
||||||
fastcgi_pass php_upstream;
|
fastcgi_pass php_upstream;
|
||||||
fastcgi_index index.php;
|
fastcgi_index index.php;
|
||||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||||
fastcgi_param SCRIPT_FILENAME $request_filename;
|
fastcgi_param SCRIPT_FILENAME $request_filename;
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ location /memcached {
|
|||||||
alias C:/laragon/etc/apps/memcached/;
|
alias C:/laragon/etc/apps/memcached/;
|
||||||
index index.php;
|
index index.php;
|
||||||
}
|
}
|
||||||
|
|
||||||
location ~ ^/memcached/(.+\.php)$ {
|
location ~ ^/memcached/(.+\.php)$ {
|
||||||
alias C:/laragon/etc/apps/memcached/$1;
|
alias C:/laragon/etc/apps/memcached/$1;
|
||||||
fastcgi_pass php_upstream;
|
fastcgi_pass php_upstream;
|
||||||
fastcgi_index index.php;
|
fastcgi_index index.php;
|
||||||
fastcgi_param SCRIPT_FILENAME $request_filename;
|
fastcgi_param SCRIPT_FILENAME $request_filename;
|
||||||
|
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ location /phpmyadmin {
|
|||||||
alias C:/laragon/etc/apps/phpmyadmin/;
|
alias C:/laragon/etc/apps/phpmyadmin/;
|
||||||
index index.php;
|
index index.php;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
location ~ ^/phpmyadmin/(.+\.php)$ {
|
location ~ ^/phpmyadmin/(.+\.php)$ {
|
||||||
alias C:/laragon/etc/apps/phpmyadmin/$1;
|
alias C:/laragon/etc/apps/phpmyadmin/$1;
|
||||||
fastcgi_pass php_upstream;
|
fastcgi_pass php_upstream;
|
||||||
fastcgi_index index.php;
|
fastcgi_index index.php;
|
||||||
fastcgi_param SCRIPT_FILENAME $request_filename;
|
fastcgi_param SCRIPT_FILENAME $request_filename;
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ location /redis {
|
|||||||
|
|
||||||
location ~ ^/redis/(.+\.php)$ {
|
location ~ ^/redis/(.+\.php)$ {
|
||||||
alias C:/laragon/etc/apps/phpRedisAdmin/$1;
|
alias C:/laragon/etc/apps/phpRedisAdmin/$1;
|
||||||
fastcgi_pass php_upstream;
|
fastcgi_pass php_upstream;
|
||||||
fastcgi_index index.php;
|
fastcgi_index index.php;
|
||||||
fastcgi_param SCRIPT_FILENAME $request_filename;
|
fastcgi_param SCRIPT_FILENAME $request_filename;
|
||||||
|
|
||||||
|
|||||||
@@ -173,9 +173,9 @@ class Memcached
|
|||||||
protected $socket = null;
|
protected $socket = null;
|
||||||
|
|
||||||
public function getVersion() {
|
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
|
//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() {
|
public function setMulti() {
|
||||||
@@ -185,7 +185,7 @@ class Memcached
|
|||||||
//TODO
|
//TODO
|
||||||
die('TODO');
|
die('TODO');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a serer to the server pool
|
* Add a serer to the server pool
|
||||||
*
|
*
|
||||||
@@ -444,7 +444,7 @@ class Memcached
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Store an item.
|
* Store an item.
|
||||||
* Fails if $key already exists
|
* Fails if $key already exists
|
||||||
*
|
*
|
||||||
* @param string $key
|
* @param string $key
|
||||||
@@ -464,7 +464,7 @@ class Memcached
|
|||||||
|
|
||||||
if ('STORED' == $s) {
|
if ('STORED' == $s) {
|
||||||
$this->resultCode = Memcached::RES_SUCCESS;
|
$this->resultCode = Memcached::RES_SUCCESS;
|
||||||
$this->resultMessage = '';
|
$this->resultMessage = '';
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
BIN
laragon.exe
BIN
laragon.exe
Binary file not shown.
@@ -9,7 +9,6 @@
|
|||||||
; PWD: Current working directory - where the COMMANDS run
|
; PWD: Current working directory - where the COMMANDS run
|
||||||
|
|
||||||
# Examples:
|
# 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"
|
; Awesome Tool: "PATH HAS SPACES SHOULD BE QUOTED LIKE THIS"
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
; PWD: Current working directory - where the COMMANDS run
|
; PWD: Current working directory - where the COMMANDS run
|
||||||
|
|
||||||
# Examples:
|
# 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"
|
; Awesome Tool: "PATH HAS SPACES SHOULD BE QUOTED LIKE THIS"
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -1,25 +1,33 @@
|
|||||||
# PHP
|
# PHP
|
||||||
# https://windows.php.net/download/
|
# https://windows.php.net/download/
|
||||||
# NTS = Non Thread Safe
|
# 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.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.15-nts-Win32-vs16-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.27-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.31-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
|
# Node.js
|
||||||
# https://nodejs.org/en/download/prebuilt-binaries/current
|
# 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-23.9=https://nodejs.org/dist/v23.9.0/node-v23.9.0-win-x64.zip
|
||||||
node-22=https://nodejs.org/dist/v22.12.0/node-v22.12.0-win-x64.zip
|
node-22.14=https://nodejs.org/dist/v22.14.0/node-v22.14.0-win-x64.zip
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
# phpMyAdmin
|
# phpMyAdmin
|
||||||
# After download, visit -> http://localhost/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
|
# DB Tools
|
||||||
DBeaver=https://dbeaver.io/files/dbeaver-ce-latest-win32.win32.x86_64.zip
|
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
|
# https://www.mongodb.com/try/download/community
|
||||||
#mongodb-8=https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-8.0.4.zip
|
#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
|
#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
|
# Golang
|
||||||
# https://go.dev/dl/
|
# 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
|
# Pocketbase
|
||||||
# https://github.com/pocketbase/pocketbase/releases
|
# 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
|
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
|
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
|
The power of imagination makes us infinite. - John Muir
|
||||||
Make each day your masterpiece. - John Wooden
|
Make each day your masterpiece. - John Wooden
|
||||||
Believe and act as if it were impossible to fail. - Charles Kettering
|
Believe and act as if it were impossible to fail. - Charles Kettering
|
||||||
Light tomorrow with today. - Elizabeth Barrett Browning
|
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
|
Believe you can and you're halfway there. - Theodore Roosevelt
|
||||||
Don't wait. The time will never be just right. - Napoleon Hill
|
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
|
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
|
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
|
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
|
What we fear doing most is usually what we most need to do. - Tim Ferriss
|
||||||
|
|||||||
@@ -2,5 +2,32 @@
|
|||||||
AutoCreateDatabase=true
|
AutoCreateDatabase=true
|
||||||
Cached=true
|
Cached=true
|
||||||
|
|
||||||
|
# Blank: an empty project
|
||||||
|
Blank=
|
||||||
|
|
||||||
# WordPress
|
# 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
|
<?php
|
||||||
if (!empty($_GET['q'])) {
|
if (!empty($_GET['q'])) {
|
||||||
switch ($_GET['q']) {
|
$query = htmlspecialchars($_GET['q'], ENT_QUOTES, 'UTF-8');
|
||||||
case 'info':
|
|
||||||
phpinfo();
|
switch ($query) {
|
||||||
exit;
|
case 'info':
|
||||||
break;
|
phpinfo();
|
||||||
}
|
exit;
|
||||||
|
default:
|
||||||
|
header("HTTP/1.0 404 Not Found");
|
||||||
|
echo "Invalid query parameter.";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Laragon</title>
|
<title>Laragon</title>
|
||||||
<link href="https://fonts.googleapis.com/css?family=Karla:400" rel="stylesheet" type="text/css">
|
<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>
|
||||||
<style>
|
html, body {
|
||||||
*,
|
height: 100%;
|
||||||
:before *,
|
margin: 0;
|
||||||
:after * {
|
padding: 0;
|
||||||
box-sizing: border-box;
|
font-family: 'Karla', sans-serif;
|
||||||
}
|
font-weight: 100;
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
body {
|
.container {
|
||||||
margin: 0;
|
display: flex;
|
||||||
min-height: 100vh;
|
justify-content: center;
|
||||||
font-weight: 100;
|
align-items: center;
|
||||||
font-family: 'Karla', sans-serif;
|
height: 100%;
|
||||||
font-size: 18px;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
header,
|
.content {
|
||||||
main,
|
max-width: 800px;
|
||||||
nav,
|
padding: 100px;
|
||||||
aside {
|
background: #fff;
|
||||||
padding: 1rem;
|
border-radius: 8px;
|
||||||
margin: auto;
|
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
||||||
max-width: 1200px;
|
}
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
header {
|
.title {
|
||||||
display: flex;
|
font-size: 60px;
|
||||||
flex-wrap: wrap;
|
margin: 0;
|
||||||
justify-content: center;
|
}
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header__item {
|
.info {
|
||||||
margin: 0;
|
margin-top: 20px;
|
||||||
padding: 1rem;
|
font-size: 18px;
|
||||||
}
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
|
||||||
.header--logo {
|
.info a {
|
||||||
height: 8rem;
|
color: #007bff;
|
||||||
}
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
h1 {
|
.info a:hover {
|
||||||
font-size: 5rem;
|
color: #0056b3;
|
||||||
}
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
main {
|
.opt {
|
||||||
background-color: #f5f5f5;
|
margin-top: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
nav {
|
.opt a {
|
||||||
width: 100%;
|
font-size: 18px;
|
||||||
}
|
color: #007bff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
ul {
|
.opt a:hover {
|
||||||
list-style: none;
|
color: #0056b3;
|
||||||
padding: 0;
|
text-decoration: underline;
|
||||||
margin: auto;
|
}
|
||||||
}
|
</style>
|
||||||
|
|
||||||
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>
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<div class="container">
|
||||||
<img class="header__item header--logo" src="https://i.imgur.com/ky9oqct.png" alt="Offline">
|
<div class="content">
|
||||||
<h1 class="header__item header--title" title="Laragon">Laragon</h1>
|
<h1 class="title" title="Laragon">Laragon</h1>
|
||||||
</header>
|
<div class="info">
|
||||||
<main>
|
<p><?php echo htmlspecialchars($_SERVER['SERVER_SOFTWARE'], ENT_QUOTES, 'UTF-8'); ?></p>
|
||||||
<p>
|
<p>PHP version: <?php echo htmlspecialchars(phpversion(), ENT_QUOTES, 'UTF-8'); ?>
|
||||||
<?php print($_SERVER['SERVER_SOFTWARE']); ?>
|
<a title="phpinfo()" href="/?q=info">info</a>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>Document Root: <?php echo htmlspecialchars($_SERVER['DOCUMENT_ROOT'], ENT_QUOTES, 'UTF-8'); ?></p>
|
||||||
PHP version: <?php print PHP_VERSION; ?> <span><a title="phpinfo()" href="/?q=info">info</a></span>
|
</div>
|
||||||
</p>
|
<div class="opt">
|
||||||
<p>
|
<p><a title="Getting Started" href="https://laragon.org/docs">Getting Started</a></p>
|
||||||
Document Root: <?php print($_SERVER['DOCUMENT_ROOT']); ?>
|
</div>
|
||||||
</p>
|
</div>
|
||||||
<p>
|
</div>
|
||||||
<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;
|
|
||||||
?>
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
Reference in New Issue
Block a user