Setiap kali saya menjalankan komposer (mis sudo composer install, sudo composer self-update
. , Dll.) Saya perlu menjalankan ini dengan sudo karena pemilik file adalah root.
Namun setiap kali saya menggunakan komposer dengan sudo root memiliki folder vendor dan kemudian saya harus mengubah pemilik folder itu / hak istimewa dari root ke www-data.
Apa cara terbaik untuk memperbaikinya sehingga saya tidak harus menjalankan sudo setiap saat?
Ubah pemilik /usr/local/bin/composer
dari root ke www-data?
Apakah ini cara yang ideal untuk menangani ini agar tidak perlu mengubah kepemilikan dan memberikan izin setiap kali saya menggunakan sudo composer install
?
Sunting:
Izin untuk komposer saat ini -rwxr-xr-x
. Dan saya sudah mencoba mengalihkan pemilik /usr/local/bin/composer
lebih ke www-data:www-data
dengan izin ditetapkan ke 775, dan masih saya tidak dapat menjalankan komposer tanpa menjalankan sudo
.
composer self-update
tanpa menggunakan sudo. Apakah saya perlu menggunakan 775?composer update
dan ini juga tidak berfungsi dengan izin itu. Saya masih harus menggunakan sudo dulu. Ini adalah kesalahan yang saya dapatkanfile_put_contents(/home/lamp/.composer/cache/repo/https---packagist.org/packages.json): failed to open stream: Permission denied
chown -R lamp:lamp /home/lamp/.composer
)Saya telah berurusan dengan masalah ini selama berminggu-minggu.
Saya pikir solusinya adalah menjalankan pembaruan diri komposer dengan -H
Sebelum melakukan ini pastikan untuk menghapus direktori .composer di root dan direktori home dari pengguna yang ingin Anda jalankan komposer.
Menjalankan pembaruan mandiri sudo komposer tanpa tanda -H akan membuat ~ / .composer yang dimiliki oleh root dan akan mencegah perintah komposer lain memiliki kesalahan izin.
Menurut pendapat saya memanggil sudo composer self-update seharusnya tidak membuat file yang dimiliki oleh root di direktori home pengguna saat ini.
Catatan jika Anda mengikuti petunjuk ini pada komposer Ubuntu 14.04 akan menempatkan cache di:
Daripada:
Ini karena variabel lingkungan XDG_RUNTIME_DIR yang ditentukan dalam Ubuntu 14.04 tetapi tampaknya tidak didefinisikan dalam Ubuntu 12.04
Diskusi terkait di sini
sumber
$ sudo -H composer self-update $ You are already using composer version 1.3.0 (stable channel).
~/.composer
folder sepertinya dapat menyelesaikan masalah.