Instalasi lokal Magento 2 doest tidak menghasilkan file di folder pub / statis

15

Saya baru saja menginstal Edisi Komunitas Magento 2 dengan data sampel (diunduh dari situs web mereka dan tidak diinstal dengan komposer) secara lokal melalui MAMP. Proses instalasi berhasil, tetapi semua file di pub / folder statis tidak ada kecuali .htaccess. Itu berarti semua css, js dll. Mengembalikan 404 untuk frontend dan backend.

Saya telah menghabiskan beberapa jam mencoba untuk memperbaikinya tanpa keberuntungan. Inilah yang saya lakukan sejauh ini:

  • Berubah Options Indexes FollowSymLinks AllowOverridedari 'Tidak Ada' menjadi 'Semua' di /MAMP/conf/apache/httpd.conf dan restart MAMP
  • Pastikan LoadModule rewrite_module modules/mod_rewrite.sotidak dihapus di httpd.conf
  • Siapkan domain pengembangan (magento.dev) di MAMP
  • Mencoba menjalankan php bin/magento setup:static-content:deploydi root magento.dev menggunakan Terminal. Namun ini mengembalikan:

Kesalahan fatal: Kelas 'Lokal' tidak ditemukan di /Applications/MAMP/htdocs/magento.dev/vendor/magento/framework/Locale/Bundle/DataBundle.php on line 64

  • Membatalkan komentar dan mengubah RewriteBase ke RewriteBase /dalam file .htaccess di direktori root magento.dev.
  • Atur Magento dalam mode pengembangan
  • Membersihkan cache secara manual dan berjalan php bin/magento setup:static-content:deploykembali

Sebagian besar panduan dan posting forum meminta saya untuk menjalankan: php bin/magento setup:static-content:deploytetapi saya tidak yakin, jika saya melakukannya dengan benar.

OS: OSX 10.11.2

Versi MAMP: 3.5

Versi PHP: 7.0

Versi Apache: 2.4.16

Versi MySQL: 5.6.25

Bantuan apa pun akan dihargai.

Skovsgaard
sumber
Saya menggunakan 2.2.2 diinstal pada server CentOS. Tidak ada di halaman ini yang berfungsi. Untuk memiliki gaya apa pun saya harus menjalankan php bin/magento setup:static-content:deploy -f dan menunggu 80 detik.
Chris K

Jawaban:

15

SOLUSI # 1 (JIKA ANDA INGIN MENGEDIT XML FILE)

Saya ingin Anda mengunduh Magento 2 zip dari magentocommerce.com/download, membuat db baru di phpmyadmin , ekstrak zip di folder htdocs . Instal Magento 2 tetapi jangan gunakan localhost gunakan 127.0.0.1 di URL toko dan URL admin. Setelah instalasi berhasil, JANGAN menjalankan magento.

Sekarang kita akan menghapus / menghapus cache dan sesi Magento 2. Buka jalur berikut dan hapus semuanya:

ROOT > var > cache > *DELETE ALL*
ROOT > var > page_cache > *DELETE ALL*
ROOT > var > session > *DELETE ALL*

Ketika Magento 2 tidak dalam mode produksi, ia akan mencoba membuat symlink untuk beberapa sumber daya statis di server lokal. Kita harus mengubah perilaku Magento 2 dengan pergi mengedit ROOT > app > etc > di.xmlfile. Buka di.xmldi editor kode favorit Anda, cari virtualType name="developerMaterialization"bagian. Pada bagian di bawah ini, Anda akan menemukan item <item name="view_preprocessed" xsi:type="object">yang perlu diubah. Anda dapat memodifikasinya dengan mengubah konten berikut:

Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink

Untuk:

Magento\Framework\App\View\Asset\MaterializationStrategy\Copy

Sekarang langkah terakhir, hapus juga file lama yang dihasilkan ROOT > pub > static > DELETE ALL EXCEPT .HTACCESS

Saya pribadi mencobanya di localhost saya menggunakan MAMP, EasyPHP DevServer, Xampp dan Wampp dan berhasil diinstal dan menggunakan Magento 2. Untuk selanjutnya Anda dapat memeriksa tautan ini: Magento 2 CSS dan JavaScript tidak memuat dari folder yang benar

SOLUSI # 2

Pasang Komposer. Sekarang saya ingin Anda mengunduh Magento 2 zip dari magentocommerce.com/download, membuat db baru di phpmyadmin , ekstrak zip di folder htdocs . Instal Magento 2 tetapi jangan gunakan localhost gunakan 127.0.0.1 di URL toko dan URL admin. Setelah instalasi berhasil, JANGAN menjalankan magento.

Sekarang kita akan memverifikasi pemasangan Komposer, Menyebarkan konten statis, menghapus / membersihkan cache Magento dan mengindeks ulang blok Magento 2. Untuk melakukan semua tindakan di atas, tekan WINDOWS KEY + R untuk membuka dialog RUN dan ketik "cmd" untuk membuka Command Prompt.

Ketik " cd PATH_TO_YOUR_MAGENTO2_FILES " untuk masuk ke direktori ROOT Magento 2.

Sekarang untuk memverifikasi pemasangan Komposer di direktori di atas, ketik " komposer instal ".

Jika Anda mendapatkan kesalahan dalam langkah ini, silakan periksa instalasi Komposer Anda

Pada langkah ini, kami menyiapkan konten statis untuk digunakan di toko Magento kami. Untuk melakukan ini, ketik " setup php bin / magento: static-content: deploy ".

Jika Anda mendapatkan kesalahan, periksa Variabel Lingkungan PHP.EXE dan PHP.INI Anda

Kosongkan / Bilas cache Magento dengan mengetik “ php bin / cache cache: flush ” di CMD.

