Menu

איך מריצים קובץ PHP: שורת פקודה ושרת php -S

מריצים קובץ PHP מהטרמינל עם php index.php, או מגישים תיקייה לדפדפן עם השרת המובנה של PHP: php -S localhost:8000. לאף אחת מהדרכים לא צריך Apache או XAMPP.

בדף הזה יש עורכים שאפשר להריץ - לערוך, להריץ ולראות את הפלט מיד.

כדי להריץ קובץ PHP, פתחו טרמינל בתיקייה שלו והקלידו php index.php. PHP מריצה את הקובץ ומדפיסה את הפלט שלו בטרמינל. כדי לראות דף PHP בדפדפן, הפעילו את השרת המובנה עם php -S localhost:8000 ופתחו את http://localhost:8000.

php index.php

קובץ index.php ראשון יכול להיות שורה אחת. לחצו על Run: זה בדיוק מה ש-php index.php מדפיסה.

קוד PHP נכתב אחרי התגית <?php. כל מה שלפני התגית מודפס כטקסט רגיל, וכך PHP משלבת קוד עם HTML.

הרצת קובץ PHP משורת הפקודה

ה-CLI של PHP (ממשק שורת הפקודה) מריץ סקריפט פעם אחת ויוצא. צריך ש-PHP תהיה מותקנת; אם php -v מדפיסה שגיאה, עברו קודם להתקנת PHP.

cd ~/projects/hello
php index.php          # run the file
php -l index.php       # only check the syntax ("lint")
php index.php > out.txt   # save the output to a file

php -l שימושית לפני העלאת קובץ: היא מדווחת על שגיאת תחביר עם מספר השורה, או מדפיסה No syntax errors detected in index.php.

העברת ארגומנטים עם $argv

מילים שאחרי שם הקובץ מגיעות ל-$argv. $argv[0] הוא תמיד שם הסקריפט עצמו, ו-$argc הוא הכמות, כולל השם הזה. כאן הבלוק רץ בלי ארגומנטים נוספים, אז רק השם נמצא שם:

במחשב שלכם, php index.php Ada 3 מדפיסה את הברכה שלוש פעמים. ערכי ברירת המחדל עם ?? משאירים את הסקריפט עובד כשחסר ארגומנט. לאפשרויות בעלות שם כמו --name=Ada, השתמשו ב-getopt:

<?php
// php index.php --name=Ada --verbose
$opts = getopt('', ['name:', 'verbose']);
echo "Hello, " . ($opts['name'] ?? 'world') . "\n";
if (isset($opts['verbose'])) {
    echo "Verbose mode\n";
}

הרצת PHP בדפדפן עם php -S

ל-PHP יש שרת ווב מובנה לפיתוח. הפעילו אותו בתיקייה עם הקבצים שלכם:

