نصب composer در اوبونتو لینوکس

php -
3 سال پیش توسط heather مطرح شد
آفلاین
user-avatar
heather ( 4448 تجربه )
3 سال پیش
تخصص : برنامه نویس بک اند

لینک کوتاه اشتراک گذاری

0

سلام خدمت استاد موسوی و دوستان محترم .
من یه چند وقتی بود که به دنیای لینوکس علاقه مند شده بودم به همین دلیل چند روز پیش اوبونتو رو نصب کردم.
چون می خوام سمت سرور کار کنم : xampp رو نصب کردم و حالا می خوام composer رو هم نصب کنم ولی با مشکل مواجه شدم .نصب نمی کنه!!!!! رفتم تو اینترنت دنبال روش نصبش رفتم انواع روش نصب وجود داره ادم سردرگم می شه!!!
یکی از روش ها: ۱-ابزار curl رو نصب کردم -۲- دستور زیر رو برای اوردن فایل composer-setup.php نوشتم در ترمینال:

 `curl -sS [https://getcomposer.org/installer](https://getcomposer.org/installer) -o composer-setup.php` 

۳- دستور زیر رو برای verify کردن نوشتم:

    php -r "if (hash_file('SHA۳۸۴', 'composer-setup.php') === '۶۶۹۶۵۶bab۳۱۶۶a۷aff۸a۷۵۰۶b۸cb۲d۱c۲۹۲f۰۴۲۰۴۶c۵a۹۹۴c۴۳۱۵۵c۰be۶۱۹۰fa۰۳۵۵۱۶۰۷۴۲ab۲e۱c۸۸d۴۰d۵be۶۶۰b۴۱۰') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"  

ولی در جوابش به جای installer verified عبارت 'Installer corrupt'; رو تحویل داد!!
۴-و حالا دستور زیر رو برای install کردن این فایل نوشتم

    sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer  

ولی با ارور زیر مواجه شدم!!

`Could not open input file: composer-setup.php`

حالا چون من تازه کارم و تو لینوکس وارد نیستم نمیدونم چه کار باید بکنم! از یک روش دیگه هم استفاده کردم :

`curl -sS [https://getcomposer.org/installer](https://getcomposer.org/installer) | php`  

ولی ارور تحولیم داد:

    Some settings on your machine make Composer unable to work properly.  
    Make sure that you fix the issues listed below and run this script again:

    The json extension is missing.  
    Install it or recompile php without --disable-json

    The phar extension is missing.  
    Install it or recompile php without --disable-phar

    The iconv OR mbstring extension is required and both are missing.  
    Install either of them or recompile php without --disable-iconv

ممنون میشم کمکم کنید.

