Трябва ми лек сървар с който да управлявам едн компютър, който ползвам за нещо като локален NAS. Apache тотално не ми се вписва в сметките, защото напоследък брах ядове с пълното му деинсталиране от системата. Затова се спрях на конкурента му nginx. По-долу поствам някои интересни моменти от тестовете, които направих под Windows. За да мога да достъпвам сървара в локална мрежа, трябваше да променя настройките на Firewall-а на Windows 10. В моя случай промених настройки на firewall на Nod32, който е асоцииран по подразбиране в firewall-a на Win.
Изтеглих Mainline version на nginx от тук: nginx download
Разархивирах го в една директория и му промених conf/nginx.conf така, че да отговаря на моите нужди. Важно е да се отбележи, че предварително имам инсталиран PHP 7.2, който е добавен в променливите на обкръжението на Win10.
казва на сървара първо да потърси файл, след това директория и най-накрая ако не намери предните две да потърси index.php, като всичко след името на домейна го постави като аргумент. Примерно: https://localhost/system-info ще се преобразува в: https://localhost/index.php?/system-info По този начин мога да ползвам френдли адресиране, вместо да изписвам остарелите GET променливи. В Apache се ползва .htaccess за тая цел. Но в nginx тези инструкции се поместват в основния кофигурационен файл.
За да спирам и пускам сървара използвах batch код, който намерих някъде в мрежата. Коментирал съм с REM кодове в скрипта, които могат да са полезни след време, но които не са ми необходими, като спиране и пускане на MySQL. Напоследък за леки проекти ползвам основно SQLite с RedBeanPHP като ORM:
@echo off
REM cd C:\WebServer\nginx
IF "%1" == "stop" (
GOTO STOPSERVER
)else IF "%1" == "start" (
GOTO STARTSERVER
)else (
echo Use these commands:
echo.
echo myserver start
echo myserver stop
)
GOTO END
:STARTSERVER
REM QPROCESS * | find /I /N "mysqld.exe">NUL
REM IF "%ERRORLEVEL%"=="0" (
REM echo MYSQLD is already running.
REM )else (
REM RunHiddenConsole.exe mysqld --console
REM echo MYSQLD is now running.
REM )
QPROCESS * | find /I /N "nginx.exe">NUL
IF "%ERRORLEVEL%"=="0" (
echo NGINX is already running.
)else (
RunHiddenConsole.exe nginx
echo NGINX is now running.
)
QPROCESS * | find /I /N "php-cgi.exe">NUL
IF "%ERRORLEVEL%"=="0" (
echo PHP-CGI is already running.
)else (
RunHiddenConsole.exe php-cgi -b 127.0.0.1:9000
echo PHP-CGI is now running.
)
echo.
echo To stop, type "myserver stop"
GOTO END
:STOPSERVER
REM QPROCESS * | find /I /N "mysqld.exe">NUL
REM IF "%ERRORLEVEL%"=="0" (
REM taskkill /F /IM mysqld.exe>NUL
REM echo MYSQLD ended successfully.
REM )else (
REM echo MYSQLD is not running
REM )
QPROCESS * | find /I /N "nginx.exe">NUL
IF "%ERRORLEVEL%"=="0" (
::nginx -s stop
taskkill /F /IM nginx.exe>NUL
echo NGINX ended successfully.
)else (
echo NGINX is not running
)
QPROCESS * | find /I /N "php-cgi.exe">NUL
IF "%ERRORLEVEL%"=="0" (
taskkill /F /IM php-cgi.exe>NUL
echo PHP-CGI ended successfully.
)else (
echo PHP-CGI is not running
)
:END
Запазих по-горния код в директорията с exe-то на nginx в файла myserver.bat. Пускане и спиране на сървара става с командите:
myserver start
myserver stop
За файлов фмениджър на NAS-чето за сега съм се спрял на Tiny File Manager. Този файлов мениджър е поместен само в един файл и има достатъчно опции за редактиране, които са ми напълно достатъчни.
Простичък код на batch който взима последния csc.exe от Microsoft.NET\Framework. Кода се пейства в bat-файл и при двоен клик компилира script.cs.
1
2
3
4
5
6
7
@echo offfor/f "TOKENS=1"%%x in('dir %windir%\Microsoft.Net\framework\v* /b ^| findstr "v[1-9]"') do (
set myPID=%%x
)
set csc=%windir%\Microsoft.Net\framework\%myPID%\csc.exe
%csc%/t:winexe script.cs
@echo off
for /f "TOKENS=1" %%x in ('dir %windir%\Microsoft.Net\framework\v* /b ^| findstr "v[1-9]"') do (
set myPID=%%x
)
set csc=%windir%\Microsoft.Net\framework\%myPID%\csc.exe
%csc% /t:winexe script.cs
Има много хитър начин да си набавим в Windows някои от популярните инструменти в Mac, UNIX, Linux, Android и т.н., като е достатъчно да имаме инсталиран Perl. Ето един пример, как да си набавим md5 sum checker за стрингове от командния ред:
@rem = 'source http://www.dostips.com
@CD/d"%~dp0"&perl -s "%~nx0" %*&Exit/b&:';
#perl script starts below here
use strict;
use Digest::MD5 qw(md5_hex);
if($ARGV[0]== ""){
print "Vyvedi string!!!\n";
exit;
}
my $md5_data = $ARGV[0];
my $md5_hash = md5_hex( $md5_data );
print "$md5_hash\n";
Запазваме кода в batch-файл, като md5.bat. Добра идея е да го запазим там където имаме достъп, чрез променлива на обвивката, примерно директорията system32. След това си генерираме md5 суми от стрингове директно през промпта:
md5 "proba"
md5 "proba"
Резултата е: c0a8e1e5e307cc5b33819b387b5f01fd
Share and Enjoy !
Shares
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.AcceptRead More
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.