Dan akhirnya, untuk Reindex Magento Static Blocks ketik " php bin / magento indexer: reindex ".

Anda selesai dengan instalasi Magento 2 yang berhasil.

Fayyaz Khattak
sumber
Jawaban telah diedit.
Fayyaz Khattak
Greate! Saya mencoba solusi 1 dan itu bekerja untuk saya .. Terima kasih Khatak sb
Muhammad Azeem
Selamat datang di @MuhammadAzeem
Fayyaz Khattak
@RajaKhoury Sama-sama!
Fayyaz Khattak
Solusi 1 bekerja untuk saya! Terima kasih banyak !!
Daniel Silva
5

Coba jalankan perintah di bawah ini

php bin/magento setup:static-content:deploy

Dan jika ada kesalahan saat menjalankan perintah ini, seperti file yang hilang seperti yang Anda katakan sebelumnya, maka bandingkan struktur file proyek Anda dengan magento2struktur file baru. Jika ada file yang hilang dalam proyek Anda maka salin file yang sesuai ke proyek Anda.

Dan jika Anda memiliki kesalahan lain, maka posting kesalahan dalam pertanyaan Anda sehingga seseorang dapat menjawab pertanyaan Anda.

Keyur Shah
sumber
Terima kasih atas tanggapan yang cepat. Saya akan melakukannya. Di mana tepatnya dan bagaimana saya menjalankan perintah ini?
Skovsgaard
@ Skovsgaard Anda dapat menjalankan perintah ini dari terminal Anda tetapi pastikan bahwa Anda berada di direktori magento2 dari terminal
Keyur Shah
Sepertinya tidak ada file yang hilang. Magento yang terinstal jelas mengandung lebih banyak file yang terkait dengan proses instalasi. Saya mendapatkan kesalahan ini: Fatal error: Class 'Locale' not found in /Applications/MAMP/htdocs/magento.dev/vendor/magento/framework/Locale/Bundle/DataBundle.php on line 64setelah berjalan php bin/magento setup:static-content:deploydi direktori root.
Skovsgaard
Saya tidak terlalu membantu. Maaf.
Skovsgaard
2

Sepertinya intlekstensi tidak dimuat dalam versi konsol Anda php. Harap verifikasi bahwa Anda menggunakan versi / pengaturan yang sama untuk versi php apache dan cli.

MacOsX memiliki versi php yang sudah diinstal dan beberapa paket yang menginstal php tidak mengubah symlink untuk sesi terminal. Sebagai hasilnya, Anda dapat menginstal versi php yang berbeda secara bersamaan.

PS: Saya mengusulkan untuk menggunakan gelandangan di Mac OS. ini bekerja cukup baik jika menggunakan nfs untuk berbagi file

KAndy
sumber
Aha! Php (cli) yang diinstal sebelumnya hanya 5.5.30. Apache yang sudah diinstal adalah 2.4.16 (Saya tidak tahu cara memeriksa versi apache MAMP jika MAMP juga menginstal Apache secara terpisah). Jadi saya harus memperbarui versi pra-instal ke 7 dan juga menginstal ekstensi intl (cli atau mamp?)? Gelandangan tampaknya terlalu maju untuk pemula seperti saya.
Skovsgaard
Saya tidak bisa menjawab pertanyaan spesifik Mac tetapi setidaknya ada dua cara untuk memeriksa versi PHP Anda: php -v(yang menunjukkan versi apa perintah PHP dijalankan) dan menggunakan phpinfo.php , yang menunjukkan versi PHP apa yang dijalankan oleh server web.
Steve Johnson
Oke, jadi MAMP menjalankan PHP 7 dan Apache 2.2.29. Mesin lokal saya menjalankan PHP 5.5.30 dan Apache 2.4.16. Jadi langkah selanjutnya adalah memperbarui PHP mesin lokal ke 7?
Skovsgaard
Silakan coba gunakan path lengkap ke php7 binary
KAndy
2

Jika semuanya gagal, pangkas direktori ini:

rm -rf pub/static/*    # DO NOT DELETE .htaccess
rm -rf var/view_preprocessed/*
php bin/magento setup:static-content:deploy

Ini akan berfungsi jika Anda memiliki symlink yang rusak di dir itu.

snez
sumber
1
.htaccess tidak boleh dihapus. Saya juga melakukan kesalahan ini dan menghabiskan waktu berjam
Tahir Yasin
1

hapus page_cache, di, view_process, cache

kemudian berikan izin yang layak ke folder dan file.

kemudian jalankan php bin/magento setup:static-content:deploydari folder root Anda.

periksa pub / statis.

Saya harap ini akan membantu Anda.

tolak vachhani
sumber
Di mana dan bagaimana saya menjalankan clear page_cache, di ,view_process, cache? Ini adalah instalasi lokal, sehingga sebagai admin super komputer saya, saya memiliki semua izin baca / tulis izin. Apakah ada izin lain yang tidak saya ketahui?
Skovsgaard
jika Anda menggunakan lokal daripada memberikan izin penuh ke root-folder
denish vachhani
semua folder ada di var / hapus semua folder dan beri izin penuh ke folder.
tolak vachhani
1

Sudahkah Anda menginstal composerdan menjalankan composer initdirektori magento2? Jika tidak, coba lalu jalankan perintahphp bin/magento setup:static-content:deploy

Quan Le
sumber
Komposer diinstal pada mesin saya, ya, tapi saya tidak menggunakannya untuk menginstal Magento 2. Saya cukup mengunduh .zip dari situs web mereka, membongkar dan menginstalnya. Jika saya menjalankan composer initkomposer meminta saya untuk membuat konfigurasi composer.json, jadi saya kira itu tidak akan membantu.
Skovsgaard