Laravel에는 Mcrypt PHP 확장이 필요합니다
내가 사용하려고 migrate
의 기능 Laravel 4
에 OSX
. 그러나 다음과 같은 오류가 발생합니다.
Laravel requires the Mcrypt PHP extension.
내가 이해하는 한 이미 활성화되어 있습니다 (아래 이미지 참조).
무엇이 잘못되었으며 어떻게 해결할 수 있습니까?
웹 지원 확장과 명령 줄 지원 확장은 다를 수 있습니다. php -m
터미널에서 실행하여이 목록 에 있는지 확인하십시오 mcrypt
. 그렇지 않은 경우 터미널에서 php.ini
실행 하여 명령 줄이 파일을 로드하는 위치를 확인하십시오 php --ini
.
이 php.ini
파일에서 확장명을 활성화 할 수 있습니다.
OSX
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 필요성 제거
당신이 있습니까 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를 확인하십시오.
그리고 지금 작동해야합니다.
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"
- Ctrl+O저장 Ctrl+X하고 종료 하려면 입력하십시오 .
- 유형
cd ~
- 유형
. .bash_profile
- 터미널을 다시 시작하십시오.
- 를 입력하십시오
which php
. 제대로했다면 # 4의 경로와 같아야합니다.
mcrypt 오류의 원인은 Mac에서 기본 PHP를 사용하기 때문에 xampp에있는 것으로 변경해야하기 때문입니다.
추신 : Mac 사용자를 위해 Laravel 4에 MAMP를 사용하는 것이 좋습니다.이 문제는 땀없이 PHP 파일 정보 오류와 함께 해결되며 xampp의 PHP 버전은 너무 구식입니다.
OSX (homebrew가 설치된)의 MAMP 또는 XAMPP가 아닌 사용자의 경우 :
brew install homebrew/php/php56-mcrypt
건배!
우분투를 사용하면
sudo php5enmod mcrypt
나를 위해 트릭을했다. CLI에서 PHP를 사용해야하기 때문에 Apache를 다시 시작할 필요가 없습니다.
우분투에서 (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
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
아파치 서버를 다시 시작하고 라 라벨 캐시와 모든 작업을 제거하십시오.
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
우분투의 경우 다른 사람들이 작동하지 않으면 다음 단계를 시도하십시오.
cd ~
sudo apt-get remove php5-mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart
도움이 되길 바랍니다. 감사 !
또는 다음을 사용하십시오.
sudo apt-get install php5-mcrypt
이것이 표준 PHP 설치에서 작동하는지 확실하지 않습니다- php 5.5.7
패키지를 사용하여 설치 했습니다 :
sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update
내 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)
다음 단계:
- php55 ini 파일 이름 바꾸기 또는 삭제
- 심볼릭 링크 만들기
- Apache 서버를 다시 시작하십시오.
명령 :
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 로컬 환경에서 나를 위해 해결했습니다 https://askubuntu.com/questions/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에 대한 무료 자습서를 제공합니다.
다음 도구를 모두 사전 설치하므로 홈스테드를 사용하는 것이 좋습니다.
- 우분투 14.04
- PHP 5.6
- HHVM
- 니 진스
- MySQL
- 포스트그레스
- 노드 (Bower, Grunt 및 Gulp 포함)
- 레디 스
- Memcached
- 콩 줄기
- 라 라벨 사절
- 패브릭 + 힙챗 확장
@JetLaggy에서 확장 :
MAMP 디렉토리로 .bash_profile을 반복해서 수정 한 후 MAMP php 디렉토리의 파일 권한을 변경하고 올바른 디렉토리를 표시하기 위해 '어떤 PHP'를 얻을 수있었습니다. 문제는 'php -v'와 같은 다른 기능이 작동하지 않았다는 것입니다.
그래서 MAMP를 업데이트했습니다. http://documentation.mamp.info/en/mamp/installation/updating-mamp
이것은 내 특정 설정에 대한 트릭을 수행했습니다. 업데이트 된 PHP 버전을 반영하기 위해 PATH를 조정해야했지만 일단 완료하면 모든 것이 작동했습니다!
OS X에서
MAMP 사용
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 버전이 올바르게 출력됩니다.
Homebrew / MacPorts 사용하기
이 두 패키지 관리자 중 하나와 함께 제공되는 PHP를 사용하는 경우 path
포함 /usr/local/bin/
(Homebrew) 또는 /opt/local/bin
(MacPorts)를 확인하십시오 .
MacPorts로 PHP 경로 확인
다음 명령으로 MacPorts를 사용하여 PHP의 정확한 위치를 찾을 수 있습니다.
port contents php70 | grep bin/php
php70
설치 한 PHP 버전으로 바꿔야 합니다.
Homebrew-php로 PHP 경로 확인
Homebrew-php ( https://github.com/Homebrew/homebrew-php )는 다양한 버전의 PHP가있는 탭입니다.
다음 명령으로 Homebrew를 사용하여 PHP의 정확한 위치를 찾을 수 있습니다.
brew --prefix homebrew/php/php56
php56
설치 한 PHP 버전으로 바꿔야 합니다.
우분투 14.04에서
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
우분투 16.04
sudo apt-get install php-mcrypt
sudo phpenmod mcrypt
우분투 18.04
sudo apt install php7.0-mcrypt
sudo phpenmod mcrypt
또는
sudo apt install php7.2-mcrypt
sudo phpenmod mcrypt
Z Shell을 사용하는 경우 다음을 수행하십시오.
- 터미널 열기
- 수도
nano ~/.zshrc
- 붙여 넣기
export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH
- 저장
- 운영
source ~/.zshrc
- 실행
which php
-MAMP 5.6.10 경로를 가져와야합니다.
5.6.10은 MAMP에서 설정 한 PHP 버전입니다.
추출 기능이있는 OSX
$ brew install mcrypt php70-mcrypt
PHP 7.0.x를 사용하고 있으므로 다른 버전을 사용하는 경우 "php70"을 버전으로 변경하십시오.
다른 답변에서 언급했듯이으로 PHP 버전을 볼 수 있습니다 $ php -v
.
오늘도 여기에 오는 사람들을 위해 :
라 라벨은 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
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
참고 URL : https://stackoverflow.com/questions/16830405/laravel-requires-the-mcrypt-php-extension
'Programming' 카테고리의 다른 글
Heroku + node.js 오류 (웹 프로세스가 시작 후 60 초 내에 $ PORT에 바인딩하지 못했습니다) (0) | 2020.02.21 |
---|---|
GCC에서`문자열 상수에서 'char *'`경고로 더 이상 사용되지 않는 변환을 제거하는 방법은 무엇입니까? (0) | 2020.02.21 |
MySQL에서 하나를 제외한 모든 중복 행을 삭제 하시겠습니까? (0) | 2020.02.21 |
문자열의 첫 글자를 대문자로 만듭니다 (성능 극대화). (0) | 2020.02.21 |
Android에서 텍스트를 굵게 변경하려면 어떻게합니까? (0) | 2020.02.21 |