Saya menggunakan Mac OS X dan menggunakan Launchd untuk secara otomatis memulai XAMPP. Saya telah menetapkan pengguna apache disetel sama dengan nama akun saya di httpd.conf
User cwd Group nogroup
Nah, jika saya membiarkan komputer hidup, dan jika saya menjalankan skrip php dengan perintah ini, berikut adalah yang saya dapat
echo exec('whoami'); //cwd exec('echo 1234 | pbcopy'); echo exec('pbpaste'); // (nothing)
Namun, jika saya menghentikan XAMPP dan memulai kembali (menggunakan Kontrol XAMPP), maka itu berfungsi seperti yang diharapkan dan hasil baris ketiga adalah 1234.
echo exec('pbpaste'); // 1234
Saya juga memiliki pengalaman serupa dengan menjalankan perintah sistem lainnya exec
atau shell_exec
seperti ssh
. Tampaknya tidak berfungsi sampai saya me-restart apache secara manual. Apakah ada yang punya pemikiran tentang ini?
Ini file konfigurasi peluncuran saya:
/Library/LaunchDaemons/xampp.sql.startapache.plist
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>EnableTransactions</key> <true/> <key>Label</key> <string>xampp.startapache.mysql</string> <key>ProgramArguments</key> <array> <string>/Applications/XAMPP/xamppfiles/xampp</string> <string>startmysql</string> </array> <key>RunAtLoad</key> <true/> <key>WorkingDirectory</key> <string>/Applications/XAMPP/xamppfiles</string> <key>KeepAlive</key> <false/> <key>AbandonProcessGroup</key> <true/> </dict> </plist>