heather
6 سال پیش توسط heather مطرح شد
47 پاسخ

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

سلام خدمت استاد موسوی و دوستان محترم .
من یه چند وقتی بود که به دنیای لینوکس علاقه مند شده بودم به همین دلیل چند روز پیش اوبونتو رو نصب کردم.
چون می خوام سمت سرور کار کنم : 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

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


ثبت پرسش جدید
MHT
@mahiHT 6 سال پیش مطرح شد
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');"


heather
تخصص : برنامه نویس بک اند
@heather 6 سال پیش آپدیت شد
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 نصب نشه ...........


مهدی طهرانی
تخصص : cloud architect
@mtehrani 6 سال پیش مطرح شد
2

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


مهدی
@code2code 6 سال پیش مطرح شد
2

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


heather
تخصص : برنامه نویس بک اند
@heather 6 سال پیش آپدیت شد
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 خیلی پیشرفته و باحاله .من تازه کارم ...........


مهدی
@code2code 6 سال پیش مطرح شد
2

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

sudo apt-get purge grub\*
sudo apt-get install grub-efi
sudo apt-get autoremove
sudo update-grub

heather
تخصص : برنامه نویس بک اند
@heather 6 سال پیش آپدیت شد
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) ...  

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


مهدی طهرانی
تخصص : cloud architect
@mtehrani 6 سال پیش مطرح شد
1

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


heather
تخصص : برنامه نویس بک اند
@heather 6 سال پیش آپدیت شد
1

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


heather
تخصص : برنامه نویس بک اند
@heather 6 سال پیش آپدیت شد
1

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

heather@heather:~$ cd /
heather@heather:/$ 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
heather@heather:/$ cd boot
heather@heather:/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
heather@heather:/boot$ 

heather
تخصص : برنامه نویس بک اند
@heather 6 سال پیش آپدیت شد
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 رو نصب کنم؟چرا این همه مشکل دارم که هیچ کس نداره!!!اگه اینکارو کردم چکار کنم که دوباره اینجوری سرم نیاد؟
خواهش می کنم راهنماییم کنین اعصابم خورد شده...خیلی بدشانسم من....خواهش می کنم زودتر جواب بدین


احسان قربانی
تخصص : PHP ، در حال یادگیری لاراول ،...
@TimeRunner2359 6 سال پیش مطرح شد
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 های خوب زیاده باید بگردید من از مینت استفاده میکنم. موفق باشی.


مهدی طهرانی
تخصص : cloud architect
@mtehrani 6 سال پیش آپدیت شد
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

heather
تخصص : برنامه نویس بک اند
@heather 6 سال پیش مطرح شد
1

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


مهدی طهرانی
تخصص : cloud architect
@mtehrani 6 سال پیش مطرح شد
1

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


heather
تخصص : برنامه نویس بک اند
@heather 6 سال پیش آپدیت شد
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.

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


مهدی
@code2code 6 سال پیش آپدیت شد
2

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

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

https://goo.gl/AykSsq


heather
تخصص : برنامه نویس بک اند
@heather 6 سال پیش آپدیت شد
1

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


مهدی
@code2code 6 سال پیش مطرح شد
1

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


heather
تخصص : برنامه نویس بک اند
@heather 6 سال پیش آپدیت شد
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

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


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

ورود یا ثبت‌نام