https://wiki.opzsgu.pl/api.php?action=feedcontributions&user=Neo&feedformat=atomPodręcznik Administratora by OPZ SGU - Wkład użytkownika [pl]2024-03-29T13:30:47ZWkład użytkownikaMediaWiki 1.36.2https://wiki.opzsgu.pl/index.php?title=Buforowanie_wyjscia_php&diff=72Buforowanie wyjscia php2009-07-09T21:19:47Z<p>Neo: Utworzył nową stronę „Jedną z nieocenionych zalet PHP jest możliwość buforowania wyjścia. Buforowanie wyjścia znajdzie zastosowanie wszędzie tam gdzie chcemy pobrać do zmiennej tre…”</p>
<hr />
<div>Jedną z nieocenionych zalet PHP jest możliwość buforowania wyjścia.<br />
<br />
Buforowanie wyjścia znajdzie zastosowanie wszędzie tam gdzie chcemy pobrać do zmiennej treść która normalnie została by wyświetlona na ekranie.<br />
<br />
<br />
Najprostszym i klasycznym przykładem jest przechwycenie tekstu.<br />
<br />
<br />
<pre><br />
<?php<br />
<br />
ob_start();<br />
echo "Jakiś tekst";<br />
echo "<br>";<br />
echo "Jakiś tekst 2";<br />
<br />
<br />
$pobrane = ob_get_clean();<br />
?><br />
<br />
</pre><br />
<br />
w zmiennej $pobrane mamy zapisany wynik działania trzech komend echo.<br />
Możemy wykonać go jedną komendą<br />
<pre><br />
print($pobrane);<br />
</pre><br />
<br />
<br />
Buforowanie doskonale nadaje się do przechwytywania błędów które mają następnie by wysłane do administratora serwisu, dzięki temu, zobaczymy witrynę oczami użytkownika.<br />
<br />
Możliwe jest też wykorzystanie buforowania do uzupełnienia brakujących elementów.<br />
W momencie ich uzyskania.<br />
<br />
Przykładowo zaczynamy generować stronę www, a pole META keywords zastępujemy frazą tu_będą_słowa_kluczowe.<br />
Kiedy strona będzie cała gotowa, a my będziemy mieli listę tagów, przed wysłaniem jej do użytkownika poprzez repleace zamieniamy powyższą frazę na słowa kluczowe, po czym wysyłamy stronę do przeglądarki.<br />
<br />
<br />
<br />
'''Buforowanie wyjścia nadaje się nie tylko do przechwytywania tekstu, ale i obrazów,plików.'''<br />
<br />
<pre><br />
ob_start();<br />
ImagePNG($zdjecie);<br />
$fotka = ob_get_clean();<br />
</pre><br />
<br />
Taka zmienna $fotka zawiera nasz obraz w trybie tekstowym, i z kolei może zostać zapisana z łatwością do MySQL.<br />
<br />
Aby wydrukować ją do użytkownika, wystarczy komenda określająca nagłówek, oraz proste wypisanie zawartości.<br />
<br />
<pre><br />
Header("Content-type: image/PNG");<br />
exit($fotka);<br />
</pre></div>Neohttps://wiki.opzsgu.pl/index.php?title=Instalacja_serwera_poczty_zimbra&diff=71Instalacja serwera poczty zimbra2009-07-09T13:10:15Z<p>Neo: </p>
<hr />
<div>Instalujemy Ubuntu Server 8.04<br />
<br />
Pobieramy i rozpakowujemy najnowszą wersję oprogramowania Zimbra <br />
[http://www.zimbra.com/community/downloads.html]<br />
<pre><br />
wget http://h.yimg.com/lo/downloads/5.0.18_GA/zcs-5.0.18_GA_3011.UBUNTU8.20090708092550.tgz<br />
tar -xvzf zcs-5.0.*<br />
cd zcs*<br />
</pre><br />
<br />
<br />
Upewniamy się że nasz serwer posiada ustawioną poprawną domenę.<br />
<br />
<pre><br />
nano /etc/hostname<br />
</pre><br />
<br />
treść<br />
<pre><br />
poczta.xxx.pl<br />
</pre><br />
<br />
konfiguracja hostów<br />
<br />
<pre><br />
nano /etc/hosts<br />
</pre><br />
<br />
treść<br />
<pre><br />
127.0.0.1 localhost<br />
192.168.0.17 poczta.xxx.pl xxx.pl<br />
</pre><br />
<br />
Instalujemy brakujące pakiety które są wymagane do zainstalowania serwera Zimbra.<br />
<pre><br />
apt-get install libpcre3 libgmp3c2 libstdc++5 libltdl3<br />
<br />
</pre><br />
<br />
Uruchamiamy instalator:<br />
<br />
<pre><br />
./install.sh<br />
</pre><br />
<br />
Czeka nas kilka pytań, skupiających się do bezmyślnego wciskania klawisza Y lub entera.<br />
<br />
Pytanie<br />
<pre>The system will be modified. Continue? [N]<br />
</pre><br />
jest podchwytliwe, trzeba wybrać '''Y'''es :) a nie jak sugerują N.<br />
<br />
<br />
W momencie otwarcia menu konfiguracyjnego opisanego jako "Main menu"<br />
Musimy ustawić hasło administratora.<br />
<br />
wciskamy kolejno<br />
<pre><br />
3<br />
4<br />
</pre><br />
<br />
Podajemy hasło.<br />
<br />
Dajemy r<br />
<pre><br />
8<br />
1<br />
</pre><br />
<br />
dajemy a<br />
<br />
Kolejno pytania potwierdzające nasz wybór, zwieńczone podchwytliwym<br />
<pre><br />
The system will be modified - continue? [No]<br />
</pre><br />
<br />
Jak już wiemy, zmieniamy na Yes.<br />
<br />
<br />
Resztę wykona za nas instalator.<br />
Po około 10 minutach nasz serwer będzie gotowy do pracy.<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[Plik:Zimbra user.png|200px|thumb|right|webmail - logowanie]]<br />
<br />
<br />
<br />
<br />
Webmail<br />
http://192.168.0.18<br />
[[Plik:Zimbra admin.png|200px|thumb|right|panel admina - logowanie]]<br />
<br />
Panel administratora<br />
https://192.168.0.7071</div>Neohttps://wiki.opzsgu.pl/index.php?title=Fsck&diff=70Fsck2009-07-08T16:37:25Z<p>Neo: </p>
<hr />
<div>'''Sprawdzanie spójności systemu plików serwera, poprzez fsck - ''metoda zatwierdzona przez opzsgu''<br />
'''<br />
<br />
<br />
Uruchamiamy serwer z nośnika live cd<br />
<br />
<br />
<pre><br />
fsck -fyC /dev/sda1<br />
</pre><br />
<br />
Wykonujemy kolejno po wszystkich partycjach wykorzystywanych przez serwer.<br />
<br />
<br />
<br />
Zalecane jest wykonywanie tej operacji każdorazowo po awarii zasilania nie powstrzymanej przez UPS i/lub zawieszeniu się systemu z niewyjaśnionych przyczyn.<br />
<br />
<br />
<br />
<br />
<br />
'''Manualne zlecanie wykonania fsck podczas kolejnego rozruchu systemu.<br />
'''<br />
<br />
<br />
<pre><br />
<br />
touch /forcefsck<br />
<br />
reboot<br />
<br />
</pre><br />
<br />
<br />
<br />
Po wykonaniu tych komend, w trakcie uruchamiania systemu zostanie rozpoczęte sprawdzanie systemu plików.</div>Neohttps://wiki.opzsgu.pl/index.php?title=Sprawdzanie_rozszerzenia_w_php&diff=69Sprawdzanie rozszerzenia w php2009-07-08T16:30:33Z<p>Neo: </p>
<hr />
<div>'''Jak sprawdzić rozszerzenie w PHP dla stringa (końcówka).'''<br />
<br />
<br />
<br />
<pre><br />
$ciag="jakisplik.php.jpg";<br />
<br />
<br />
$rozszerzenie = strrchr($ciag, "."); <br />
if($rozszerzenie == ".jpg") { <br />
print('Plik JPG');<br />
} <br />
else { <br />
print('Niedozwolony plik ');<br />
}<br />
<br />
</pre><br />
<br />
Taki kod wyświetli <br />
<pre><br />
Plik JPG<br />
</pre><br />
<br />
Zaczyna czytać ciąg od prawej strony, w związku z czym nie ma znaczenia czy w jego środku będą znajdować się dodatkowe kropki, czy inne znaki. <br />
<br />
Sprawdza do pierwszej kropki, od prawej strony.<br />
<br />
<br />
[[Category:php]]</div>Neo