Perbedaan PHP antara terminal dan browser

Ada Neo4J yang terinstal di Ubuntu saya dan saya menjalankan kode pengujian. Ini berfungsi dengan baik ketika kode dijalankan di terminal seperti:

root@ekin-Inspiron-1090:/var/www# php neo.php
home: demolished
name: Arthur Dent

Namun ketika dijalankan di browser seperti localhost/neo.php, memberikan kesalahan fatal dan berhenti bekerja.

Warning: require(phar://neo4jphp.phar): failed to open stream: operation failed in /var/www/neo.php on line 4 Fatal error: require(): Failed opening required 'phar://neo4jphp.phar' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/neo.php on line 4 

Menurut saya, ada hubungannya dengan Neo4J atau driver PHP-nya. Apa alasannya?

edit: ngomong-ngomong, ada dua file php.ini; saya pikir satu untuk Apache dan satu untuk baris perintah. Saya memeriksa keduanya dan jalur ekstensi phar sama. Juga tidak ada pengaturan include_path di keduanya.


person gzg    schedule 11.07.2012    source sumber
comment
Mungkin dikatakan Anda tidak memiliki akses ke file tersebut.   -  person Cole Johnson    schedule 11.07.2012
comment
baris perintah berjalan di bawah id pengguna ANDA, apache berjalan di bawah id penggunanya sendiri. Pastikan pengguna Apache memiliki akses ke file phar.   -  person Marc B    schedule 11.07.2012
comment
Tampaknya ada masalah izin karena contoh menunjukkan pengguna berjalan sebagai root.   -  person SilverSnake    schedule 11.07.2012
comment
@MarcB, bagaimana cara mengubah izin pengguna Apache ke file phar?   -  person gzg    schedule 11.07.2012
comment
@MarcB, terima kasih banyak! Saya telah berusaha keras untuk menyelesaikan ini selama 3 hari. Saya memberikan pengguna Apache saya (www-data) untuk mengakses/var/www dan itu menyelesaikannya.   -  person gzg    schedule 12.07.2012


Jawaban (1)


Ini adalah kesalahan otorisasi. Apache berjalan di bawah penggunanya sendiri, jadi Anda perlu memberikan pengguna apache untuk mengakses folder www.

person user2843016    schedule 03.10.2013