آفلاین
user-avatar
MHT ( 1279 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

1

سلام. من هم این مشکلو داشتم. توی خود سایتش (https://getcomposer.org/download/) تو قسمت Command-line installation
این چند خط رو اگر توی کامند بنویسید نصب میشه.( قبلش چک کنید php نصب شده و روی path قرار گرفته)
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

آفلاین
user-avatar
heather ( 4448 تجربه )
3 سال پیش
تخصص : برنامه نویس بک اند

لینک کوتاه اشتراک گذاری

1

ممنون از شما ولی ظاهرا مشکل یکم بزرگتره چون قبل نصب composer باید git رو نصب کرد .ولی اونم نصب نمی کنه.دایرکتوری ها رو میاره .ولی نمیدونم مشکل چیه چون تازه کارم :

Reading package lists... Done  
Building dependency tree  
Reading state information... Done  
git is already the newest version (1:2.17.1-1ubuntu0.1).  
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.  
1 not fully installed or removed.  
After this operation, 0 B of additional disk space will be used.  
Do you want to continue? [Y/n] y  
Setting up grub-efi-amd64-signed (1.93.4+2.02-2ubuntu8.3) ...  
Installing for x86_64-efi platform.  
Could not prepare Boot variable: No space left on device  
grub-install: error: efibootmgr failed to register the boot entry: Input/output error.  
dpkg: error processing package grub-efi-amd64-signed (--configure):  
installed grub-efi-amd64-signed package post-installation script subprocess returned error exit status 1  
Errors were encountered while processing:  
grub-efi-amd64-signed  
E: Sub-process /usr/bin/dpkg returned an error code (1)  

انگاری اساسی مشکل داره. خواهشا اگه میشه کمکم کنید ممنون می شم....چون اگه composer نصب نشه ...........

آفلاین
user-avatar
مهدی طهرانی ( 18536 تجربه )
3 سال پیش
تخصص : cloud architect

لینک کوتاه اشتراک گذاری

2

@heather
دوست عزیز در لینوکس نیازی به xampp ندارید و بهتره ازش استفاده نکنید و برای نصب کامپوزر از دستور sudo apt install composer استفاده کنید.

آفلاین
user-avatar
مهدی ( 23322 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

2

اصلا این حرفا نیست تو لینوکس
توی لینوکس به ساده ترین شکل ممکن میشه نصب کرد
همون طور که آقای طهرانی نوشتن
عمل کنین

آفلاین
user-avatar
heather ( 4448 تجربه )
3 سال پیش
تخصص : برنامه نویس بک اند

لینک کوتاه اشتراک گذاری

1

@haghft
خیلی خیلی ممنون از شما که جواب دادین.من یک هفتس که می خوام php,mysql,composer,laravel رو روش نصب کنم ولی هر بار رفتم سراغ سایتهای دیگه هر دونشون یک نظری داده بودن.یکی از این سایتها اسون ترین راه رو که گفته بود از طریق xampp هستش پیشنهاد داده بود.منم نمیدونستم که خودش پیشفرض خیلی چیزا رو داخلش داره و نیازی به زمپ نبود.حالا دستوری که گفتینو وارد کردم و خیلی از چیزا رو نصب کرد ولی یک مشکلی داره: تو نصب git هم اینو داشت وقتی که می خواد نصب کنه در وسط :

Setting up grub-efi-amd64-signed (1.93.4+2.02-2ubuntu8.3) ...  
Installing for x86_64-efi platform.  
Could not delete variable: No space left on device  
grub-install: error: efibootmgr failed to register the boot entry: Block device required.  
dpkg: error processing package grub-efi-amd64-signed (--configure):  
installed grub-efi-amd64-signed package post-installation scr  

و در اخر این:

Setting up composer (1.6.3-1) ...  
Errors were encountered while processing:  
grub-efi-amd64-signed  
E: Sub-process /usr/bin/dpkg returned an error code (1)  

و وقتی که مثلا دستور composer رو وارد می کنی تا مشخصات و همه چیزش بیاد :

Fatal error: Uncaught Error: Class 'Phar' not found in /usr/local/bin/composer:23  
Stack trace:

# 0 {main}

thrown in /usr/local/bin/composer on line 23

فایل composer اومده ولی نمیتونه بازش کنه فک کنم!اینقدر روش این همه سایت رو استفاده کردم دیگه گیج شدم.
شما کل دستورات نصب php,mysql,composer,laravel رو بهم بگین بلکه من راحت شم!!!! در کل linux خیلی پیشرفته و باحاله .من تازه کارم ...........

آفلاین
user-avatar
مهدی ( 23322 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

2

گراب سیستمت گویا خراب شده کدای زیر رو توی ترمینال بزن ببینم درست میشه

sudo apt-get purge grub\*
sudo apt-get install grub-efi
sudo apt-get autoremove
sudo update-grub
آفلاین
user-avatar
heather ( 4448 تجربه )
3 سال پیش
تخصص : برنامه نویس بک اند

لینک کوتاه اشتراک گذاری

1

@mdaalvand
سلام .ممنون از جوابتون .
کدها تون رو نوشتم ولی در دستور دومی بعد این Creating config file /etc/default/grub with new version
باز اینها اومدن::

Installing for x86_64-efi platform.  
Could not prepare Boot variable: No space left on device  
grub-install: error: efibootmgr failed to register the boot entry: Input/output error.  
Failed: grub-install --target=x86_64-efi  
WARNING: Bootloader is not properly installed, system may not be bootable  
بعد هم که:  
Generating grub configuration file ...  
Found linux image: /boot/vmlinuz-4.15.0-33-generic  
Found initrd image: /boot/initrd.img-4.15.0-33-generic  
Found linux image: /boot/vmlinuz-4.15.0-32-generic  
Found initrd image: /boot/initrd.img-4.15.0-32-generic  
done  
Setting up grub-efi (2.02-2ubuntu8.3) ...  
Processing triggers for ureadahead (0.100.0-20) ...  

مشکل بزرگیه؟؟؟

آفلاین
user-avatar
مهدی طهرانی ( 18536 تجربه )
3 سال پیش
تخصص : cloud architect

لینک کوتاه اشتراک گذاری

1

@heather
این داره میگه پارتیشن فضای کافی نداره!
شما برای boot و efi پارتیشن جدا تعریف کردین یا خیر؟

آفلاین
user-avatar
heather ( 4448 تجربه )
3 سال پیش
تخصص : برنامه نویس بک اند

لینک کوتاه اشتراک گذاری

1

@mdaalvand
@haghft
والله چی بگم ...هخخخ
وقتی که نصب کردیم چهار تا گزینه بود من از کل اطلاعاتم وقتی که ویندوز داشتم بک اپ گرفتم.به همین دلیل تیک گزینه ی :
اتوماتیک همه ی کارا خودت اجام بده و همه چیز رو حذف کن و پارتیشن ها رو هم خودت اوکی کن رو زدیم!!!!
(ٍEraser Disck and...)
بهم گفتن همین کار رو بکنم .منم گوش کردم. (ویندوز در کنارش ندارم...)
دایرکتوری boot رو دارم ولی پارتیشن هام => root,swap,Home (جدا تعریف نکردیم) .شرمنده م واقعا....شاید بگین پس چرا نصبش کردین؟ راستش یه جورایی عاشقش شده بودم فقط می خواستم توش حرفه ای شم عجله کردم
حالا نمیدونم شاید چون واسش تعریف نکردیم اتوماتیک تو پارتیشن root ساخته شده باشه.
در باره ی efi هم همین نظر رو دارم. اگه واقعا می تونید کمکم کنید ممنون میشم....(ادم باید از یک جایی یاد بگیرد هیچ کس گیگ به دنیا نمیاد....)
اگه تونستین کمک کنین.خیلی ممنون می شم

آفلاین
user-avatar
heather ( 4448 تجربه )
3 سال پیش
تخصص : برنامه نویس بک اند

لینک کوتاه اشتراک گذاری

1

@haghft
دایرکتوری efi در داخل دایرکتوری boot هستش .
خیلی ممنون.

[email protected]:~$ cd /
[email protected]:/$ ls
bin    dev   initrd.img      lib64       mnt   root  snap  tmp  vmlinuz
boot   etc   initrd.img.old  lost+found  opt   run   srv   usr  vmlinuz.old
cdrom  home  lib             media       proc  sbin  sys   var
[email protected]:/$ cd boot
[email protected]:/boot$ ls
abi-4.15.0-32-generic         memtest86+.bin
abi-4.15.0-33-generic         memtest86+.elf
config-4.15.0-32-generic      memtest86+_multiboot.bin
config-4.15.0-33-generic      retpoline-4.15.0-32-generic
efi                           retpoline-4.15.0-33-generic
grub                          System.map-4.15.0-32-generic
initrd.img-4.15.0-32-generic  System.map-4.15.0-33-generic
initrd.img-4.15.0-33-generic  vmlinuz-4.15.0-32-generic
lost+found                    vmlinuz-4.15.0-33-generic
[email protected]:/boot$ 
آفلاین
user-avatar
heather ( 4448 تجربه )
3 سال پیش
تخصص : برنامه نویس بک اند

لینک کوتاه اشتراک گذاری

1

@mdaalvand
@haghft
دوستان خواهش می کنم یکی بگه چکار باید بکنم الان.....
هر جوری سرچ می کنم هیچ جا ننوشته چی کار کنم.
رفتم boot رو تعمیر کردم .دستور نصب composer رو زدم :

    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    composer is already the newest version (1.6.3-1).
    0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

‍‍‍‍‍ولی وقتی دستور composer رو وارد می کنم :!

Composer 1.6.3 2018-01-31 16:28:17

Usage:
  command [options] [arguments]

Fatal error: Uncaught Error: Call to undefined function SymfonyPolyfillMbstringiconv() in /usr/share/php/Symfony/Polyfill/Mbstring/Mbstring.php:534
Stack trace:
#0 /usr/share/php/Symfony/Polyfill/Mbstring/bootstrap.php(46): SymfonyPolyfillMbstringMbstring::mb_strwidth('h', 'ASCII')
#1 /usr/share/php/Symfony/Component/Console/Helper/Helper.php(54): mb_strwidth('h', 'ASCII')
#2 /usr/share/php/Symfony/Component/Console/Descriptor/TextDescriptor.php(329): SymfonyComponentConsoleHelperHelper::strlen('h')
#3 /usr/share/php/Symfony/Component/Console/Descriptor/TextDescriptor.php(97): SymfonyComponentConsoleDescriptorTextDescriptor->calculateTotalWidthForOptions(Array)
#4 /usr/share/php/Symfony/Component/Console/Descriptor/TextDescriptor.php(189): SymfonyComponentConsoleDescriptorTextDescriptor->describeInputDefinition(Object(SymfonyComponentConsoleInputInputDefinition), Array)
#5 /usr/share/php/Symfony/Component/Console/Descriptor/Descriptor.php(55): SymfonyComponentConsoleDescriptorTextDescriptor->desc in /usr/share/php/Symfony/Polyfill/Mbstring/Mbstring.php on line 534

الان یک Fatal Error دارم . حالا نمیدونم چکار کنم؟؟؟دوستان به نظرتون دوباره ubunuto رو نصب کنم؟چرا این همه مشکل دارم که هیچ کس نداره!!!اگه اینکارو کردم چکار کنم که دوباره اینجوری سرم نیاد؟
خواهش می کنم راهنماییم کنین اعصابم خورد شده...خیلی بدشانسم من....خواهش می کنم زودتر جواب بدین

آفلاین
user-avatar
احسان قربانی ( 42962 تجربه )
3 سال پیش
تخصص : PHP ، در حال یادگیری لاراول ، MidLevel درفرانت اند

لینک کوتاه اشتراک گذاری

2

سلام دوست عزیز :)
من تا ته این پست رو نخوندم ولی پیشنهاد من اینه که اول با دستور زیر composer رو حذف کنی:
"sudo apt-get purge --auto-remove composer"
و بعدش xampp رو ذف کنی که من نمیدونم چطوریه .
بعد طبق لینک زیر lamp رو نصب کن:
https://howtoubuntu.org/how-to-install-lamp-on-ubuntu
بعد هم composer رو طبق سایت خودش و به صورت global نصب کن.
امیدوارم موفق باشی .
و یه نکته در مورد لینوکس : من برای کسایی مثل خودم و شما که خیلی با ترمینال میونه ی خوبی ندارن یا جدیدن توصیه میکنم از اوبونتو استفاده نکنید مخصوصا 18.04 که داغون بود . Distro های خوب زیاده باید بگردید من از مینت استفاده میکنم. موفق باشی.

آفلاین
user-avatar
مهدی طهرانی ( 18536 تجربه )
3 سال پیش
تخصص : cloud architect

لینک کوتاه اشتراک گذاری

2

@heather
دوست عزیز شما گام به گام کارهایی رو که میگم انجام بده عجله هم نکن
اول این چیزایی رو که مینویسم نصب کن به کامپوزر و هیچ چیز دیگه هم دست نزن فعلا فقط اینارو انجام بده تموم شد کامپوزرو اجرا کن و نتیجه رو اعلام کن:

sudo apt install php-mbstring
sudo apt install php-iconv
sudo apt install php-mysql
sudo apt install php-tokenizer
sudo apt install php-pdo
sudo apt install php-ctype
sudo apt install php-xml
sudo apt install php-json
sudo apt install php-redis
sudo apt install php-posix
sudo apt install php-tidy
sudo apt install php-zip
آفلاین
user-avatar
heather ( 4448 تجربه )
3 سال پیش
تخصص : برنامه نویس بک اند

لینک کوتاه اشتراک گذاری

1

@haghft
سلام ممنون از جوابتون.فقط چجوری نصب کنم به کامپوزر؟وارد فولدر کامپوزر شم که = /usr/bin/composer هستش
یا همینجوری دستورات رو بزنم؟

آفلاین
user-avatar
مهدی طهرانی ( 18536 تجربه )
3 سال پیش
تخصص : cloud architect

لینک کوتاه اشتراک گذاری

1

@heather
نه همینطوری توی ترمینال بزنین

آفلاین
user-avatar
heather ( 4448 تجربه )
3 سال پیش
تخصص : برنامه نویس بک اند

لینک کوتاه اشتراک گذاری

1

@haghft
سلام خدمت شما .ممنون از راهنماییاتون.
همونطور که گفتین وارد کردم ولی در همون دستور اول : warning داد .

‍‍ sudo apt install php-mbstring  
[sudo] password for heather:  
Reading package lists... Done  
Building dependency tree  
Reading state information... Done  
The following additional packages will be installed:  
php7.2-mbstring  
The following NEW packages will be installed:  
php-mbstring php7.2-mbstring  
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.  
Need to get 0 B/483 kB of archives.  
After this operation, 1,723 kB of additional disk space will be used.  
Do you want to continue? [Y/n] y

بعد که -> y

Selecting previously unselected package php7.2-mbstring.  
(Reading database ... 172060 files and directories currently installed.)  
Preparing to unpack .../php7.2-mbstring_7.2.7-0ubuntu0.18.04.2_amd64.deb ...  
Unpacking php7.2-mbstring (7.2.7-0ubuntu0.18.04.2) ...  
Selecting previously unselected package php-mbstring.  
Preparing to unpack .../php-mbstring_1%3a7.2+60ubuntu1_all.deb ...  
Unpacking php-mbstring (1:7.2+60ubuntu1) ...  
Setting up php7.2-mbstring (7.2.7-0ubuntu0.18.04.2) ...

Creating config file /etc/php/7.2/mods-available/mbstring.ini with new version  
WARNING: Directory /etc/php/7.2/cli/conf.d doesn't exist, not enabling the module  
WARNING: Directory /etc/php/7.2/apache2/conf.d doesn't exist, not enabling the module  
WARNING: Directory /etc/php/7.2/cgi/conf.d doesn't exist, not enabling the module  
php_invoke: Enabled module mbstring for cli sapi  
php_invoke: Enabled module mbstring for apache2 sapi  
php_invoke: Enabled module mbstring for cgi sapi  
Setting up php-mbstring (1:7.2+60ubuntu1) ...  
Processing triggers for libapache2-mod-php7.2 (7.2.7-0ubuntu0.18.04.2) ...  
Warning: Could not load Apache 2.4 maintainer script helper.

الان من چی کارکنم؟
اون سه تا چیزی که گفته رو تو او ادرس ندارم!!!! چجوری باید اضافه کرد خیلی عجیبه.

آفلاین
user-avatar
مهدی ( 23322 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

2

اول دستور sudo -s یا sudo bash رو بزن
بعد دستور

update-alternatives --set php /usr/bin/php7.2  
a2enmod php7.2  
systemctl restart apache2

https://goo.gl/AykSsq

آفلاین
user-avatar
heather ( 4448 تجربه )
3 سال پیش
تخصص : برنامه نویس بک اند

لینک کوتاه اشتراک گذاری

1

@haghft
میگه :
‍‍‍```
Command 'a2enmod' not found, but can be installed with:
apt install apache2

آفلاین
user-avatar
مهدی ( 23322 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

1

خوب میگه apt install apache۲ بزن هرجا اومد که apt install ینی یه چیزی نصب کن!!!

آفلاین
user-avatar
heather ( 4448 تجربه )
3 سال پیش
تخصص : برنامه نویس بک اند

لینک کوتاه اشتراک گذاری

1

@mdaalvand
همونطور که گفتین نصب شد و دستورات اقای طهرانی هم رو اجرا کردم و اروری نداشتم .ولی وقتی دستور composer
رو میزنم باز.....ظاهرا حل نمیشه!!!...اخه این چجورشه ....باید کل اوبونتو رو دوباره نصب کنم؟!کلافه شدم
( همون ارور صفحه ی قبله)

Composer 1.6.3 2018-01-31 16:28:17

Usage:
  command [options] [arguments]

Fatal error: Uncaught Error: Call to undefined function SymfonyPolyfillMbstringiconv() in /usr/share/php/Symfony/Polyfill/Mbstring/Mbstring.php:534
Stack trace:
#0 /usr/share/php/Symfony/Polyfill/Mbstring/bootstrap.php(46): SymfonyPolyfillMbstringMbstring::mb_strwidth('h', 'ASCII')
#1 /usr/share/php/Symfony/Component/Console/Helper/Helper.php(54): mb_strwidth('h', 'ASCII')
#2 /usr/share/php/Symfony/Component/Console/Descriptor/TextDescriptor.php(329): SymfonyComponentConsoleHelperHelper::strlen('h')
#3 /usr/share/php/Symfony/Component/Console/Descriptor/TextDescriptor.php(97): SymfonyComponentConsoleDescriptorTextDescriptor->calculateTotalWidthForOptions(Array)
#4 /usr/share/php/Symfony/Component/Console/Descriptor/TextDescriptor.php(189): SymfonyComponentConsoleDescriptorTextDescriptor->describeInputDefinition(Object(SymfonyComponentConsoleInputInputDefinition), Array)
#5 /usr/share/php/Symfony/Component/Console/Descriptor/Descriptor.php(55): SymfonyComponentConsoleDescriptorTextDescriptor->desc in /usr/share/php/Symfony/Polyfill/Mbstring/Mbstring.php on line 534

فقط اگه واقعا درست نمیشه بهم بگین چیکار کنم اوبونتو رو دوباره نصب کنم یا اصلا اوبونتو نصب نکنم .ممنون از همتون

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.