Saya mencoba untuk menggunakan migrate
fungsi di Laravel 4
atas OSX
. Namun, saya mendapatkan kesalahan berikut:
Laravel requires the Mcrypt PHP extension.
Sejauh yang saya mengerti, itu sudah diaktifkan (lihat gambar di bawah).
Apa yang salah, dan bagaimana cara memperbaikinya?
Jawaban:
Ekstensi yang diaktifkan web dan ekstensi yang diaktifkan baris perintah dapat berbeda. Jalankan
php -m
di terminal Anda dan periksa untuk melihat apakahmcrypt
terdaftar. Jika tidak maka periksa di mana baris perintah memuatphp.ini
file Anda dengan menjalankanphp --ini
dari terminal Anda.Dalam
php.ini
file ini Anda dapat mengaktifkan ekstensi.OSX
Saya telah mendengar ada orang di OSX yang mengalami masalah karena terminal menunjuk ke PHP asli yang dikirimkan dengan OSX. Anda sebaiknya memperbarui profil bash Anda untuk memasukkan jalur aktual ke PHP Anda. Sesuatu seperti ini (saya sebenarnya tidak menggunakan OSX jadi ini mungkin bukan 100%):
Ubuntu
Pada versi Ubuntu yang lebih lama (sebelum 14.04) ketika Anda menjalankannya
sudo apt-get install php5-mcrypt
sebenarnya tidak menginstal ekstensi ke dalammods-available
. Anda harus menghubungkannya.Pada semua versi Ubuntu Anda harus mengaktifkan mod setelah diinstal. Anda bisa melakukannya dengan
php5enmod
.sumber
sudo apt-get install php5-mcrypt
sebenarnya tidak menginstal ekstensi sepenuhnya.Apakah Anda sudah menginstal MAMP ?
Gunakan
which php
di terminal untuk melihat versi PHP yang Anda gunakan.Jika bukan versi PHP dari MAMP, Anda harus mengedit atau menambahkan
.bash_profile
direktori home pengguna, yaitu:cd ~
Di
.bash_profile
, tambahkan baris berikut:Diedit: Pertama, Anda harus menggunakan perintah
cd /Applications/MAMP/bin/php
untuk memeriksa versi PHP dari MAMP yang Anda gunakan dan kemudian mengganti dengan versi PHP di atas.Kemudian
restart
terminal untuk melihat PHP mana yang Anda gunakan sekarang.Dan itu seharusnya berfungsi sekarang.
sumber
export PATH=/Applications/AMPPS/php-5.4/bin:$PATH
... dengan asumsi Anda menembak untuk 5.4.xx, ada juga 5.3 dan 5.5 di sana.cd ~
sangat penting, Anda harus membuka.bash_profile
yang ada di sana, JUGA yang penting adalah Anda harus menutup terminal Anda dan membuka kembali sehingga variabel bash baru dimuat. Pastikan untuk menjalankan php mana untuk memverifikasi bahwa perubahan Anda telah diterapkan, selamat coding!Untuk mereka yang menggunakan XAMPP 1.7.3 dan Mac
which php
/usr/bin/php
, maka lanjutkan ke 3.sudo nano ~/.bash_profile
(atausudo vim ~/.bash_profile
jika Anda tahu cara menggunakannya)export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
cd ~
. .bash_profile
which php
. Jika Anda melakukannya dengan benar, itu harus sama dengan jalan di # 4.Alasan untuk kesalahan mcrypt adalah karena Mac Anda menggunakan php aslinya, Anda perlu mengubahnya ke yang dimiliki xampp.
PS Saya akan merekomendasikan menggunakan MAMP untuk Laravel 4 untuk pengguna Mac, masalah ini akan diselesaikan bersama dengan kesalahan info file php tanpa keringat, dan versi php xampp sudah ketinggalan zaman.
sumber
"export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH"
export PATH="/opt/lampp/bin:$PATH"
Untuk pengguna non MAMP atau XAMPP di OSX (dengan homebrew diinstal):
brew install homebrew/php/php56-mcrypt
Bersulang!
sumber
$ brew install homebrew/php/php55-mcrypt
, kalau tidak punyaError: No available formula with the name "php55-mcrypt"
Menggunakan Ubuntu, adil
melakukan trik untukku. Anda tidak perlu me-restart Apache karena Anda perlu menggunakan PHP hanya dari CLI.
sumber
Di Ubuntu (PHP-FPM, Nginx)
Setelah menginstal php5-mcrypt
Anda harus membuat symlink ke file ini di mod-tersedia:
memungkinkan:
mulai ulang php5-fpm:
Lebih detail
sumber
sudo aptitude -y install php5-mcrypt
, diikuti olehsudo php5enmod mcrypt
dansudo service php5-fpm restart
. (Saya melewatkan langkah menghubungkan lembut). Berhasil :)Membuat Laravel bekerja di Apache
Versi PHP: PHP 5.5.9
Versi Ubuntu: 14.04
Saya punya proyek laravel yang berfungsi di windows. ketika saya menyalinnya ke server ubuntu, saya mulai mendapatkan kesalahan mcrypt. ini setelah banyak jam coba-coba
membuat perintah pengrajin bekerja
(jika Anda mengalami kesalahan mcrypt saat menggunakan alat baris perintah artisan)
Saya melakukan banyak percobaan dan kesalahan sehingga setiap kali saya menjalankan perintah php5enmod sebelumnya, saya memiliki pesan kesalahan. tetapi pada instalasi baru tidak ada pesan kesalahan. setelah langkah ini saya mendapat perintah pengrajin yang bekerja
memperbaiki kesalahan browser
(jika Anda mengalami kesalahan mcrypt di browser saat mengakses halaman indeks laravel lokal)
tambahkan baris berikut di bawah bagian ekstensi yang disusun secara dinamis dari php ini
restart server apache, bersihkan cache laravel dan semuanya berfungsi
sumber
docker-php-ext-install mcrypt
. Diuji pada gambar:php:5.6.31-apache
. Tanpa itu,php -m
tidak munculmcrypt
.Untuk instalasi php-fpm di Ubuntu 14.04, berikut ini bekerja untuk saya:
sudo apt-get install php5-mcrypt
Ini akan membuat
mcrypt.ini
file di dalamnya/etc/php5/mods-available/
Kemudian
sudo php5enmod mcrypt
akan membuat symlink di:
/etc/php5/fpm/conf.d/
Cukup restart layanan php-fpm
sudo service php5-fpm restart
sumber
Untuk ubuntu coba langkah-langkah ini jika orang lain tidak berfungsi:
cd ~
sudo apt-get remove php5-mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart
Semoga itu bisa membantu. Terima kasih!
sumber
Atau, gunakan:
tidak yakin apakah ini akan berfungsi pada pemasangan PHP standar - saya menginstal
php 5.5.7
menggunakan paket dari:sumber
OS saya adalah
Yosemite
.Saya mengatasi masalah ini, dengan menemukan jalur konfigurasi:
Contoh output:
Langkah selanjutnya:
Perintah:
Kemudian Anda dapat memeriksa modul php Anda melalui:
sumber
Hanya untuk konsumen,
Mungkin Anda perlu menginstal remi repo
sumber
Ini menyelesaikannya untuk saya di lingkungan Linux Mint lokal saya /ubuntu/350942/cannot-get-mcrypt-for-php5
Saya perlu membuat symlink ke file /etc/php5/conf.d/mcrypt.ini saya di folder berikut ini /etc/php5/apache2/conf.d/mcrypt.ini dan /etc/php5/cli/conf.d /mcrypt.ini
sumber
Anda membutuhkan semua dalam satu lingkungan. Anda dapat menggunakan MAMP atau XAMPP atau alat lainnya. Setelah menginstal salah satu alat ini, Anda perlu mengedit (membuat) .bash_profile Anda (Asumsikan Anda menggunakan bash).
Atau bahkan sederhana dan lebih profesional, Anda dapat menggunakan Laravel Homestead.
Berikut ini tautan ke dokumentasi resmi: http://laravel.com/docs/5.0/homestead
Jeffrey juga memiliki tutorial gratis tentang hal itu: https://laracasts.com/series/laravel-5-fundamentals/episodes/2
Saya menyarankan Anda untuk menggunakan homestead karena Anda akan melakukan pra-instal semua alat berikut.
sumber
Memperluas pada @JetLaggy:
Setelah mencoba berulang-ulang untuk memodifikasi .bash_profile dengan direktori MAMP, saya mengubah izin file untuk direktori php MAMP dan bisa mendapatkan 'php mana' untuk menampilkan direktori yang tepat. Masalahnya adalah fungsi lain tidak berfungsi, seperti 'php -v'.
Jadi saya memperbarui MAMP. http://documentation.mamp.info/en/mamp/installation/updating-mamp
Ini melakukan trik untuk pengaturan khusus saya. Saya harus menyesuaikan PATH untuk mencerminkan versi PHP yang diperbarui, tetapi begitu saya melakukannya, semuanya bekerja!
sumber
Di OS X
Menggunakan MAMP
Masukkan perintah
which php
di terminal untuk melihat versi PHP yang Anda gunakan. Jika bukan versi PHP dari MAMP, variabel $ PATH yang digunakan oleh Bash perlu diperbarui.Pertama, Anda harus menggunakan perintah "cd / Applications / MAMP / bin / php" untuk memeriksa versi php mana dari MAMP dan mencatat versi tersebut (mis., Php5.6.7).
Setelah mengetahui versinya, Anda harus mengedit
~/.bash_profile
file (yaitu,.bash_profile
yang ada di direktori home Anda) dan menambahkan baris ekspor:Pastikan Anda mengganti php5.6.7 dengan versi PHP yang telah Anda pilih di MAMP.
Setelah file disimpan, pastikan Anda menutup Terminal dan membukanya lagi. Setelah selesai, Anda akan menggunakan PHP yang dikirimkan bersama MAMP.
Salah satu cara untuk dengan mudah menemukan garis apa yang harus Anda masukkan ke dalam
.bash_profile
adalah menjalankan perintah berikut di dalam terminal Anda:Menyalin dan menempelkan ketiga baris ke terminal Anda akan dengan benar menghasilkan versi PHP yang telah dipilih di dalam panel kontrol MAMP.
Menggunakan Homebrew / MacPorts
Pastikan Anda
path
mengandung/usr/local/bin/
(Homebrew) atau/opt/local/bin
(MacPorts) jika Anda menggunakan PHP yang dilengkapi dengan salah satu dari dua manajer paket ini.Memeriksa jalur PHP dengan MacPorts
Anda dapat menemukan lokasi tepat PHP menggunakan MacPorts dengan perintah berikut:
Perhatikan bahwa Anda harus mengganti
php70
dengan versi PHP yang telah Anda instal.Periksa jalur PHP dengan Homebrew-php
Homebrew-php ( https://github.com/Homebrew/homebrew-php ) adalah keran yang memiliki berbagai versi PHP.
Anda dapat menemukan lokasi persis PHP menggunakan Homebrew dengan perintah berikut:
Perhatikan bahwa Anda harus mengganti
php56
dengan versi PHP yang telah Anda instal.sumber
di Ubuntu 14.04
Ubuntu 16.04
Ubuntu 18.04
atau
sumber
Jika Anda menggunakan Z Shell, lakukan saja hal berikut:
nano ~/.zshrc
export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH
source ~/.zshrc
which php
- Anda harus mendapatkan jalur MAMP 5.6.105.6.10 adalah versi PHP yang Anda atur di MAMP Anda.
sumber
OSX dengan minuman
Saya menjalankan PHP 7.0.x, jadi ubah "php70" ke versi Anda, jika Anda menggunakan versi yang berbeda.
Seperti yang dinyatakan dalam jawaban lain, Anda dapat melihat versi php dengan
$ php -v
.sumber
Bagi mereka yang masih datang ke sini hari ini:
Laravel tidak perlu
mcrypt
ekstensi lagi .mcrypt
sudah usang, pembaruan terakhir ke libmcrypt adalah pada tahun 2007. Laravel 4.2 juga usang dan tidak memiliki dukungan lagi. Solusi terbaik (= aman) adalah memperbarui ke Laravel> 5.1 (tidak ada LTS sebelum Laravel 5.2).Mcrypt telah dihapus dari Laravel pada Juni 2015: https://github.com/laravel/framework/pull/9041
sumber
sumber
mcrypt
, dapatkah Anda memperluas alasan Anda yakin ini akan memperbaiki masalah OP?di ubuntu 14.04 berdasarkan versi php Anda: 5.6,7.0,7.1,7.2,7.3
sumber