php -S localhost:8000
[Sat Oct  3 07:21:34 2026] PHP 8.3.19 Development Server (http://localhost:8000) started

עכשיו http://localhost:8000/ מריץ את index.php, ו-http://localhost:8000/about.php מריץ את about.php. כל טעינת דף מריצה את הקובץ מחדש, עם מחרוזת השאילתה ב-$_GET. הבלוק שלמטה מתנהג באותו אופן: הריצו אותו, לחצו על קישור, והסקריפט רץ שוב עם $_GET['page'] מוגדר.

אפשרויות שימושיות:

php -S localhost:8000 -t public        # serve the public/ folder as the web root
php -S 0.0.0.0:8000                    # reachable from other devices on your network
php -S localhost:8000 router.php       # send every request through router.php

השרת המובנה מטפל בבקשה אחת בכל פעם ומיועד לפיתוח בלבד. בסביבת ייצור PHP רצה מאחורי Nginx או Apache, בדרך כלל דרך PHP-FPM.

בדיקה איך הסקריפט הופעל

PHP_SAPI אומר איזה "server API" מריץ את הסקריפט: cli בטרמינל, cli-server תחת php -S, ו-fpm-fcgi או apache2handler מאחורי שרת ווב אמיתי. סקריפטים שצריכים לרוץ רק מהטרמינל בודקים אותו קודם:

הרצת שורה אחת עם php -r

לבדיקה מהירה לא צריך קובץ. php -r מריצה את הקוד שמעבירים לה, בלי התגית <?php:

php -r 'echo date("Y-m-d"), PHP_EOL;'
php -r 'var_dump(0.1 + 0.2 == 0.3);'

ב-cmd של Windows, עטפו את הקוד במירכאות כפולות והשתמשו בגרשיים בודדים בתוכו. לכמה שורות, php -a פותחת מעטפת אינטראקטיבית שבה כל פקודה רצה כשלוחצים Enter.

הפיכת סקריפט לבר הרצה ב-macOS וב-Linux

הוסיפו שורת shebang לפני <?php וסמנו את הקובץ כבר הרצה. שורת ה-shebang לא מודפסת:

#!/usr/bin/env php
<?php
echo "Backup started\n";
chmod +x backup.php
./backup.php

כך סקריפטים של PHP רצים מ-cron: 0 3 * * * /usr/bin/php /home/me/backup.php.

קודי יציאה בסקריפטים

סקריפט שורת פקודה מדווח על הצלחה או כישלון דרך קוד היציאה שלו, שסקריפטי מעטפת ו-cron יכולים לבדוק. exit(0) פירושו הצלחה, וכל מספר אחר פירושו כישלון:

<?php
$file = $argv[1] ?? '';
if (!is_file($file)) {
    fwrite(STDERR, "File not found: $file\n");
    exit(1);
}
echo "Processing $file\n";
exit(0);

טעות נפוצה: הרצת הקובץ או התיקייה הלא נכונים

Could not open input file: index.php פירושו ש-PHP לא מוצאת את הקובץ מהמקום שבו הטרמינל נמצא. בדקו את התיקייה הנוכחית עם pwd (או cd ב-Windows), ואז עברו עם cd לתיקיית הפרויקט או תנו את הנתיב המלא: php ~/projects/hello/index.php. עם php -S, שגיאת 404 לדף שאתם יודעים שקיים פירושה בדרך כלל שהשרת הופעל בתיקייה אחרת; עצרו אותו עם Ctrl+C והפעילו שוב במקום הנכון, או העבירו את התיקייה עם -t. כשהקובץ רץ אבל מדפיס דף ריק, הפעילו את הצגת השגיאות כדי לראות מה השתבש.

שאלות נפוצות

איך מריצים קובץ PHP בדפדפן?

הפעילו את השרת המובנה בתיקייה שמכילה את הקובץ עם php -S localhost:8000, ואז פתחו את http://localhost:8000/yourfile.php. פתיחה ישירה של הקובץ מהדיסק לא עובדת, כי שום דבר לא מריץ את קוד ה-PHP.

איך מעבירים ארגומנטים לסקריפט PHP?

כתבו אותם אחרי שם הקובץ: php report.php 2026 sales. בתוך הסקריפט, $argv הוא המערך ['report.php', '2026', 'sales'] ו-$argc הוא 3. האיבר הראשון הוא תמיד שם הסקריפט.

איך מריצים שורה אחת של PHP בלי קובץ?

השתמשו ב-php -r והשמיטו את התגית <?php: php -r 'echo strtoupper("hi"), PHP_EOL;'. לכמה שורות, php -a פותחת מעטפת אינטראקטיבית.

איך יודעים אם PHP רצה משורת הפקודה או משרת ווב?

בדקו את PHP_SAPI (או php_sapi_name()). הערך הוא "cli" בטרמינל, "cli-server" תחת php -S, ומשהו כמו "fpm-fcgi" או "apache2handler" מאחורי שרת ווב.

איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל