내가 사용하려고 migrate
의 기능 Laravel 4
에 OSX
. 그러나 다음과 같은 오류가 발생합니다.
Laravel requires the Mcrypt PHP extension.
내가 이해하는 한 이미 활성화되어 있습니다 (아래 이미지 참조).
무엇이 잘못되었으며 어떻게 해결할 수 있습니까?
내가 사용하려고 migrate
의 기능 Laravel 4
에 OSX
. 그러나 다음과 같은 오류가 발생합니다.
Laravel requires the Mcrypt PHP extension.
내가 이해하는 한 이미 활성화되어 있습니다 (아래 이미지 참조).
무엇이 잘못되었으며 어떻게 해결할 수 있습니까?
답변:
웹 지원 확장과 명령 줄 지원 확장은 다를 수 있습니다. php -m
터미널에서 실행하여이 목록 에 있는지 확인하십시오 mcrypt
. 그렇지 않은 경우 터미널에서 php.ini
실행 하여 명령 줄이 파일을 로드하는 위치를 확인하십시오 php --ini
.
이 php.ini
파일에서 확장명을 활성화 할 수 있습니다.
OSX와 함께 제공되는 기본 PHP를 가리키는 터미널로 인해 OSX에서 문제가 발생하는 사람들에 대해 들었습니다. 대신 PHP의 실제 경로를 포함하도록 bash 프로파일을 업데이트해야합니다. 이와 같은 것 (실제로 OSX를 사용하지 않으므로 100 %가 아닐 수도 있음) :
export PATH=/usr/local/php5/bin:$PATH
이전 버전의 우분투 (14.04 이전) sudo apt-get install php5-mcrypt
에서는 실행할 때 실제로 확장 프로그램을 설치하지 않습니다 mods-available
. 심볼릭 링크가 필요합니다.
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini
모든 우분투 버전에서는 일단 설치되면 모드를 활성화해야합니다. 당신은 그것을 할 수 있습니다 php5enmod
.
sudo php5enmod mcrypt
sudo service apache2 restart
노트
- 더 이상 사용되지 않는 PHP 7.1 및 7.2는 mcrypt 확장을 완전히 제거했습니다.
- Laravel 5.1 이상 에서 mcrypt 필요성 제거
sudo apt-get install php5-mcrypt
실제로 확장 기능을 완전히 설치하지 않는 방법 은 이상합니다.
당신이 있습니까 MAMP가 설치되어 있습니까?
which php
터미널에서 사용 중인 PHP 버전을 확인하십시오.
MAMP의 PHP 버전이 아닌 경우 .bash_profile
사용자의 홈 디렉토리를 편집하거나 추가해야합니다 .cd ~
에서 .bash_profile
다음 줄을 추가하십시오.
export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH
편집 : 먼저 명령 cd /Applications/MAMP/bin/php
을 사용하여 사용중인 MAMP의 PHP 버전을 확인한 다음 위의 PHP 버전으로 바꿔야합니다.
그런 다음 restart
터미널에서 현재 사용중인 PHP를 확인하십시오.
그리고 지금 작동해야합니다.
export PATH=/Applications/AMPPS/php-5.4/bin:$PATH
... 5.4.xx로 촬영한다고 가정하면 5.3 및 5.5도 있습니다.
cd ~
것은, 매우 중요 .bash_profile
합니다. 거기에 있는 것을 열어야합니다 . 또한 새로운 bash 변수가로드되도록 터미널을 닫았다가 다시 열어야합니다. 변경 사항이 적용되었는지 확인하기 위해 어떤 PHP를 실행하고 행복한 코딩을 수행하십시오!
XAMPP 1.7.3 및 Mac을 사용하는 사람들에게
which php
/usr/bin/php
3으로 진행하십시오.sudo nano ~/.bash_profile
(또는 sudo vim ~/.bash_profile
사용법을 알고있는 경우)export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
cd ~
. .bash_profile
which php
. 제대로했다면 # 4의 경로와 같아야합니다.mcrypt 오류의 원인은 Mac에서 기본 PHP를 사용하기 때문에 xampp에있는 것으로 변경해야하기 때문입니다.
추신 : Mac 사용자를 위해 Laravel 4에 MAMP를 사용하는 것이 좋습니다.이 문제는 땀없이 PHP 파일 정보 오류와 함께 해결되며 xampp의 PHP 버전은 너무 오래되었습니다.
"export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH"
export PATH="/opt/lampp/bin:$PATH"
OSX (homebrew가 설치된)에서 MAMP 또는 XAMPP가 아닌 사용자의 경우 :
brew install homebrew/php/php56-mcrypt
건배!
$ brew install homebrew/php/php55-mcrypt
, 그렇지 않으면 있어요Error: No available formula with the name "php55-mcrypt"
우분투에서 (PHP-FPM, Nginx)
sudo apt-get install php5-mcrypt
php5-mcrypt를 설치 한 후
mods-available에서 ini 파일에 심볼릭 링크를 만들어야합니다 :
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini
사용 :
sudo php5enmod mcrypt
php5-fpm을 다시 시작하십시오 :
sudo service php5-fpm restart
sudo aptitude -y install php5-mcrypt
한 다음, sudo php5enmod mcrypt
와 sudo service php5-fpm restart
. (소프트 링크 단계를 건너 뛰었습니다). 그것은 효과가 있었다 :)
Laravel이 Apache에서 작동하도록하기
PHP 버전 : PHP 5.5.9
우분투 버전 : 14.04
나는 창문에 laravel 프로젝트를 가지고 있었다. 우분투 서버에 복사하면 mcrypt 오류가 발생하기 시작했습니다. 많은 시간의 시행 착오 끝에
장인의 명령을 받고
(장인 명령 행 도구를 사용하는 동안 mcrypt 오류가 발생한 경우)
나는 많은 시행 착오를 했으므로 전에 php5enmod 명령을 실행할 때마다 오류 메시지가 나타납니다. 그러나 새로 설치하면 오류 메시지가 없습니다. 이 단계 후 나는 장인 명령 작업을 얻었다
sudo rm /etc/php5/mods-available/mcrypt.ini
sudo apt-get purge php5-mcrypt
sudo apt-get install mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
브라우저 오류 수정
(로컬 라 라벨 색인 페이지에 액세스 할 때 브라우저에서 mcrypt 오류가 발생한 경우)
sudo nano /etc/php5/apache2/php.ini
PHP ini의 동적으로 컴파일 된 확장 섹션 아래에 다음 줄을 추가하십시오.
extension=mcrypt.so
아파치 서버를 다시 시작하고 라 라벨 캐시와 모든 작업을 제거하십시오.
docker-php-ext-install mcrypt
. 이미지에서 테스트되었습니다 : php:5.6.31-apache
. 그것 없이는 php -m
표시되지 않습니다 mcrypt
.
Ubuntu 14.04에서 php-fpm 설치의 경우 다음이 저에게 효과적이었습니다.
sudo apt-get install php5-mcrypt
mcrypt.ini
내부에 파일 이 생성 됩니다/etc/php5/mods-available/
그때
sudo php5enmod mcrypt
다음에 심볼릭 링크를 만듭니다. /etc/php5/fpm/conf.d/
php-fpm 서비스를 다시 시작하십시오.
sudo service php5-fpm restart
내 OS는 Yosemite
입니다.
구성 경로를 찾아서이 문제를 해결합니다.
php --ini
출력 예 :
Configuration File (php.ini) Path: /usr/local/etc/php/5.5
Loaded Configuration File: /usr/local/etc/php/5.5/php.ini
Scan for additional .ini files in: /usr/local/etc/php/5.5/conf.d
Additional .ini files parsed: (none)
다음 단계:
명령 :
mv /usr/local/etc/php/5.5/php.ini /usr/local/etc/php/5.5/php.ini.default
ln -s /etc/php.ini /usr/local/etc/php/5.5/php.ini
sudo apachectl restart
그런 다음 다음을 통해 PHP 모듈을 확인할 수 있습니다.
php -m
유머에게만
yum install php-mcrypt
service httpd restart
chown -R apache:apache apppath
아마 당신은 remi repo를 설치해야합니다
이것은 Linux Mint 로컬 환경에서 나를 위해 해결했습니다 /ubuntu/350942/cannot-get-mcrypt-for-php5
다음 폴더 /etc/php5/apache2/conf.d/mcrypt.ini 및 /etc/php5/cli/conf.d에있는 내 /etc/php5/conf.d/mcrypt.ini 파일에 대한 심볼릭 링크를 만들어야했습니다. /mcrypt.ini
한 환경에서 모두 필요합니다. MAMP 또는 XAMPP 또는 기타 도구를 사용할 수 있습니다. 이러한 도구 중 하나를 설치 한 후에는 .bash_profile (bash를 사용한다고 가정)을 편집 (작성)해야합니다.
또는 간단하고 전문적인 사용자라도 Laravel Homestead를 사용할 수 있습니다.
공식 문서에 대한 링크는 다음과 같습니다. http://laravel.com/docs/5.0/homestead
또한 Jeffrey는 https://laracasts.com/series/laravel-5-fundamentals/episodes/2에 대한 무료 자습서를 제공합니다.
다음 도구를 모두 사전 설치하기 때문에 홈스테드를 사용하는 것이 좋습니다.
@JetLaggy에서 확장 :
MAMP 디렉토리로 .bash_profile을 반복해서 수정 한 후 MAMP php 디렉토리의 파일 권한을 변경하고 올바른 디렉토리를 표시하기 위해 'which php'를 얻을 수있었습니다. 문제는 'php -v'와 같은 다른 기능이 작동하지 않았다는 것입니다.
그래서 MAMP를 업데이트했습니다. http://documentation.mamp.info/en/mamp/installation/updating-mamp
이것은 내 특정 설정에 대한 트릭을 수행했습니다. 업데이트 된 버전의 PHP를 반영하도록 PATH를 조정해야했지만 일단 완료하면 모든 것이 작동했습니다!
명령을 입력하십시오 which php
터미널에 을 사용중인 PHP 버전을 확인하십시오. MAMP의 PHP 버전이 아닌 경우 Bash에서 사용하는 $ PATH 변수를 업데이트해야합니다.
먼저, "cd / Applications / MAMP / bin / php"명령을 사용하여 MAMP에서 어떤 PHP 버전을 확인하고 버전을 기록해야합니다 (예 : php5.6.7).
버전을 알고 나면 ~/.bash_profile
파일 ( .bash_profile
홈 디렉토리에 있는 파일)을 편집하고 내보내기 행을 추가해야합니다.
export PATH=/Applications/MAMP/bin/php/php5.6.7/bin:$PATH
php5.6.7을 MAMP에서 선택한 PHP 버전으로 바꿔야합니다.
파일이 저장되면 터미널을 닫고 다시 엽니 다. 이 작업이 완료되면 MAMP와 함께 제공되는 PHP를 사용하게됩니다.
내부에 넣어야 할 라인을 쉽게 찾는 한 가지 방법 .bash_profile
은 터미널 내부에서 다음 명령을 실행하는 것 입니다.
echo export PATH=`cat /Applications/MAMP/conf/apache/httpd.conf \
| grep php | grep -i LoadModule | head -n1 \
| sed -e 's/^[^\/]*\/\(.*\)\/mod.*/\/\1/'`/bin:\$PATH
이 세 줄을 복사하여 터미널에 붙여 넣으면 MAMP 제어판에서 선택한 PHP 버전이 올바르게 출력됩니다.
이 두 패키지 관리자 중 하나와 함께 제공되는 PHP를 사용하는 경우 path
포함 /usr/local/bin/
(Homebrew) 또는 /opt/local/bin
(MacPorts)를 확인하십시오 .
다음 명령으로 MacPorts를 사용하여 PHP의 정확한 위치를 찾을 수 있습니다.
port contents php70 | grep bin/php
php70
설치 한 PHP 버전으로 바꿔야 합니다.
Homebrew-php ( https://github.com/Homebrew/homebrew-php )는 다양한 버전의 PHP가있는 탭입니다.
다음 명령으로 Homebrew를 사용하여 PHP의 정확한 위치를 찾을 수 있습니다.
brew --prefix homebrew/php/php56
php56
설치 한 PHP 버전으로 바꿔야 합니다.
라 라벨은 mcrypt
더 이상 확장이 필요하지 않습니다 .mcrypt
libmcrypt의 마지막 업데이트는 2007 년에 더 이상 사용되지 않습니다. Laravel 4.2도 더 이상 사용되지 않으며 더 이상 지원되지 않습니다. 최선의 (= 보안) 솔루션은 Laravel> 5.1로 업데이트하는 것입니다 (Laravel 5.2 이전에는 LTS가 없습니다).
2015 년 6 월 Mcrypt가 Laravel에서 제거되었습니다 : https://github.com/laravel/framework/pull/9041
sudo PHP 설치 mcrypt
sudo php5enmod mcrypt
mcrypt
OP의 문제를 해결할 수 있다고 생각하는 이유를 확장 할 수 있습니까?
PHP 버전에 따라 우분투 14.04에서 : 5.6,7.0,7.1,7.2,7.3
sudo apt-get 설치 PHP {version} -mcrypt
sudo apt-get install php7.1-mcrypt
sudo phpenmod mcrypt