Arch Linux -ב (PHP/PhpMyAdmin -ו Linux, Apache, MySQL/MariaDB) LAMP תנקתה
Arch Linux עדימ ירגאמו םיתרש רובע טנרטניא תונכותו םיניערג לע תונכדועמה תונורחאה תורודהמה תקפסמו םלש חותפ דוק איהש הדבועה לשב תויטירק ןניאש תונטק תוכרעמב טנרטניא ימושיי חותיפל רתויב םיאתמו
. HTTS תוחטבואמ תואקסעל םישורדה תוחתפמ ו
תיסיסב הנכות תרונמ ןקתה :1 בלש
. pacman תורישה ילכ תועצמאב ךלש Arch Linux -ה תבית תא גרדש , SSH תועצמאב תכרעמל קוחרמ השיגו תיטטס IP תבותכ םע תילמינימ תכרעמ תנקתה רחאל .1
$ sudo pacman -Syu
.תרש ךילהתל ןומד לכ תמא/לחתהו י'צאפא לש טנרטניאה תרש תא הליחת ןקתה ,תוכיתחמ LAMP ןקתה םייתסמ גורדשה ךילהת רשאכ .2
$ sudo pacman -S apache $ sudo systemctl start httpd $ sudo systemctl status httpd
.הלש י'צפאה לודומ תאו תרשה דצב תימניד םיטפירקס תפש PHP ןקתה .3
$ sudo pacman -S php php-apache
.ןומדה בצמ תא קודבו לחתה זאו הליהקה לש םינותנ דסמ גלזמ ( MariaDB ) 1 רחב , MySQL םינותנה דסמ תא ןקתה ןורחאה בלשב .4
$ sudo pacman -S mysql $ sudo systemctl start mysqld $ sudo systemctl status mysqld
.הכ דע לדחמ תרירב תורוצתב תלחתהו תיסיסבה
חטבואמ MySQL רגאמ :2 בלש
.(החטבאה תולאש לכב ןכ תועצמאב תונעלו סיסבה ןובשח לש תיחכונה המסיסל חתפמ [< b> Enter ] לע ץחל) שמתשמה שרושל קוחרמ הסינכ רוסיאו הקידב לש םינותנ דסמ תרסה ,םיימינונא םישמתשמ תונ
$ sudo mysql_secure_installation
. האיצי וא אצ הרהצה םע םינותנה דסמ תפטעמ תא ראשה זאו האבה הדוקפה תלעפה ידי לע MySQL לש םינותנה דסמ תוירושיק תא תמא .6
$ mysql -u root -p
Apache לש ישארה הרוצתה ץבוק תא הנש :3 בלש
.httpd תורישה יצבק תורוצת יוניש ידי לע תושעיהל םילוכיו SSL םניאש םיילאוטריו םיחראמ וא PHP, SSL לש םיטפירקס תפש םע ילאוטריו חוריא ל ימניד קשממ קפסל ידכ י'צאפא טנרטניא תרש
.ךילע ףדעומה טסקטה ךרוע םע Apache לש ישארה ץבוקה תרוצת תא חתפ תישאר
$ sudo nano /etc/httpd/conf/httpd.conf
.תואבה תורושה יתש תא ףסוה ,ץבוקה תיתחתב
IncludeOptional conf/sites-enabled/*.conf IncludeOptional conf/mods-enabled/*.conf
. .conf תמויס ב םימייתסמש תכרעמ יביתנ ( תלעפומ תרש ילודומ רובע) /etc/httpd/conf/mods-enabled/ ו ( ילאוטריו חוריא ל) < b />/םירתא תלעפומ/httpd
.תואבה תודוקפה תא תוקיפנמה תושורדה תכרעמה תוירפס תא רוצ ,הלא תויחנה יתשב החנוה י'צפאש רחאל .8
$ sudo mkdir /etc/httpd/conf/sites-available $ sudo mkdir /etc/httpd/conf/sites-enabled $ sudo mkdir /etc/httpd/conf/mods-enabled
.םש םיאצמנה םירתא רשפאלו רשקל ידכ וז היירפסב שמתשי אבה Bash -ה טפירקס ךא ,Apache -ב םילעפומ םניאש םיילאוטריו םיחראמ לש הרוצתה יצבק לכ תא ליכמ םינימז םירתא ביתנה
a2diste -ו Apache a2eniste תודוקפ רוצ :4 בלש
.ףדעומה ךרועה תועצמאב a2dissite -ו a2eniste ךלש םיטירסתה תא רוצילו $HOME ךלש שמתשמה ביתנל רוזחל ידכ cd הדוקפה תא דלקה .Virtual Host לש הרוצת ץבוק לש הת
$ sudo nano a2ensite
.הז ץבוקל אבה ןכותה תא ףסוה
#!/bin/bash if test -d /etc/httpd/conf/sites-available && test -d /etc/httpd/conf/sites-enabled ; then echo "-------------------------------" else mkdir /etc/httpd/conf/sites-available mkdir /etc/httpd/conf/sites-enabled fi avail=/etc/httpd/conf/sites-available/$1.conf enabled=/etc/httpd/conf/sites-enabled site=`ls /etc/httpd/conf/sites-available/` if [ "$#" != "1" ]; then echo "Use script: n2ensite virtual_site" echo -e "\nAvailable virtual hosts:\n$site" exit 0 else if test -e $avail; then sudo ln -s $avail $enabled else echo -e "$avail virtual host does not exist! Please create one!\n$site" exit 0 fi if test -e $enabled/$1.conf; then echo "Success!! Now restart Apache server: sudo systemctl restart httpd" else echo -e "Virtual host $avail does not exist!\nPlease see avail virtual hosts:\n$site" exit 0 fi fi
.a2dissite bash טפירקס ץבוק רוצ תעכ
$ sudo nano a2dissite
.אבה ןכותה תא ףסוה
#!/bin/bash avail=/etc/httpd/conf/sites-enabled/$1.conf enabled=/etc/httpd/conf/sites-enabled site=`ls /etc/httpd/conf/sites-enabled` if [ "$#" != "1" ]; then echo "Use script: n2dissite virtual_site" echo -e "\nAvailable virtual hosts: \n$site" exit 0 else if test -e $avail; then sudo rm $avail else echo -e "$avail virtual host does not exist! Exiting" exit 0 fi if test -e $enabled/$1.conf; then echo "Error!! Could not remove $avail virtual host!" else echo -e "Success! $avail has been removed!\nsudo systemctl restart httpd" exit 0 fi fi
.תכרעמה תושרל םתוא ךופהל ידכ $PATH הלעפהה תיירפסל ןתוא קתעהו עוציב תואשרה הצקה ,םיצבקה תריצי רחאל .10
$ sudo chmod +x a2ensite a2dissite $ sudo cp a2ensite a2dissite /usr/local/bin/
י'צפאב םיילאוטריו םיחראמ רוצ :5 בלש
.הרוצת תוארוה רתוי שי ךלש רתאבו םיבר םירתא תקפסמ ךלש תכרעמה םא השק המישמ תויהל הלוכי וזו ויתוארוה לכ תא קוחמל וא ביגהל ךילע ,רתא תיבשהל ךנוצרב םא .אל וא לעפומ רתא הזיא רחא בוקעל
.אל וא םילעפומ םהש תורמל ךלש טנרטניאה ירתא לש הרוצתה יצבק לכ םג רמשמו םירתא התבשה וא תלעפה לש הדובעה תא דואמ טשפמ םירתאב םיכמות ו םינימז םירתא םיבית
.(/srv/http ) םירתא יצבק תשגהל DocumentRoot לש לדחמה תרירב ביתנ םע לדחמ תרירבכ רדגומה localhost לע עיבצמש ןושארה ילאוטריווה חראמה תא תונבל םיכלוה ונא אבה בלשב
$ sudo nano /etc/httpd/conf/sites-available/localhost.conf
.ןאכ תואבה Apache תוארוה תא ףסוה
<VirtualHost *:80> DocumentRoot "/srv/http" ServerName localhost ServerAdmin [email ErrorLog "/var/log/httpd/localhost-error_log" TransferLog "/var/log/httpd/localhost-access_log" <Directory /> Options +Indexes +FollowSymLinks +ExecCGI AllowOverride All Order deny,allow Allow from all Require all granted </Directory> </VirtualHost>
./srv/http/ ביתנב םימקוממה םיצבק שיגהל לא localhost םשב תותליאשה לכ תא תונפהלו 80 האיציב תשר רוביח חותפל י'צפאל תורומה תרש םש ו האיצי תויחנה ןה ן
.םייוניש גיצהל ידכ httpd ןומדה תא שדחמ לעפה זאו ותוא לעפה ,localhost ץבוק רצונש רחאל .12
$ sudo a2ensite localhost $ sudo systemctl restart httpd
.תקחורמ תכרעמב שמתשמ התא םא http:// Arch_IP וא Arch תכרעממ ותוא ליעפמ התא םא , http:// localhost לא ךלש ןפדפדה תא הנפה זאו .13
LAMP -ב ילאוטריו חוריא תועצמאב SSL לעפה :6 בלש
SSL ( תחטבואמ םיעקש תבכש ) ירוביח ןיפצהל דעונש לוקוטורפ אוה HTTP תליבח ידי לע סקוניל ןויכראב קפוסמ אוהו םיירטמיסא/םיירטמיס הנפצה ישקמ תועצמאב חטבואמ ץורעב םירבעומ תויהל
.ףסונ httpd ביתנב םקוממ
.ןלהלש ןכותה תא ףסוהו SSL לודומ רובע אבה ץבוקה תא רוצ .עגפ אלל י'צאפא לש ישארה הרוצתה ץבוק תא ריאשהלו דומב ךמות ביתנב SSL -ל שדח לודומ ץבוק רוציל םיכלוה ונא םירבדה תא טשפל ידכ ךא
$ sudo nano /etc/httpd/conf/mods-enabled/ssl.conf
.אבה ןכותה תא ףסוה
LoadModule ssl_module modules/mod_ssl.so LoadModule socache_shmcb_module modules/mod_socache_shmcb.so Listen 443 SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 SSLPassPhraseDialog builtin SSLSessionCache "shmcb:/run/httpd/ssl_scache(512000)" SSLSessionCacheTimeout 300
.SSL םע localhost גציימ אוהש ךל ריכזהל ידכ ומש תא טעמ הנשו ,םעפה SSL תרש לש תורוצתב שמתשמ ךא localhost םש ותוא לע עיבצמש ילאוטריו חראמ ץבוק רוצ וישכע .15
$ sudo nano /etc/httpd/conf/sites-available/localhost-ssl.conf
.הז ץבוקל אבה ןכותה תא ףסוה
<VirtualHost *:443> DocumentRoot "/srv/http" ServerName localhost ServerAdmin [email ErrorLog "/var/log/httpd/localhost-ssl-error_log" TransferLog "/var/log/httpd/localhost-ssl-access_log" SSLEngine on SSLCertificateFile "/etc/httpd/conf/ssl/localhost.crt" SSLCertificateKeyFile "/etc/httpd/conf/ssl/localhost.key" <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory "/srv/http/cgi-bin"> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/var/log/httpd/ssl_request_log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" <Directory /> Options +Indexes +FollowSymLinks +ExecCGI AllowOverride All Order deny,allow Allow from all Require all granted </Directory> </VirtualHost>
.תואיגש לבקת תרחא ,י'צאפא לש טנרטניאה תרש תא שדחמ ליעפת לא ןכלו ורצונ אל ןיידע .הטמל הדוקפה תא הקיפנמה OpenSSL תליבח תא ןיקתהל תוחתפמו שרדנ SSL ירושיא ץבוק רוציל ידכ .16 .תכרעמ ביתנ /etc/httpd/conf/ssl/ ב תוחתפמ ו י'צאפא ירושיא ה לכ תא יטמוטוא ןפואב ןסחאמו רצויש שב אבה טירסתה תא רוצ זאו .17 .ותוא לעפהו ותוא רומש זאו אבה ץבוקה ןכות תא ףסוה .הלעפה $PATH ל ותוא קתעה ,תכרעמה בחורל ןימז היהי טירסתהש הצור התא םא .( FQDN ) ךלש ימשרה ןיימודל םיאתהל ידכ ץופנה םשה תאו רושיאה םש תא חכשת לאו ךלש SSL -ה תויורשפא תא קפס .טפירקסה תלעפה ידי לע תוחתפמה תאו רושיאה תא רוצ ת .הזה רושיאה םשל ומיאתיש ךכ תוחתפמה תורוצת תאו ךלש SSL ילאוטריווה חראמ רושיא תא תונשל חכשת לא תוחתפמו רושיא ורצונש רחאל .תורוצת ליחהל ידכ ךלש תרשה תא שדחמ ליעפהלו SSL שדח ילאוטריו חראמ ליעפהל אוה ןורחאה בלשה .19 . https:/system_IP וא .( .Arch Linux -ב mod_mpm_event םע דבוע אל php-apache ) LoadModule לש האבה הרהצהה תא לטבו שפח זאו י'צאפא לש ישארה הרוצתה ץבוק תא הליחת חתפ ,PHP תא ליעפהל ידכ .תוי .ךכ תואריהל ידכ האבה הרושב בגהו שפח [Ctrl] + [w] תועצמאב .אבה ןכותה םע דומב ךמות ביתנב PHP לודומ רובע שדח ץבוק רוצ ןכמ רחאל .21 .( mod_mpm_prefork ב שמתשהל ךילע) קוידב אבה ןכותה תא ףסוה . .לשמל WordPress ומכ CMS חותפ דוק תועצמאב םירתא חתפל לכות תעכו י'צאפאב PHP לש תרשה דצב תימניד םיטפירקס תפש תלעפומ תעכ ,ליעל הנומת ומכ הארנ לכה םא !הז והז .תואבה תודוקפה תא לעפה ,httpd ןומדה תא שדחמ ליעפהל ילבמ םינועט םילודומ לש המישר תוארלו י'צאפא לש ריבחת תורוצת תמאל ךנוצרב םא .ךלש Arch -ה תביתב PhpMyAdmin תליבח תא ןיקתהל ךילע ,טנרטניאה קשממ ךרד קפוסמה MySQL לש םינותנה דסמל הטושפ קוחרמ השיג הצורו MySQL לש הדוקפה תרושב טלוש ךניא םא .23 .' וכו iconv.so וא openssl.so , imap.so ומכ תוידיתע CMS תומרופטלפל םישורדה םילודומ םירחא ליעפהל םג ולכותו (ימינפ תומיא ךרוצל - mysqli.so , mcrypt.so < .םהילע תורעהה תא לטבו ליעל םיפסותה תא רתא .( שדחה ביתנה תא םג ןאכ ףיסוהל ךילע ,רחא םוקימל srv/http/ מ םיילאוטריו םיחראמ לש DocumentRoot ביתנ תא הנשמ התא םג םא) הלא תוירפס תחת םיצבק אורקלו תשגל לוכי PHP -ש אדוול ידכ (< .אבה ןכותה תא ףסוה הנורחאה תרהצה ינפל ,תיתחתבו . https:/system_IP/phpmyadmin וא .ףדה תא ןנער זאו ,האבה הרהצהב וז ומכ תיארקא תזורחמ סנכה ו /etc/webapps/phpmyadmin/config.inc.php ץבוקה תא ךורעו חתפ , blowfish_secret ל תעגונה הנותחת האיגש הארת ,PhpMyAdmi .תואבה תודוקפה תא לעפה ,תכרעמה לש שדחמ לוחתא רחאל יטמוטוא ןפואב LAMP תינסחמ תא ליעפהל ךנוצרב םא .28 .תכרעמב םילשכ לש הרקמב תכרעמה לש ריהמ רוזחש ךרוצל תכרעמה לש תועובק יוביג תונומת תושעלו תוליבחה ינוכדעל תפסונ בל תמושת שידקהלו הבר תונלבסב שמחתהל םכילע הלודג רוציי תביבסב הב שמתשהל םיצור ןי$ sudo pacman -S openssl
$ sudo nano apache_gen_ssl
#!/bin/bash
mkdir /etc/httpd/conf/ssl
cd /etc/httpd/conf/ssl
echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Nginx SSL certificate!"
read cert
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt
echo -e " The certificate "$cert" has been generated!\nPlease link it to Apache SSL available website!"
ls -all /etc/httpd/conf/ssl
exit 0
$ sudo chmod +x apache_gen_ssl
$ sudo cp /apache_gen_ssl /usr/local/bin/
$ sudo ./apache_gen_ssl
$ sudo a2ensite localhost-ssl
$ sudo systemctl restart httpd
Apache -ב PHP לעפה :7 בלש
$ sudo nano /etc/httpd/conf/httpd.conf
#LoadModule mpm_event_module modules/mod_mpm_event.so
$ sudo nano /etc/httpd/conf/mods-enabled/php.conf
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule php5_module modules/libphp5.so
Include conf/extra/php5_module.conf
<?php
phpinfo();
?>
$ sudo systemctl restart httpd
$ sudo apachectl configtest
$ sudo apachectl -M
PhpMyAdmin לש הרוצתו ןקתה :8 בלש
$ sudo pacman -S phpmyadmin php-mcrypt
$ sudo nano /etc/php/php.ini
extension=mcrypt.so
extension=mssql.so
extension=mysqli.so
extension=openssl.so
extension=iconv.so
extension=imap.so
extension=zip.so
extension=bz2.so
$ sudo nano /etc/httpd/conf/sites-enabled/localhost-ssl.conf
Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"
<Directory "/usr/share/webapps/phpMyAdmin">
DirectoryIndex index.html index.php
AllowOverride All
Options FollowSymlinks
Require all granted
</Directory>
$cfg['blowfish_secret'] = ‘{^QP+-(3mlHy+Gd~FE3mN{gIATs^1lX+T=KVYv{ubK*U0V’ ;
הבחר LAMP תכרעמ רשפא :9 בלש
$ sudo systemctl enable httpd mysqld