Bir Laravel projesi geliştirdiyseniz ve bir canlı demo linkine ihtiyacınız varsa — portföy, müşteri sunumu veya sadece arkadaşlarınızla paylaşmak için — bir VPS açmak gereksiz bir karmaşa olabilir.
<p><strong>InfinityFree</strong> size şunları sunar:</p>
<ul>
<li>🌐 Ücretsiz bir alt alan adı (<code>yourapp.great-site.net</code> veya <code>.epizy.com</code> )</li>
<li>🗄️ Ücretsiz bir MySQL veritabanı</li>
<li>☁️ PHP hosting</li>
</ul>
<p>Hepsi <strong>$0</strong> için.</p>
<p>Ancak burada dikkat etmeniz gereken bir nokta var: Bu standart bir paylaşımlı host değil. Çoğu Laravel dağıtımını bozacak bazı kısıtlamalar mevcut. Bu makale, bunların neler olduğuna ve her birini nasıl düzeltebileceğinize dair ayrıntılı bilgiler sunmaktadır — gerçek bir Laravel sosyal medya uygulaması için yaptığım bir dağıtım üzerinden.</p>
<hr/>
<h2>
<a name="know-the-limitations-first" href="#know-the-limitations-first"></a>
⚠️ Kısıtlamaları Öncelikle Bilin
</h2>
<p>Başlamadan önce, çalıştığınız ortamı anlamalısınız:</p>
<div class="table-wrapper-paragraph">
<table>
<thead>
<tr>
<th>Özellik</th>
<th>Mevcut Mu?</th>
</tr>
</thead>
<tbody>
<tr>
<td>Ücretsiz alt alan adı</td>
<td>✅ Evet</td>
</tr>
<tr>
<td>Ücretsiz MySQL veritabanı</td>
<td>✅ Evet</td>
</tr>
<tr>
<td>PHP desteği</td>
<td>✅ Evet</td>
</tr>
<tr>
<td>Dosya Yöneticisi (tarayıcı tabanlı)</td>
<td>✅ Evet</td>
</tr>
<tr>
<td>SSH erişimi</td>
<td>❌ Hayır</td>
</tr>
<tr>
<td><code>php artisan</code> komutları</td>
<td>❌ Hayır</td>
</tr>
<tr>
<td>Symlinkler (<code>storage:link</code>)</td>
<td>❌ Hayır</td>
</tr>
<tr>
<td><code>open_basedir</code> kısıtlaması</td>
<td>❌ PHP yalnızca <code>htdocs/</code> içindekileri okuyabilir</td>
</tr>
<tr>
<td>Sunucuda Composer</td>
<td>❌ Hayır</td>
</tr>
</tbody>
</table>
</div>
<blockquote>
<p>🔴 <strong><code>open_basedir</code> kısıtlaması en büyük sorun.</strong> PHP, <code>htdocs/</code> dışındaki herhangi bir dosyayı okumayı reddedecek — bu, Laravel'in varsayılan klasör yapısını tamamen bozar.</p>
</blockquote>
<hr/>
<h2>
<a name="step-1-prepare-your-project-locally" href="#step-1-prepare-your-project-locally"></a>
Adım 1 — Projenizi Yerel Olarak Hazırlayın
</h2>
<h3>
<a name="set-your-env-for-production" href="#set-your-env-for-production"></a>
.env Dosyanızı Üretim İçin Ayarlayın
</h3>
<div class="highlight js-code-highlight">
<pre class="highlight plaintext"><code>APP_NAME=YourAppAPP_ENV=production
APP_KEY=base64:YOUR_32_CHAR_KEY_HERE==
APP_DEBUG=true # geçici olarak hata görmek için
APP_URL=http://yourapp.great-site.net
DB_HOST=sql123.epizy.com # cPanel’den erişiminiz olan
DB_DATABASE=epiz_xxxxx_dbname
DB_USERNAME=epiz_xxxxx_user
DB_PASSWORD=yourpassword
<blockquote>
<p>💡 <code>php artisan key:generate</code> komutunu InfinityFree'de çalıştıramazsınız. APP_KEY'inizi yerel olarak oluşturun ve buraya yapıştırın. <code>base64:</code> ile başlamalıdır.</p>
</blockquote>
<h3>
<a name="package-your-files-into-two-zips" href="#package-your-files-into-two-zips"></a>
Dosyalarınızı İki ZIP Olarak Paketleyin
</h3>
<p><code>vendor/</code> klasörü genellikle 30–50MB arasında olup, Dosya Yöneticisi yükleme limitini aşar. Bunu bölün:<br/></p>
<div class="highlight js-code-highlight">
<pre class="highlight shell"><code><span class="c"># ZIP 1 — vendor/ dışındaki her şey</span>zip -r project.zip . –exclude=“vendor/“ –exclude=“.git/“
# ZIP 2 — sadece vendor/ klasörü
zip -r vendor.zip vendor/


