Arch Linux -ב (PHP/PhpMyAdmin -ו Linux, Apache, MySQL/MariaDB) LAMP תנקתה


Arch Linux עדימ ירגאמו םיתרש רובע טנרטניא תונכותו םיניערג לע תונכדועמה תונורחאה תורודהמה תקפסמו םלש חותפ דוק איהש הדבועה לשב תויטירק ןניאש תונטק תוכרעמב טנרטניא ימושיי חותיפל רתויב םיאתמו

. HTTS תוחטבואמ תואקסעל םישורדה תוחתפמ ו רוצ , םיילאוטריו םיחראמ רפסמ תריציב הדובעה לע לקהל םילוכי ךא ,Arch Linux תכרעמב םימייק םניאש (Bash

    תיסיסב הנכות תרונמ ןקתה :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 ביתנב םקוממ ו httpd.conf לש ישארה הרוצתה ץבוקמ לודומ mod_ssl.so לש הבוגתה לוטיב ידי לע ותוא ליעפהל ןתינו Arch Linux -ב Apach

    .ןלהלש ןכותה תא ףסוהו 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>

    .תואיגש לבקת תרחא ,י'צאפא לש טנרטניאה תרש תא שדחמ ליעפת לא ןכלו ורצונ אל ןיידע ץבוקו SSL רושיא ץבוקל תונפמה תוארוהה ןה ןאכ תורחא תובושח תויחנה , תרש םש ו

    .הטמל הדוקפה תא הקיפנמה OpenSSL תליבח תא ןיקתהל תוחתפמו שרדנ SSL ירושיא ץבוק רוציל ידכ .16

    $ sudo pacman -S openssl

    .תכרעמ ביתנ /etc/httpd/conf/ssl/ ב תוחתפמ ו י'צאפא ירושיא ה לכ תא יטמוטוא ןפואב ןסחאמו רצויש שב אבה טירסתה תא רוצ זאו .17

    $ 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

    .הלעפה $PATH ל ותוא קתעה ,תכרעמה בחורל ןימז היהי טירסתהש הצור התא םא

    $ sudo cp /apache_gen_ssl  /usr/local/bin/

    .( FQDN ) ךלש ימשרה ןיימודל םיאתהל ידכ ץופנה םשה תאו רושיאה םש תא חכשת לאו ךלש SSL -ה תויורשפא תא קפס .טפירקסה תלעפה ידי לע תוחתפמה תאו רושיאה תא רוצ ת

    $ sudo ./apache_gen_ssl

    .הזה רושיאה םשל ומיאתיש ךכ תוחתפמה תורוצת תאו ךלש SSL ילאוטריווה חראמ רושיא תא תונשל חכשת לא תוחתפמו רושיא ורצונש רחאל

    .תורוצת ליחהל ידכ ךלש תרשה תא שדחמ ליעפהלו SSL שדח ילאוטריו חראמ ליעפהל אוה ןורחאה בלשה .19

    $ sudo a2ensite localhost-ssl
    $ sudo systemctl restart httpd

    . https:/system_IP וא https:/localhost

    Apache -ב PHP לעפה :7 בלש

    .( .Arch Linux -ב mod_mpm_event םע דבוע אל php-apache ) LoadModule לש האבה הרהצהה תא לטבו שפח זאו י'צאפא לש ישארה הרוצתה ץבוק תא הליחת חתפ ,PHP תא ליעפהל ידכ .תוי

    $ sudo nano /etc/httpd/conf/httpd.conf

    .ךכ תואריהל ידכ האבה הרושב בגהו שפח [Ctrl] + [w] תועצמאב

    #LoadModule mpm_event_module modules/mod_mpm_event.so

    .אבה ןכותה םע דומב ךמות ביתנב PHP לודומ רובע שדח ץבוק רוצ ןכמ רחאל .21

    $ sudo nano /etc/httpd/conf/mods-enabled/php.conf

    .( mod_mpm_prefork ב שמתשהל ךילע) קוידב אבה ןכותה תא ףסוה

    LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
    LoadModule php5_module modules/libphp5.so
    
    Include conf/extra/php5_module.conf

    .: https: //localhost/info.php ל ךלש ןפדפדה תא הנפהו Apache תא שדחמ לעפה זאו ,(/srv/http/) ךלש DocumnetRoot -ב info.php םשב ץבוק PHP ר

    <?php
    
    phpinfo();
    
    ?>
    $ sudo systemctl restart httpd

    .לשמל WordPress ומכ CMS חותפ דוק תועצמאב םירתא חתפל לכות תעכו י'צאפאב PHP לש תרשה דצב תימניד םיטפירקס תפש תלעפומ תעכ ,ליעל הנומת ומכ הארנ לכה םא !הז והז

    .תואבה תודוקפה תא לעפה ,httpd ןומדה תא שדחמ ליעפהל ילבמ םינועט םילודומ לש המישר תוארלו י'צאפא לש ריבחת תורוצת תמאל ךנוצרב םא

    $ sudo apachectl configtest
    $ sudo apachectl -M

    PhpMyAdmin לש הרוצתו ןקתה :8 בלש

    .ךלש Arch -ה תביתב PhpMyAdmin תליבח תא ןיקתהל ךילע ,טנרטניאה קשממ ךרד קפוסמה MySQL לש םינותנה דסמל הטושפ קוחרמ השיג הצורו MySQL לש הדוקפה תרושב טלוש ךניא םא .23

    $ sudo pacman -S phpmyadmin php-mcrypt

    .' וכו iconv.so וא openssl.so , imap.so ומכ תוידיתע CMS תומרופטלפל םישורדה םילודומ םירחא ליעפהל םג ולכותו (ימינפ תומיא ךרוצל - mysqli.so , mcrypt.so <

    $ 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

    .( שדחה ביתנה תא םג ןאכ ףיסוהל ךילע ,רחא םוקימל srv/http/ מ םיילאוטריו םיחראמ לש DocumentRoot ביתנ תא הנשמ התא םג םא) הלא תוירפס תחת םיצבק אורקלו תשגל לוכי PHP -ש אדוול ידכ (<

    .אבה ןכותה תא ףסוה הנורחאה תרהצה ינפל ,תיתחתבו localhost-ssl.conf

    $ 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>

    . https:/system_IP/phpmyadmin וא https:/localhost/phpmyadmin

    .ףדה תא ןנער זאו ,האבה הרהצהב וז ומכ תיארקא תזורחמ סנכה ו /etc/webapps/phpmyadmin/config.inc.php ץבוקה תא ךורעו חתפ , blowfish_secret ל תעגונה הנותחת האיגש הארת ,PhpMyAdmi

    $cfg['blowfish_secret'] = ‘{^QP+-(3mlHy+Gd~FE3mN{gIATs^1lX+T=KVYv{ubK*U0V’ ;

    הבחר LAMP תכרעמ רשפא :9 בלש

    .תואבה תודוקפה תא לעפה ,תכרעמה לש שדחמ לוחתא רחאל יטמוטוא ןפואב LAMP תינסחמ תא ליעפהל ךנוצרב םא .28

    $ sudo systemctl enable httpd mysqld

    .תכרעמב םילשכ לש הרקמב תכרעמה לש ריהמ רוזחש ךרוצל תכרעמה לש תועובק יוביג תונומת תושעלו תוליבחה ינוכדעל תפסונ בל תמושת שידקהלו הבר תונלבסב שמחתהל םכילע הלודג רוציי תביבסב הב שמתשהל םיצור ןי