<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Maruti Kr., Author at Artificial Intelligence</title>
	<atom:link href="https://www.aiuniverse.xyz/author/maruti/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.aiuniverse.xyz/author/maruti/</link>
	<description>Exploring the universe of Intelligence</description>
	<lastBuildDate>Fri, 27 Feb 2026 04:32:06 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>
	<item>
		<title>Complete Guide to Setting Up React Native Android Development Environment on Windows (Step-by-Step)</title>
		<link>https://www.aiuniverse.xyz/complete-guide-to-setting-up-react-native-android-development-environment-on-windows-step-by-step/</link>
					<comments>https://www.aiuniverse.xyz/complete-guide-to-setting-up-react-native-android-development-environment-on-windows-step-by-step/#respond</comments>
		
		<dc:creator><![CDATA[Maruti Kr.]]></dc:creator>
		<pubDate>Fri, 27 Feb 2026 04:32:05 +0000</pubDate>
				<category><![CDATA[Android Studio]]></category>
		<category><![CDATA[add platform-tools to PATH]]></category>
		<category><![CDATA[configure ANDROID_HOME Windows]]></category>
		<category><![CDATA[create Android Virtual Device API 35]]></category>
		<category><![CDATA[fix React Native CMake error]]></category>
		<category><![CDATA[fix std::format React Native error]]></category>
		<category><![CDATA[install Android Build Tools 36.0.0]]></category>
		<category><![CDATA[install Android SDK Platform 35]]></category>
		<category><![CDATA[install Node LTS for React Native]]></category>
		<category><![CDATA[install React Native on Windows]]></category>
		<category><![CDATA[React Native Android setup Windows]]></category>
		<category><![CDATA[React Native Android Studio configuration]]></category>
		<category><![CDATA[React Native development environment guide]]></category>
		<category><![CDATA[React Native emulator setup]]></category>
		<category><![CDATA[React Native environment setup]]></category>
		<category><![CDATA[React Native JDK 17 setup]]></category>
		<category><![CDATA[React Native NDK 27.1 setup]]></category>
		<guid isPermaLink="false">https://www.aiuniverse.xyz/?p=22344</guid>

					<description><![CDATA[<p>Setting up a React Native development environment for Android can feel overwhelming at first — especially if you&#8217;re new to Android Studio, SDK tools, and environment variables. In this guide, I’ll walk you through the exact process I followed to successfully set up my environment on Windows. By the end, you’ll be able to: This <a class="read-more-link" href="https://www.aiuniverse.xyz/complete-guide-to-setting-up-react-native-android-development-environment-on-windows-step-by-step/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/complete-guide-to-setting-up-react-native-android-development-environment-on-windows-step-by-step/">Complete Guide to Setting Up React Native Android Development Environment on Windows (Step-by-Step)</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Setting up a React Native development environment for Android can feel overwhelming at first — especially if you&#8217;re new to Android Studio, SDK tools, and environment variables.</p>



<p>In this guide, I’ll walk you through the exact process I followed to successfully set up my environment on Windows. By the end, you’ll be able to:</p>



<ul class="wp-block-list">
<li>Run your React Native project on an Android emulator</li>



<li>Build your app locally</li>



<li>Avoid common JDK, SDK, and NDK issues</li>



<li>Launch your app smoothly using <code>npx react-native run-android</code></li>
</ul>



<p>This setup is ideal for long-term development and future-proofing your workflow.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Why Proper Environment Setup Is Important</h1>



<p>React Native development for Android requires multiple tools working together:</p>



<ul class="wp-block-list">
<li>Node.js</li>



<li>React Native CLI</li>



<li>Java Development Kit (JDK)</li>



<li>Android Studio</li>



<li>Android SDK</li>



<li>Android Emulator</li>
</ul>



<p>If even one component is misconfigured, you may face:</p>



<ul class="wp-block-list">
<li>CMake build errors</li>



<li>Device detection issues</li>



<li>Gradle failures</li>



<li>Emulator launch problems</li>
</ul>



<p>So let’s set everything up properly from scratch.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Step 1: Install Node.js (LTS Recommended)</h1>



<p>React Native depends on Node.js.</p>



<h3 class="wp-block-heading">Recommended Method (Windows)</h3>



<p>Use <strong>Chocolatey</strong> package manager.</p>



<p>Open <strong>Command Prompt as Administrator</strong> and run:</p>



<pre class="wp-block-code"><code>choco install -y nodejs-lts microsoft-openjdk17</code></pre>



<h3 class="wp-block-heading">Important Notes</h3>



<ul class="wp-block-list">
<li>Use an LTS version of Node.</li>



<li>Node 22.11.0 or newer is recommended.</li>



<li>If you want multiple Node versions, use <code>nvm-windows</code>.</li>
</ul>



<p>Verify installation:</p>



<pre class="wp-block-code"><code>node -v
npm -v</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Step 2: Install Java Development Kit (JDK 17)</h1>



<p>React Native works most reliably with <strong>JDK 17</strong>.</p>



<p>Even if you have a newer JDK installed, I strongly recommend using JDK 17 to avoid Gradle compatibility issues.</p>



<p>Verify:</p>



<pre class="wp-block-code"><code>java -version</code></pre>



<p>It should show something like:</p>



<pre class="wp-block-code"><code>openjdk version "17.x.x"</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Step 3: Install Android Studio</h1>



<p>Download and install Android Studio.</p>



<p>During installation, make sure these are selected:</p>



<ul class="wp-block-list">
<li>Android SDK</li>



<li>Android SDK Platform</li>



<li>Android Virtual Device</li>



<li>Performance (Intel HAXM if not using Hyper-V)</li>
</ul>



<p>After installation completes, proceed to SDK configuration.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Step 4: Install Required Android SDK Components</h1>



<p>Open Android Studio → More Actions → SDK Manager.</p>



<h3 class="wp-block-heading">In SDK Platforms Tab</h3>



<ol class="wp-block-list">
<li>Enable “Show Package Details”.</li>



<li>Expand Android 15 (VanillaIceCream).</li>



<li>Select:
<ul class="wp-block-list">
<li>Android SDK Platform 35</li>



<li>Intel x86 Atom_64 System Image or Google APIs System Image</li>
</ul>
</li>
</ol>



<h3 class="wp-block-heading">In SDK Tools Tab</h3>



<ol class="wp-block-list">
<li>Enable “Show Package Details”.</li>



<li>Select:
<ul class="wp-block-list">
<li>Android SDK Build-Tools 36.0.0</li>



<li>Android SDK Command-line Tools (latest)</li>



<li>NDK (Side by side)</li>



<li>CMake</li>
</ul>
</li>
</ol>



<p>Click Apply and install.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Step 5: Set ANDROID_HOME Environment Variable</h1>



<p>React Native requires Android environment variables.</p>



<h3 class="wp-block-heading">How to Set It (Windows)</h3>



<ol class="wp-block-list">
<li>Open Control Panel</li>



<li>Go to User Accounts → Environment Variables</li>



<li>Click New</li>
</ol>



<p>Create:</p>



<pre class="wp-block-code"><code>Variable Name: ANDROID_HOME
Variable Value: %LOCALAPPDATA%\Android\Sdk
</code></pre>



<p>Open a new Command Prompt and verify:</p>



<pre class="wp-block-code"><code>Get-ChildItem -Path Env:\</code></pre>



<p>Make sure ANDROID_HOME appears.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Step 6: Add platform-tools to PATH</h1>



<p>Still in Environment Variables:</p>



<ol class="wp-block-list">
<li>Edit the Path variable</li>



<li>Add:</li>
</ol>



<pre class="wp-block-code"><code>%LOCALAPPDATA%\Android\Sdk\platform-tools</code></pre>



<p>Verify:</p>



<pre class="wp-block-code"><code>adb --version
adb devices</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Step 7: Create and Launch an Android Virtual Device (AVD)</h1>



<p>Open Android Studio → AVD Manager.</p>



<ol class="wp-block-list">
<li>Click Create Virtual Device</li>



<li>Select a phone model</li>



<li>Choose API Level 35 (VanillaIceCream)</li>



<li>Finish setup</li>
</ol>



<p>Click the green ▶ button to launch the emulator.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Step 8: Verify Device Connection</h1>



<p>Once emulator is running:</p>



<pre class="wp-block-code"><code>adb devices
</code></pre>



<p>You should see:</p>



<pre class="wp-block-code"><code>emulator-5554 device
</code></pre>



<p>If not, restart ADB:</p>



<pre class="wp-block-code"><code>adb kill-server
adb start-server
adb devices
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Step 9: Create and Run React Native Project</h1>



<p>Create project:</p>



<pre class="wp-block-code"><code>npx react-native init MyApp</code></pre>



<p>Navigate into project:</p>



<pre class="wp-block-code"><code>cd MyApp</code></pre>



<p>Run Android app:</p>



<pre class="wp-block-code"><code>npx react-native run-android</code></pre>



<p>If multiple devices are connected:</p>



<pre class="wp-block-code"><code>npx react-native run-android --device emulator-5554</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Important Compatibility Notes (Very Important)</h1>



<p>During my setup, I faced the following real issues:</p>



<h3 class="wp-block-heading">1. Gradle Using Wrong Java Version</h3>



<p>Fix: Force JDK 17 in <code>android/gradle.properties</code></p>



<h3 class="wp-block-heading">2. CMake Error: std::format Not Found</h3>



<p>Cause: Using NDK 26<br>Fix: Install and use NDK 27.1.12297006</p>



<p>Add inside <code>android {}</code> in build.gradle:</p>



<pre class="wp-block-code"><code>ndkVersion "27.1.12297006"
</code></pre>



<p>Then clean:</p>



<pre class="wp-block-code"><code>cd android
gradlew clean</code></pre>



<p>This resolved C++ build errors completely.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Final Working Configuration Summary</h1>



<p>For a stable React Native Android setup on Windows:</p>



<ul class="wp-block-list">
<li>Node: LTS (22+ recommended)</li>



<li>Java: JDK 17</li>



<li>Android SDK Platform: 35</li>



<li>Build Tools: 36.0.0</li>



<li>NDK: 27.1.12297006</li>



<li>Emulator: API 35</li>



<li>Correct ANDROID_HOME + PATH</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Conclusion</h1>



<p>Setting up React Native Android development correctly takes time — but once done properly, everything runs smoothly.</p>



<p>By following this guide:</p>



<ul class="wp-block-list">
<li>Emulator launches correctly</li>



<li>ADB detects devices</li>



<li>Gradle builds without errors</li>



<li>Native C++ compilation works</li>



<li>App runs smoothly using <code>run-android</code></li>
</ul>



<p>If you’re setting this up for the first time, expect about an hour. After that, development becomes fast and seamless.</p>



<p>This guide will help you avoid common mistakes and future build headaches.</p>
<p>The post <a href="https://www.aiuniverse.xyz/complete-guide-to-setting-up-react-native-android-development-environment-on-windows-step-by-step/">Complete Guide to Setting Up React Native Android Development Environment on Windows (Step-by-Step)</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/complete-guide-to-setting-up-react-native-android-development-environment-on-windows-step-by-step/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Fix React Native Android Build Errors (JDK 25, NDK 26, CMake &#038; Emulator Issues)</title>
		<link>https://www.aiuniverse.xyz/how-to-fix-react-native-android-build-errors-jdk-25-ndk-26-cmake-emulator-issues/</link>
					<comments>https://www.aiuniverse.xyz/how-to-fix-react-native-android-build-errors-jdk-25-ndk-26-cmake-emulator-issues/#respond</comments>
		
		<dc:creator><![CDATA[Maruti Kr.]]></dc:creator>
		<pubDate>Fri, 27 Feb 2026 04:05:17 +0000</pubDate>
				<category><![CDATA[Android Studio]]></category>
		<category><![CDATA[adb devices not showing emulator]]></category>
		<category><![CDATA[Android emulator not detected React Native]]></category>
		<category><![CDATA[fix buildCMakeDebug arm64-v8a failed]]></category>
		<category><![CDATA[fix CMake ninja build failed]]></category>
		<category><![CDATA[fix configureCMakeDebug error]]></category>
		<category><![CDATA[force ndkVersion in build.gradle]]></category>
		<category><![CDATA[Gradle daemon JVM mismatch fix]]></category>
		<category><![CDATA[Gradle Launcher JVM 25 issue]]></category>
		<category><![CDATA[Gradle using wrong Java version]]></category>
		<category><![CDATA[React Native 0.84 CMake error]]></category>
		<category><![CDATA[React Native Android build error]]></category>
		<category><![CDATA[React Native JDK 17 fix]]></category>
		<category><![CDATA[React Native NDK 26 error]]></category>
		<category><![CDATA[React Native NDK 27.1 setup]]></category>
		<category><![CDATA[React Native no Android device connected]]></category>
		<category><![CDATA[React Native safe-area-context C++ error]]></category>
		<category><![CDATA[std::format no member named format]]></category>
		<guid isPermaLink="false">https://www.aiuniverse.xyz/?p=22342</guid>

					<description><![CDATA[<p>If you are working with React Native (especially 0.84+) and suddenly your Android app: Then this complete guide will help you fix everything step by step. This guide is based on a real-world troubleshooting session on Windows with React Native 0.84. Problem 1: Gradle Using Wrong Java Version (JDK 25 Instead of JDK 17) Symptoms <a class="read-more-link" href="https://www.aiuniverse.xyz/how-to-fix-react-native-android-build-errors-jdk-25-ndk-26-cmake-emulator-issues/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/how-to-fix-react-native-android-build-errors-jdk-25-ndk-26-cmake-emulator-issues/">How to Fix React Native Android Build Errors (JDK 25, NDK 26, CMake &amp; Emulator Issues)</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>If you are working with React Native (especially 0.84+) and suddenly your Android app:</p>



<ul class="wp-block-list">
<li>Opens the emulator but does not launch the app</li>



<li>Fails with <code>configureCMakeDebug</code> error</li>



<li>Shows <code>std::format</code> not found error</li>



<li>Or says “No Android device connected”</li>
</ul>



<p>Then this complete guide will help you fix everything step by step.</p>



<p>This guide is based on a real-world troubleshooting session on Windows with React Native 0.84.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Problem 1: Gradle Using Wrong Java Version (JDK 25 Instead of JDK 17)</h1>



<h3 class="wp-block-heading">Symptoms</h3>



<p>Running:</p>



<pre class="wp-block-code"><code>gradlew.bat -version</code></pre>



<p>Showed:</p>



<pre class="wp-block-code"><code>Launcher JVM: 25.0.2
Daemon JVM: jdk-25</code></pre>



<p>Even though <code>java -version</code> showed JDK 17.</p>



<p>This caused:</p>



<pre class="wp-block-code"><code>Execution failed for task ':app:configureCMakeDebug&#91;arm64-v8a]'
WARNING: A restricted method in java.lang.System has been called</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Why This Happens</h2>



<p>Gradle was using JDK 25 internally, but React Native Android builds are stable with <strong>JDK 17</strong>.</p>



<p>Gradle launcher and daemon must both use Java 17.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Solution: Force Gradle to Use JDK 17</h2>



<h3 class="wp-block-heading">Step 1: Locate Your JDK 17 Folder</h3>



<p>Example:</p>



<pre class="wp-block-code"><code>C:\Program Files\Microsoft\jdk-17.0.18.8-hotspot</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Step 2: Add This to android/gradle.properties</h3>



<p>Open:</p>



<pre class="wp-block-code"><code>android/gradle.properties</code></pre>



<p>Add:</p>



<pre class="wp-block-code"><code>org.gradle.java.home=C:\\Program Files\\Microsoft\\jdk-17.0.18.8-hotspot</code></pre>



<p>Use double backslashes.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Step 3: Stop Gradle and Clean</h3>



<pre class="wp-block-code"><code>cd android
gradlew.bat --stop
rmdir /s /q .gradle
rmdir /s /q .cxx
rmdir /s /q app\.cxx
gradlew.bat clean</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Step 4: Verify</h3>



<pre class="wp-block-code"><code>gradlew.bat -version</code></pre>



<p>Now both should show:</p>



<pre class="wp-block-code"><code>Launcher JVM: 17.x
Daemon JVM: 17.x</code></pre>



<p>If not, temporarily force in CMD:</p>



<pre class="wp-block-code"><code>set "JAVA_HOME=C:\Program Files\Microsoft\jdk-17.0.18.8-hotspot"
set "PATH=%JAVA_HOME%\bin;%PATH%"</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Problem 2: CMake Error – std::format Not Found (NDK Issue)</h1>



<p>After fixing Java, build failed with:</p>



<pre class="wp-block-code"><code>error: no member named 'format' in namespace 'std'
return std::format("{}%", dimension.value);</code></pre>



<p>This came from:</p>



<pre class="wp-block-code"><code>react-native-safe-area-context</code></pre>



<p>And NDK path showed:</p>



<pre class="wp-block-code"><code>ndk\26.1.10909125</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Why This Happens</h2>



<p>React Native 0.84 uses C++20 features like <code>std::format</code>.</p>



<p>NDK 26 does not properly support this setup.</p>



<p>You must use <strong>NDK 27.1+</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Solution: Install and Force NDK 27.1</h2>



<h3 class="wp-block-heading">Step 1: Install NDK 27.1</h3>



<p>In Android Studio:</p>



<ul class="wp-block-list">
<li>Settings</li>



<li>Android SDK</li>



<li>SDK Tools</li>



<li>Enable “NDK (Side by side)”</li>



<li>Select <strong>27.1.12297006</strong></li>



<li>Apply</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Step 2: Force Project to Use NDK 27.1</h3>



<p>Open:</p>



<pre class="wp-block-code"><code>android/build.gradle</code></pre>



<p>Inside <code>android {}</code> add:</p>



<pre class="wp-block-code"><code>ndkVersion "27.1.12297006"</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Step 3: Clean Native Build</h3>



<pre class="wp-block-code"><code>cd android
gradlew.bat --stop
rmdir /s /q .cxx
rmdir /s /q app\.cxx
rmdir /s /q .gradle
gradlew.bat clean</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Step 4: Run Again</h3>



<pre class="wp-block-code"><code>cd ..
npx react-native run-android</code></pre>



<p>Now build succeeds.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Problem 3: Emulator Opens but CLI Says “No Android Device Connected”</h1>



<p>Even though:</p>



<pre class="wp-block-code"><code>adb devices</code></pre>



<p>Showed:</p>



<pre class="wp-block-code"><code>emulator-5554 device</code></pre>



<p>Sometimes it showed blank.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Why This Happens</h2>



<ul class="wp-block-list">
<li>ADB server mismatch</li>



<li>Multiple adb.exe in PATH</li>



<li>Emulator not cold booted</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Fix Emulator Detection</h2>



<h3 class="wp-block-heading">Step 1: Restart Emulator</h3>



<p>Cold boot from Android Studio Device Manager.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Step 2: Reset ADB</h3>



<pre class="wp-block-code"><code>adb kill-server
taskkill /F /IM adb.exe
adb start-server
adb devices</code></pre>



<p>Now emulator should show:</p>



<pre class="wp-block-code"><code>emulator-5554 device</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Step 3: Run with Correct Flag</h3>



<p>New React Native versions use:</p>



<pre class="wp-block-code"><code>npx react-native run-android --device emulator-5554</code></pre>



<p>(Not <code>--deviceId</code>)</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Step 4: Ensure Correct ADB in PATH</h3>



<pre class="wp-block-code"><code>where adb</code></pre>



<p>Make sure this path is first:</p>



<pre class="wp-block-code"><code>C:\Users\YourUser\AppData\Local\Android\Sdk\platform-tools\adb.exe</code></pre>



<p>If not:</p>



<pre class="wp-block-code"><code>set "ANDROID_SDK_ROOT=%LOCALAPPDATA%\Android\Sdk"
set "PATH=%ANDROID_SDK_ROOT%\platform-tools;%PATH%"</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Final Working Configuration Summary</h1>



<p>For React Native 0.84 (Windows):</p>



<ul class="wp-block-list">
<li>Java: <strong>JDK 17</strong></li>



<li>Gradle JVM: <strong>17</strong></li>



<li>NDK: <strong>27.1.12297006</strong></li>



<li>CMake: Installed via SDK Tools</li>



<li>Use: <code>--device</code> instead of <code>--deviceId</code></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Final Command That Worked</h1>



<pre class="wp-block-code"><code>npx react-native run-android --device emulator-5554</code></pre>



<p>Everything built smoothly.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Key Lessons Learned</h1>



<ol class="wp-block-list">
<li>Gradle launcher and daemon must both use Java 17.</li>



<li>NDK 26 is not compatible with React Native 0.84 C++20 requirements.</li>



<li>Always force ndkVersion in build.gradle.</li>



<li>Always clean <code>.cxx</code> when changing NDK.</li>



<li>If emulator shows but CLI doesn’t detect, reset ADB.</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>
<p>The post <a href="https://www.aiuniverse.xyz/how-to-fix-react-native-android-build-errors-jdk-25-ndk-26-cmake-emulator-issues/">How to Fix React Native Android Build Errors (JDK 25, NDK 26, CMake &amp; Emulator Issues)</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/how-to-fix-react-native-android-build-errors-jdk-25-ndk-26-cmake-emulator-issues/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Install WordPress Inside a blog Folder on Linux (XAMPP Public Directory)</title>
		<link>https://www.aiuniverse.xyz/how-to-install-wordpress-inside-a-blog-folder-on-linux-xampp-public-directory/</link>
					<comments>https://www.aiuniverse.xyz/how-to-install-wordpress-inside-a-blog-folder-on-linux-xampp-public-directory/#respond</comments>
		
		<dc:creator><![CDATA[Maruti Kr.]]></dc:creator>
		<pubDate>Sat, 14 Feb 2026 07:36:25 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[install wordpress in subdirectory]]></category>
		<category><![CDATA[install wordpress in xampp linux]]></category>
		<category><![CDATA[install wordpress manually linux server]]></category>
		<category><![CDATA[install wordpress on local linux server]]></category>
		<category><![CDATA[linux server wordpress configuration]]></category>
		<category><![CDATA[linux wordpress install]]></category>
		<category><![CDATA[wordpress blog folder setup]]></category>
		<category><![CDATA[wordpress blog setup tutorial]]></category>
		<category><![CDATA[wordpress blog url setup]]></category>
		<category><![CDATA[wordpress database setup linux]]></category>
		<category><![CDATA[wordpress install in project public folder]]></category>
		<category><![CDATA[wordpress install on linux]]></category>
		<category><![CDATA[wordpress install using terminal]]></category>
		<category><![CDATA[wordpress installation guide linux]]></category>
		<category><![CDATA[wordpress manual installation steps]]></category>
		<category><![CDATA[wordpress setup apache linux]]></category>
		<category><![CDATA[wordpress setup for laravel public folder]]></category>
		<category><![CDATA[wordpress setup in public folder]]></category>
		<category><![CDATA[wordpress subfolder installation guide]]></category>
		<category><![CDATA[xampp wordpress installation steps]]></category>
		<guid isPermaLink="false">https://www.aiuniverse.xyz/?p=21809</guid>

					<description><![CDATA[<p>If you are running a Linux server with XAMPP and want to install WordPress inside a blog folder within your project’s public directory, this step-by-step guide will help you set it up properly.In this example, WordPress will be installed at: After installation, your blog will be accessible at: Step 1 — Navigate to the Public <a class="read-more-link" href="https://www.aiuniverse.xyz/how-to-install-wordpress-inside-a-blog-folder-on-linux-xampp-public-directory/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/how-to-install-wordpress-inside-a-blog-folder-on-linux-xampp-public-directory/">How to Install WordPress Inside a blog Folder on Linux (XAMPP Public Directory)</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>If you are running a Linux server with XAMPP and want to install WordPress inside a <strong><code>blog</code></strong> folder within your project’s public directory, this step-by-step guide will help you set it up properly.<br>In this example, WordPress will be installed at:</p>



<pre class="wp-block-code"><code>/opt/lampp/htdocs/hyderabadorbit.com/public/blog</code></pre>



<p>After installation, your blog will be accessible at:</p>



<pre class="wp-block-code"><code>https:&#47;&#47;yourdomain.com/blog</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 1 — Navigate to the Public Directory</h2>



<p>Open your terminal and move to your project’s public folder:</p>



<pre class="wp-block-code"><code>cd /opt/lampp/htdocs/hyderabadorbit.com/public</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 2 — Download the Latest WordPress Package</h2>



<p>Download the latest WordPress version directly from the official source:</p>



<pre class="wp-block-code"><code>wget https://wordpress.org/latest.zip</code></pre>



<p>Extract the downloaded file:</p>



<pre class="wp-block-code"><code>unzip latest.zip</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 3 — Rename the WordPress Folder to blog</h2>



<p>Rename the extracted folder so that WordPress runs under the <code>/blog</code> URL:</p>



<pre class="wp-block-code"><code>mv wordpress blog</code></pre>



<p>Now your WordPress files will be located at:</p>



<pre class="wp-block-code"><code>public/blog</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 4 — Set Proper Permissions</h2>



<p>Since you are using XAMPP, set ownership and permissions for the web server:</p>



<pre class="wp-block-code"><code>sudo chown -R daemon:daemon blog
sudo chmod -R 755 blog</code></pre>



<p>This ensures Apache can access and manage the files correctly.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 5 — Create a Database for WordPress</h2>



<p>Open MySQL using XAMPP:</p>



<pre class="wp-block-code"><code>/opt/lampp/bin/mysql -u root -p</code></pre>



<p>Create a new database and user:</p>



<pre class="wp-block-code"><code>CREATE DATABASE blog_db;
CREATE USER 'blog_user'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON blog_db.* TO 'blog_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 6 — Restart XAMPP Services</h2>



<p>Restart XAMPP to apply changes:</p>



<pre class="wp-block-code"><code>sudo /opt/lampp/lampp restart</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 7 — Complete WordPress Installation via Browser</h2>



<p>Open your browser and go to:</p>



<pre class="wp-block-code"><code>https:&#47;&#47;yourdomain.com/blog</code></pre>



<p>Enter the following database details:</p>



<ul class="wp-block-list">
<li>Database Name: <code>blog_db</code></li>



<li>Username: <code>blog_user</code></li>



<li>Password: <code>StrongPassword</code></li>



<li>Database Host: <code>localhost</code></li>
</ul>



<p>Click <strong>Install WordPress</strong>, and follow the on-screen instructions.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>
<p>The post <a href="https://www.aiuniverse.xyz/how-to-install-wordpress-inside-a-blog-folder-on-linux-xampp-public-directory/">How to Install WordPress Inside a blog Folder on Linux (XAMPP Public Directory)</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/how-to-install-wordpress-inside-a-blog-folder-on-linux-xampp-public-directory/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Deploy a Laravel Project on a Linux Server Using HTDOCS and GitHub – Complete Step-by-Step Guide</title>
		<link>https://www.aiuniverse.xyz/how-to-deploy-a-laravel-project-on-a-linux-server-using-htdocs-and-github-complete-step-by-step-guide/</link>
					<comments>https://www.aiuniverse.xyz/how-to-deploy-a-laravel-project-on-a-linux-server-using-htdocs-and-github-complete-step-by-step-guide/#respond</comments>
		
		<dc:creator><![CDATA[Maruti Kr.]]></dc:creator>
		<pubDate>Mon, 09 Feb 2026 10:03:25 +0000</pubDate>
				<category><![CDATA[laravel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[deploy Laravel using htdocs]]></category>
		<category><![CDATA[GitHub clone Laravel project server]]></category>
		<category><![CDATA[how to deploy Laravel step by step]]></category>
		<category><![CDATA[install Laravel on Linux server]]></category>
		<category><![CDATA[Laravel Apache configuration]]></category>
		<category><![CDATA[Laravel application live setup]]></category>
		<category><![CDATA[Laravel composer install production]]></category>
		<category><![CDATA[Laravel deployment on Linux server]]></category>
		<category><![CDATA[Laravel deployment with GitHub]]></category>
		<category><![CDATA[Laravel environment setup production]]></category>
		<category><![CDATA[Laravel Linux hosting tutorial]]></category>
		<category><![CDATA[Laravel migration production server]]></category>
		<category><![CDATA[Laravel project hosting guide]]></category>
		<category><![CDATA[Laravel project live on server]]></category>
		<category><![CDATA[Laravel project production setup]]></category>
		<category><![CDATA[Laravel public folder setup]]></category>
		<category><![CDATA[Laravel server configuration tutorial]]></category>
		<category><![CDATA[Laravel virtual host setup]]></category>
		<category><![CDATA[Laravel XAMPP deployment Linux]]></category>
		<guid isPermaLink="false">https://www.aiuniverse.xyz/?p=21790</guid>

					<description><![CDATA[<p>Deploying a Laravel project on a Linux server becomes simple when you follow a structured process. In this guide, we will deploy a Laravel project by cloning it from GitHub and placing it inside the htdocs directory, which is commonly used in XAMPP or LAMP-based server setups. This tutorial is ideal for developers who prefer <a class="read-more-link" href="https://www.aiuniverse.xyz/how-to-deploy-a-laravel-project-on-a-linux-server-using-htdocs-and-github-complete-step-by-step-guide/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/how-to-deploy-a-laravel-project-on-a-linux-server-using-htdocs-and-github-complete-step-by-step-guide/">How to Deploy a Laravel Project on a Linux Server Using HTDOCS and GitHub – Complete Step-by-Step Guide</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Deploying a Laravel project on a Linux server becomes simple when you follow a structured process. In this guide, we will deploy a Laravel project by <strong>cloning it from GitHub</strong> and placing it inside the <strong>htdocs directory</strong>, which is commonly used in XAMPP or LAMP-based server setups.</p>



<p>This tutorial is ideal for developers who prefer using the <strong>htdocs folder structure</strong> instead of the traditional <code>/var/www</code> directory.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Prerequisites</h2>



<p>Before starting, ensure you have:</p>



<ul class="wp-block-list">
<li>A Linux server with SSH access</li>



<li>GitHub repository of your Laravel project</li>



<li>Apache/XAMPP or LAMP stack installed</li>



<li>PHP and Composer installed</li>



<li>Database access (MySQL/MariaDB)</li>



<li>Basic Linux command knowledge</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 1: Connect to Your Linux Server</h2>



<p>Login via SSH from your local machine:</p>



<pre class="wp-block-code"><code>ssh username@server_ip</code></pre>



<p>Example:</p>



<pre class="wp-block-code"><code>ssh myeventadmin@your_server_ip</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 2: Update Your Server</h2>



<p>Always update packages before setup:</p>



<pre class="wp-block-code"><code>sudo apt update &amp;&amp; sudo apt upgrade -y</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 3: Install Required Packages</h2>



<p>Install Apache, PHP, Git, Composer dependencies, and tools:</p>



<pre class="wp-block-code"><code>sudo apt install apache2 mysql-server unzip git curl -y</code></pre>



<p>Install PHP extensions required by Laravel:</p>



<pre class="wp-block-code"><code>sudo apt install php php-cli php-mysql php-zip php-gd php-mbstring php-curl php-xml libapache2-mod-php -y</code></pre>



<p>Check PHP version:</p>



<pre class="wp-block-code"><code>php -v</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 4: Install Composer</h2>



<pre class="wp-block-code"><code>cd ~
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer</code></pre>



<p>Verify installation:</p>



<pre class="wp-block-code"><code>composer -V</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 5: Move to HTDOCS Directory</h2>



<p>Depending on your server setup, the htdocs directory may be located at:</p>



<pre class="wp-block-code"><code>/opt/lampp/htdocs</code></pre>



<p>or</p>



<pre class="wp-block-code"><code>/var/www/html</code></pre>



<p>Navigate to htdocs:</p>



<pre class="wp-block-code"><code>cd /opt/lampp/htdocs</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 6: Clone Laravel Project from GitHub</h2>



<pre class="wp-block-code"><code>sudo git clone https://github.com/username/project.git</code></pre>



<p>Move into project folder:</p>



<pre class="wp-block-code"><code>cd project</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 7: Set Folder Permissions</h2>



<pre class="wp-block-code"><code>sudo chown -R daemon:daemon /opt/lampp/htdocs/project
sudo chmod -R 775 storage
sudo chmod -R 775 bootstrap/cache</code></pre>



<p><em>(If using Apache instead of XAMPP, replace daemon with www-data)</em></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 8: Configure Environment File</h2>



<p>Create the environment file:</p>



<pre class="wp-block-code"><code>cp .env.example .env
nano .env</code></pre>



<p>Update important settings:</p>



<pre class="wp-block-code"><code>APP_NAME=Laravel
APP_ENV=production
APP_DEBUG=false
APP_URL=http://yourdomain.com</code></pre>



<p>Add your database credentials as well.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 9: Install Laravel Dependencies</h2>



<pre class="wp-block-code"><code>composer install</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 10: Generate Application Key</h2>



<pre class="wp-block-code"><code>php artisan key:generate</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 11: Create Database and Run Migration</h2>



<p>Login to MySQL:</p>



<pre class="wp-block-code"><code>sudo mysql</code></pre>



<p>Create database:</p>



<pre class="wp-block-code"><code>CREATE DATABASE laravel_db;
EXIT;</code></pre>



<p>Run migrations:</p>



<pre class="wp-block-code"><code>php artisan migrate</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 12: Configure Apache to Use Public Folder</h2>



<p>Edit Apache configuration:</p>



<pre class="wp-block-code"><code>sudo nano /opt/lampp/etc/extra/httpd-vhosts.conf</code></pre>



<p>Add:</p>



<pre class="wp-block-code"><code>&lt;VirtualHost *:80&gt;
    ServerName yourdomain.com
    DocumentRoot "/opt/lampp/htdocs/project/public"

    &lt;Directory "/opt/lampp/htdocs/project"&gt;
        AllowOverride All
        Require all granted
    &lt;/Directory&gt;
&lt;/VirtualHost&gt;
</code></pre>



<p>Restart Apache/XAMPP:</p>



<pre class="wp-block-code"><code>sudo /opt/lampp/lampp restart</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 13: Test Laravel Application</h2>



<p>Open browser:</p>



<pre class="wp-block-code"><code>http:&#47;&#47;your_server_ip/project/public</code></pre>



<p>or</p>



<pre class="wp-block-code"><code>http:&#47;&#47;yourdomain.com</code></pre>



<p>If everything is configured properly, your Laravel website will be live.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Important Production Tips</h2>



<ul class="wp-block-list">
<li>Always set <code>APP_DEBUG=false</code></li>



<li>Never make <code>.env</code> publicly accessible</li>



<li>Ensure correct folder permissions</li>



<li>Use SSL (HTTPS) for live websites</li>



<li>Regularly pull updates from GitHub</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Deploying a Laravel project using the <strong>htdocs directory</strong> and <strong>GitHub cloning</strong> is a practical and efficient workflow for Linux servers running XAMPP or Apache environments. By following this step-by-step process — cloning the repository, configuring environment variables, setting permissions, and configuring Apache — you can successfully deploy your Laravel application in a production-ready environment.</p>



<p>This method is especially useful for developers who prefer traditional htdocs-based hosting environments while maintaining version control through GitHub.</p>
<p>The post <a href="https://www.aiuniverse.xyz/how-to-deploy-a-laravel-project-on-a-linux-server-using-htdocs-and-github-complete-step-by-step-guide/">How to Deploy a Laravel Project on a Linux Server Using HTDOCS and GitHub – Complete Step-by-Step Guide</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/how-to-deploy-a-laravel-project-on-a-linux-server-using-htdocs-and-github-complete-step-by-step-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Install and Enable GMP Extension in XAMPP PHP on Linux (Step-by-Step Guide)</title>
		<link>https://www.aiuniverse.xyz/how-to-install-and-enable-gmp-extension-in-xampp-php-on-linux-step-by-step-guide/</link>
					<comments>https://www.aiuniverse.xyz/how-to-install-and-enable-gmp-extension-in-xampp-php-on-linux-step-by-step-guide/#respond</comments>
		
		<dc:creator><![CDATA[Maruti Kr.]]></dc:creator>
		<pubDate>Mon, 09 Feb 2026 08:20:07 +0000</pubDate>
				<category><![CDATA[laravel]]></category>
		<category><![CDATA[XAMPP]]></category>
		<category><![CDATA[compile gmp php]]></category>
		<category><![CDATA[enable gmp in xampp]]></category>
		<category><![CDATA[gmp php linux]]></category>
		<category><![CDATA[gmp_init not found]]></category>
		<category><![CDATA[install gmp extension php]]></category>
		<category><![CDATA[php gmp extension missing]]></category>
		<category><![CDATA[php gmp.so install]]></category>
		<category><![CDATA[xampp php 8 gmp]]></category>
		<category><![CDATA[xampp php gmp install]]></category>
		<guid isPermaLink="false">https://www.aiuniverse.xyz/?p=21785</guid>

					<description><![CDATA[<p>Introduction If you are using XAMPP PHP on a Linux server and encounter errors like: then this usually means the GMP extension is not installed, not just disabled. Many developers assume that uncommenting a line in php.ini is enough—but in XAMPP, that is often not true. This guide explains why GMP is missing, and shows <a class="read-more-link" href="https://www.aiuniverse.xyz/how-to-install-and-enable-gmp-extension-in-xampp-php-on-linux-step-by-step-guide/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/how-to-install-and-enable-gmp-extension-in-xampp-php-on-linux-step-by-step-guide/">How to Install and Enable GMP Extension in XAMPP PHP on Linux (Step-by-Step Guide)</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Introduction</h2>



<p>If you are using <strong>XAMPP PHP on a Linux server</strong> and encounter errors like:</p>



<ul class="wp-block-list">
<li><code>GMP NOT OK</code></li>



<li><code>Unable to load dynamic library 'gmp'</code></li>



<li><code>Call to undefined function gmp_init()</code></li>
</ul>



<p>then this usually means the <strong>GMP extension is not installed</strong>, not just disabled.</p>



<p>Many developers assume that uncommenting a line in <code>php.ini</code> is enough—but in <strong>XAMPP</strong>, that is often not true.</p>



<p>This guide explains <strong>why GMP is missing</strong>, and shows the <strong>correct, production-safe way</strong> to compile, install, and enable the GMP extension for <strong>XAMPP PHP</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">What Is the GMP Extension in PHP?</h2>



<p><strong>GMP (GNU Multiple Precision)</strong> is a PHP extension used for handling very large integers and high-precision arithmetic.</p>



<p>Common use cases include:</p>



<ul class="wp-block-list">
<li>Cryptography and security libraries</li>



<li>JWT / OAuth / authentication systems</li>



<li>Blockchain and hashing operations</li>



<li>Keycloak integrations</li>



<li>Large integer calculations</li>
</ul>



<p>Example:</p>



<pre class="wp-block-code"><code>gmp_init("12345678901234567890");</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">The Real Problem (Why GMP Doesn’t Work in XAMPP)</h2>



<p>When you run:</p>



<pre class="wp-block-code"><code>php -m | grep gmp</code></pre>



<p>and get <strong>no output</strong>, or:</p>



<pre class="wp-block-code"><code>GMP NOT OK</code></pre>



<p>Even after adding this to <code>php.ini</code>:</p>



<pre class="wp-block-code"><code>extension=gmp</code></pre>



<h3 class="wp-block-heading">❌ Why this happens</h3>



<p>XAMPP PHP is a <strong>precompiled binary</strong> and often <strong>does not include <code>gmp.so</code> at all</strong>.</p>



<p>So:</p>



<ul class="wp-block-list">
<li><code>php.ini</code> only <em>loads</em> extensions</li>



<li>It does <strong>not create them</strong></li>



<li>If <code>gmp.so</code> does not exist, PHP cannot load it</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Environment Used in This Guide</h2>



<ul class="wp-block-list">
<li>OS: Linux (Ubuntu based)</li>



<li>PHP: <strong>XAMPP PHP 8.2.12</strong></li>



<li>PHP binary:</li>
</ul>



<pre class="wp-block-code"><code>/opt/lampp/bin/php</code></pre>



<ul class="wp-block-list">
<li>php.ini location:</li>
</ul>



<pre class="wp-block-code"><code>/opt/lampp/etc/php.ini</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 1: Confirm You Are Using XAMPP PHP</h2>



<pre class="wp-block-code"><code>which php
php -v</code></pre>



<p>Expected output:</p>



<pre class="wp-block-code"><code>/opt/lampp/bin/php
PHP 8.2.12</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 2: Check Whether GMP Is Loaded</h2>



<pre class="wp-block-code"><code>/opt/lampp/bin/php -m | grep -i gmp</code></pre>



<p>If nothing appears, GMP is not installed.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 3: Check the PHP Extension Directory</h2>



<pre class="wp-block-code"><code>/opt/lampp/bin/php -i | grep extension_dir</code></pre>



<p>Example output:</p>



<pre class="wp-block-code"><code>/opt/lampp/lib/php/extensions/no-debug-non-zts-20220829</code></pre>



<p>Check if <code>gmp.so</code> exists:</p>



<pre class="wp-block-code"><code>ls -l /opt/lampp/lib/php/extensions/no-debug-non-zts-20220829 | grep gmp</code></pre>



<p>If nothing is returned, GMP is missing.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 4: Install Required Build Dependencies</h2>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install -y build-essential autoconf automake libtool \
pkg-config libgmp-dev re2c bison wget</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 5: Download PHP Source (Same Version as XAMPP)</h2>



<p>⚠️ <strong>The PHP source version must exactly match your XAMPP PHP version</strong>.</p>



<pre class="wp-block-code"><code>cd /tmp
wget https://www.php.net/distributions/php-8.2.12.tar.gz
tar -xzf php-8.2.12.tar.gz</code></pre>



<p>Verify GMP source exists:</p>



<pre class="wp-block-code"><code>ls /tmp/php-8.2.12/ext/gmp</code></pre>



<p>You should see files like <code>gmp.c</code>, <code>config.m4</code>, etc.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 6: Compile GMP Extension for XAMPP PHP</h2>



<pre class="wp-block-code"><code>cd /tmp/php-8.2.12/ext/gmp

/opt/lampp/bin/phpize
./configure --with-php-config=/opt/lampp/bin/php-config
make -j$(nproc)
sudo make install</code></pre>



<p>This step <strong>creates the <code>gmp.so</code> file</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 7: Verify <code>gmp.so</code> Was Installed</h2>



<pre class="wp-block-code"><code>EXT_DIR=$(/opt/lampp/bin/php -r 'echo ini_get("extension_dir");')
ls -l "$EXT_DIR" | grep gmp</code></pre>



<p>Expected output:</p>



<pre class="wp-block-code"><code>gmp.so</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 8: Enable GMP in php.ini (Linux)</h2>



<p>Open the file:</p>



<pre class="wp-block-code"><code>sudo vi /opt/lampp/etc/php.ini</code></pre>



<h3 class="wp-block-heading">Important Notes</h3>



<ul class="wp-block-list">
<li>Ignore lines like:</li>
</ul>



<pre class="wp-block-code"><code>;extension=php_gmp.dll</code></pre>



<p>These are <strong>Windows-only</strong>.</p>



<ul class="wp-block-list">
<li>Do <strong>not</strong> uncomment <code>.dll</code> lines on Linux.</li>
</ul>



<h3 class="wp-block-heading">Add this line:</h3>



<pre class="wp-block-code"><code>extension=gmp.so</code></pre>



<p>Save and exit:</p>



<pre class="wp-block-code"><code>Esc
:wq</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 9: Restart XAMPP</h2>



<pre class="wp-block-code"><code>sudo /opt/lampp/lampp restart</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 10: Final Verification</h2>



<pre class="wp-block-code"><code>/opt/lampp/bin/php -m | grep -i gmp</code></pre>



<p>Expected output:</p>



<pre class="wp-block-code"><code>gmp</code></pre>



<p>Final confirmation:</p>



<pre class="wp-block-code"><code>/opt/lampp/bin/php -r 'echo function_exists("gmp_init") ? "GMP OK\n" : "GMP NOT OK\n";'</code></pre>



<p>Expected:</p>



<pre class="wp-block-code"><code>GMP OK</code></pre>



<p>🎉 <strong>GMP is now fully installed and enabled in XAMPP PHP</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Common Mistakes to Avoid</h2>



<ul class="wp-block-list">
<li>Only uncommenting <code>extension=gmp</code></li>



<li>Using <code>.dll</code> extensions on Linux</li>



<li>Installing <code>php-gmp</code> via <code>apt</code> for XAMPP</li>



<li>PHP version mismatch during compilation</li>



<li>Forgetting to restart XAMPP</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Enabling GMP in <strong>XAMPP PHP on Linux</strong> requires more than editing <code>php.ini</code>.<br>When the extension is missing, <strong>compiling it for your exact PHP version is the correct and safe solution</strong>.</p>



<p>This method:</p>



<ul class="wp-block-list">
<li>Does <strong>not</strong> reinstall PHP</li>



<li>Does <strong>not</strong> reinstall XAMPP</li>



<li>Works reliably in production environments</li>
</ul>
<p>The post <a href="https://www.aiuniverse.xyz/how-to-install-and-enable-gmp-extension-in-xampp-php-on-linux-step-by-step-guide/">How to Install and Enable GMP Extension in XAMPP PHP on Linux (Step-by-Step Guide)</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/how-to-install-and-enable-gmp-extension-in-xampp-php-on-linux-step-by-step-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Change Admin Password in a Laravel Project</title>
		<link>https://www.aiuniverse.xyz/how-to-change-admin-password-in-a-laravel-project/</link>
					<comments>https://www.aiuniverse.xyz/how-to-change-admin-password-in-a-laravel-project/#respond</comments>
		
		<dc:creator><![CDATA[Maruti Kr.]]></dc:creator>
		<pubDate>Fri, 06 Feb 2026 03:45:32 +0000</pubDate>
				<category><![CDATA[laravel]]></category>
		<category><![CDATA[change admin password in laravel]]></category>
		<category><![CDATA[how to change admin password in laravel]]></category>
		<category><![CDATA[laravel admin login password change]]></category>
		<category><![CDATA[laravel admin password change]]></category>
		<category><![CDATA[laravel admin password change xampp]]></category>
		<category><![CDATA[laravel admin password reset]]></category>
		<category><![CDATA[laravel bcrypt password change]]></category>
		<category><![CDATA[laravel change password from database]]></category>
		<category><![CDATA[laravel change password using phpmyadmin]]></category>
		<category><![CDATA[laravel forgot admin password]]></category>
		<category><![CDATA[laravel password change cpanel]]></category>
		<category><![CDATA[laravel password hashing bcrypt]]></category>
		<category><![CDATA[laravel reset admin password without login]]></category>
		<category><![CDATA[laravel tinker change password]]></category>
		<guid isPermaLink="false">https://www.aiuniverse.xyz/?p=21774</guid>

					<description><![CDATA[<p>Laravel is a secure and powerful PHP framework, but many developers face confusion when they need to change the admin password, especially if the password is forgotten or the admin cannot log in. In this blog post, you will learn multiple safe and practical ways to change the admin password in a Laravel project, applicable <a class="read-more-link" href="https://www.aiuniverse.xyz/how-to-change-admin-password-in-a-laravel-project/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/how-to-change-admin-password-in-a-laravel-project/">How to Change Admin Password in a Laravel Project</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="683" src="https://www.aiuniverse.xyz/wp-content/uploads/2026/02/ChatGPT-Image-Feb-6-2026-09_14_52-AM-1024x683.png" alt="" class="wp-image-21775" srcset="https://www.aiuniverse.xyz/wp-content/uploads/2026/02/ChatGPT-Image-Feb-6-2026-09_14_52-AM-1024x683.png 1024w, https://www.aiuniverse.xyz/wp-content/uploads/2026/02/ChatGPT-Image-Feb-6-2026-09_14_52-AM-300x200.png 300w, https://www.aiuniverse.xyz/wp-content/uploads/2026/02/ChatGPT-Image-Feb-6-2026-09_14_52-AM-768x512.png 768w, https://www.aiuniverse.xyz/wp-content/uploads/2026/02/ChatGPT-Image-Feb-6-2026-09_14_52-AM.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Laravel is a secure and powerful PHP framework, but many developers face confusion when they need to <strong>change the admin password</strong>, especially if the password is forgotten or the admin cannot log in.</p>



<p>In this blog post, you will learn <strong>multiple safe and practical ways to change the admin password in a Laravel project</strong>, applicable to both <strong>XAMPP (local server)</strong> and <strong>cPanel (live server)</strong> environments.</p>



<h2 class="wp-block-heading">Where Is the Admin Password Stored in Laravel?</h2>



<p>Laravel never stores passwords in plain text.<br>By default:</p>



<ul class="wp-block-list">
<li>Passwords are stored as <strong>bcrypt hashes</strong></li>



<li>Common tables used for admin accounts:
<ul class="wp-block-list">
<li><code>users</code></li>



<li><code>admins</code></li>



<li><code>admin_users</code></li>
</ul>
</li>
</ul>



<p>In many projects, the admin user exists in the <code>users</code> table with a column like:</p>



<ul class="wp-block-list">
<li><code>role = admin</code></li>



<li><code>is_admin = 1</code></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Method 1: Change Admin Password Using phpMyAdmin (Recommended)</h2>



<p>This is the <strong>most reliable and commonly used method</strong>, especially when:</p>



<ul class="wp-block-list">
<li>You forgot the admin password</li>



<li>Admin login is not working</li>



<li>You are working on a live server (cPanel)</li>
</ul>



<h3 class="wp-block-heading">Step 1: Open phpMyAdmin</h3>



<ul class="wp-block-list">
<li><strong>XAMPP</strong>: <code>http://localhost/phpmyadmin</code></li>



<li><strong>cPanel</strong>: Login to cPanel → Open phpMyAdmin</li>
</ul>



<h3 class="wp-block-heading">Step 2: Select Laravel Database</h3>



<ul class="wp-block-list">
<li>Choose your Laravel project database</li>



<li>Open the <code>users</code> or <code>admins</code> table</li>
</ul>



<h3 class="wp-block-heading">Step 3: Locate the Admin Account</h3>



<ul class="wp-block-list">
<li>Find the admin record using <strong>email</strong>, <strong>username</strong>, or <strong>role</strong></li>
</ul>



<h3 class="wp-block-heading">Step 4: Generate a New Password Hash</h3>



<p>Open terminal or command prompt in your Laravel project directory:</p>



<pre class="wp-block-code"><code>php artisan tinker
</code></pre>



<p>Then run:</p>



<pre class="wp-block-code"><code>bcrypt('NewPassword@123')
</code></pre>



<p>This will generate an encrypted string starting with <code>$2y$...</code>.<br>Copy this hashed value.</p>



<h3 class="wp-block-heading">Step 5: Update Password in Database</h3>



<ul class="wp-block-list">
<li>Click <strong>Edit</strong> on the admin record</li>



<li>Paste the hashed value into the <code>password</code> column</li>



<li>Save changes</li>
</ul>



<p>✅ The new admin password is now: <strong>NewPassword@123</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Method 2: Change Admin Password Using Laravel Tinker</h2>



<p>This method is useful when:</p>



<ul class="wp-block-list">
<li>You have project access</li>



<li>You prefer not to manually edit the database</li>
</ul>



<h3 class="wp-block-heading">Open Tinker</h3>



<pre class="wp-block-code"><code>php artisan tinker
</code></pre>



<h3 class="wp-block-heading">If Admin Is in the <code>users</code> Table</h3>



<pre class="wp-block-code"><code>use App\Models\User;

$user = User::where('email', 'admin@example.com')-&gt;first();
$user-&gt;password = bcrypt('NewPassword@123');
$user-&gt;save();
</code></pre>



<h3 class="wp-block-heading">If Admin Uses a Separate Model</h3>



<pre class="wp-block-code"><code>use App\Models\Admin;

$admin = Admin::where('email', 'admin@example.com')-&gt;first();
$admin-&gt;password = bcrypt('NewPassword@123');
$admin-&gt;save();
</code></pre>



<p>✅ Password updated successfully.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Method 3: Reset Admin Password Using a Temporary Route</h2>



<p>This method should be used <strong>only in emergencies</strong>.</p>



<h3 class="wp-block-heading">Step 1: Add Temporary Route</h3>



<p>Edit <code>routes/web.php</code>:</p>



<pre class="wp-block-code"><code>use App\Models\User;
use Illuminate\Support\Facades\Hash;

Route::get('/reset-admin-password', function () {
    $user = User::where('email', 'admin@example.com')-&gt;first();
    $user-&gt;password = Hash::make('NewPassword@123');
    $user-&gt;save();
    return 'Admin password changed successfully';
});
</code></pre>



<h3 class="wp-block-heading">Step 2: Open the URL Once</h3>



<pre class="wp-block-code"><code>yourdomain.com/reset-admin-password
</code></pre>



<h3 class="wp-block-heading">Step 3: Remove the Route Immediately</h3>



<p>⚠️ This step is critical for security reasons.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Common Mistakes to Avoid</h2>



<ul class="wp-block-list">
<li>Saving passwords in plain text</li>



<li>Using <code>md5()</code> or <code>sha1()</code> for hashing</li>



<li>Forgetting to delete reset routes</li>



<li>Trying to change passwords from the <code>.env</code> file</li>
</ul>



<p>Laravel passwords must always be stored using <strong>bcrypt or Hash::make()</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Which Method Should You Use?</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Situation</th><th>Best Method</th></tr></thead><tbody><tr><td>Forgot admin password</td><td>phpMyAdmin</td></tr><tr><td>Local development</td><td>Laravel Tinker</td></tr><tr><td>Live server (cPanel)</td><td>phpMyAdmin</td></tr><tr><td>Emergency one-time reset</td><td>Temporary route</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Changing the admin password in a Laravel project is simple if you follow the correct and secure approach.<br>For beginners and production servers, <strong>phpMyAdmin with bcrypt hashing</strong> is the safest method.</p>



<p>Always follow Laravel security best practices to keep your application protected.</p>
<p>The post <a href="https://www.aiuniverse.xyz/how-to-change-admin-password-in-a-laravel-project/">How to Change Admin Password in a Laravel Project</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/how-to-change-admin-password-in-a-laravel-project/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Show Flarum Discussions on a Laravel Website</title>
		<link>https://www.aiuniverse.xyz/how-to-show-flarum-discussions-on-a-laravel-website/</link>
					<comments>https://www.aiuniverse.xyz/how-to-show-flarum-discussions-on-a-laravel-website/#respond</comments>
		
		<dc:creator><![CDATA[Maruti Kr.]]></dc:creator>
		<pubDate>Tue, 03 Feb 2026 17:39:19 +0000</pubDate>
				<category><![CDATA[Flarum]]></category>
		<category><![CDATA[display Flarum discussions on website]]></category>
		<category><![CDATA[fetch Flarum discussions in Laravel]]></category>
		<category><![CDATA[fetch forum discussions using Laravel]]></category>
		<category><![CDATA[Flarum API Laravel example]]></category>
		<category><![CDATA[Flarum discussions frontend JavaScript]]></category>
		<category><![CDATA[Flarum discussions homepage widget]]></category>
		<category><![CDATA[Flarum discussions Laravel integration]]></category>
		<category><![CDATA[Flarum discussions UI implementation]]></category>
		<category><![CDATA[Flarum JSON API example]]></category>
		<category><![CDATA[Flarum REST API tutorial]]></category>
		<category><![CDATA[integrate Flarum forum with Laravel]]></category>
		<category><![CDATA[Laravel backend proxy API]]></category>
		<category><![CDATA[Laravel community forum integration]]></category>
		<category><![CDATA[Laravel Flarum API integration]]></category>
		<category><![CDATA[show forum discussions in Laravel]]></category>
		<guid isPermaLink="false">https://www.aiuniverse.xyz/?p=21763</guid>

					<description><![CDATA[<p>Modern websites often need to display content from multiple platforms on a single homepage. A common example is showing WordPress blog posts or community discussions directly on a Laravel-based site without breaking layout or performance. In this article, we’ll explain the best and most stable approach to fetch and display Flarum discussions on a Laravel <a class="read-more-link" href="https://www.aiuniverse.xyz/how-to-show-flarum-discussions-on-a-laravel-website/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/how-to-show-flarum-discussions-on-a-laravel-website/">How to Show Flarum Discussions on a Laravel Website</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><img decoding="async" width="840" height="558" src="https://www.aiuniverse.xyz/wp-content/uploads/2026/02/How-to-Show-Flarum-Discussions-on-a-Laravel-Website.png" alt="" class="wp-image-21764" srcset="https://www.aiuniverse.xyz/wp-content/uploads/2026/02/How-to-Show-Flarum-Discussions-on-a-Laravel-Website.png 840w, https://www.aiuniverse.xyz/wp-content/uploads/2026/02/How-to-Show-Flarum-Discussions-on-a-Laravel-Website-300x199.png 300w, https://www.aiuniverse.xyz/wp-content/uploads/2026/02/How-to-Show-Flarum-Discussions-on-a-Laravel-Website-768x510.png 768w" sizes="(max-width: 840px) 100vw, 840px" /></figure>



<p>Modern websites often need to display content from multiple platforms on a single homepage. A common example is showing <strong>WordPress blog posts</strong> or <strong>community discussions</strong> directly on a Laravel-based site without breaking layout or performance.</p>



<p>In this article, we’ll explain the <strong>best and most stable approach to fetch and display Flarum discussions on a Laravel website</strong>, using the <strong>same concept as WordPress blog fetch</strong>, but implemented correctly for production use.</p>



<p>This guide covers:</p>



<ul class="wp-block-list">
<li>Why backend proxy is the best approach</li>



<li>How Flarum API works</li>



<li>Step-by-step Laravel + JavaScript integration</li>



<li>Clean UI rendering with fail-safe handling</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Why Not Fetch Flarum Directly from Frontend?</h2>



<p>Flarum provides a JSON:API endpoint, so technically you <em>can</em> fetch discussions directly using JavaScript. However, this approach causes multiple problems in real-world projects:</p>



<ul class="wp-block-list">
<li>❌ <strong>CORS issues</strong> (very common)</li>



<li>❌ API rate limits exposed to users</li>



<li>❌ Authentication tokens exposed in frontend</li>



<li>❌ No caching → slow homepage</li>



<li>❌ API failure breaks UI</li>
</ul>



<p>Because of this, <strong>direct frontend fetch is not recommended</strong> for production.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Best Practice: Laravel Backend Proxy (Recommended)</h2>



<p>The <strong>best and safest approach</strong> is:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>Laravel Backend → Fetch Flarum API → Convert to simple JSON → Frontend JS renders UI</strong></p>
</blockquote>



<h3 class="wp-block-heading">Benefits:</h3>



<ul class="wp-block-list">
<li>✅ No CORS problems</li>



<li>✅ API tokens stay secure</li>



<li>✅ Easy caching (faster homepage)</li>



<li>✅ Clean error handling</li>



<li>✅ Same pattern as WordPress blog fetch</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 1: Understand the Flarum API Endpoint</h2>



<p>Flarum exposes discussions using JSON:API:</p>



<pre class="wp-block-code"><code>GET https://your-flarum-site.com/api/discussions
</code></pre>



<p>Common parameters:</p>



<ul class="wp-block-list">
<li><code>page[limit]=9</code> → number of discussions</li>



<li><code>sort=-createdAt</code> → latest discussions first</li>



<li><code>include=user,tags</code> → include author and tags</li>
</ul>



<p>Example:</p>



<pre class="wp-block-code"><code>/api/discussions?page&#91;limit]=9&amp;sort=-createdAt&amp;include=user,tags
</code></pre>



<p>The response is <strong>nested and complex</strong>, so we will simplify it in Laravel.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 2: Configure Flarum in Laravel</h2>



<p>Add Flarum configuration in <code>config/services.php</code>:</p>



<pre class="wp-block-code"><code>'flarum' =&gt; &#91;
    'base_url' =&gt; env('FLARUM_BASE_URL'),
    'api_token' =&gt; env('FLARUM_API_TOKEN'), // optional
],
</code></pre>



<p>Add values in <code>.env</code>:</p>



<pre class="wp-block-code"><code>FLARUM_BASE_URL=https://community.example.com
FLARUM_API_TOKEN=
</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>If discussions are public, API token is not required.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 3: Create a Laravel Proxy Route</h2>



<p>Create a route that your frontend will call instead of calling Flarum directly.</p>



<pre class="wp-block-code"><code>Route::get('/flarum/discussions', &#91;FlarumController::class, 'discussions'])
    -&gt;name('flarum.discussions');
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 4: Fetch and Normalize Flarum Data (Controller)</h2>



<p>Create a controller that:</p>



<ul class="wp-block-list">
<li>Calls Flarum API</li>



<li>Extracts only required fields</li>



<li>Returns clean JSON</li>



<li>Caches the response</li>
</ul>



<pre class="wp-block-code"><code>class FlarumController extends Controller
{
    public function discussions(Request $request)
    {
        $limit = min((int) $request-&gt;limit ?: 9, 12);

        return Cache::remember("flarum_discussions_$limit", now()-&gt;addMinutes(5), function () use ($limit) {

            $base = rtrim(config('services.flarum.base_url'), '/');

            $response = Http::acceptJson()
                -&gt;get($base . '/api/discussions', &#91;
                    'page' =&gt; &#91;'limit' =&gt; $limit],
                    'sort' =&gt; '-createdAt',
                    'include' =&gt; 'user,tags',
                ]);

            if (!$response-&gt;ok()) {
                return &#91;'success' =&gt; false, 'items' =&gt; &#91;]];
            }

            $json = $response-&gt;json();
            $included = collect($json&#91;'included'] ?? &#91;]);

            $users = $included-&gt;where('type', 'users')-&gt;keyBy('id');
            $tags  = $included-&gt;where('type', 'tags')-&gt;keyBy('id');

            $items = &#91;];

            foreach ($json&#91;'data'] as $d) {
                $authorId = data_get($d, 'relationships.user.data.id');
                $author   = $users&#91;$authorId]&#91;'attributes'] ?? &#91;];

                $items&#91;] = &#91;
                    'title' =&gt; $d&#91;'attributes']&#91;'title'],
                    'link'  =&gt; $base.'/d/'.$d&#91;'attributes']&#91;'slug'],
                    'created_at' =&gt; $d&#91;'attributes']&#91;'createdAt'],
                    'reply_count' =&gt; $d&#91;'attributes']&#91;'replyCount'],
                    'author' =&gt; $author&#91;'displayName'] ?? $author&#91;'username'],
                ];
            }

            return &#91;'success' =&gt; true, 'items' =&gt; $items];
        });
    }
}
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 5: Create Blade Section for Discussions</h2>



<p>Add a section similar to WordPress blog cards:</p>



<pre class="wp-block-code"><code>&lt;div id="flarum-discussions" style="display:none;"&gt;
    &lt;div id="flarum-loading"&gt;Loading discussions...&lt;/div&gt;
    &lt;div id="flarum-grid"&gt;&lt;/div&gt;
&lt;/div&gt;
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 6: Fetch Discussions Using JavaScript</h2>



<p>Now fetch discussions from <strong>your Laravel route</strong>, not from Flarum directly.</p>



<pre class="wp-block-code"><code>&lt;script&gt;
document.addEventListener("DOMContentLoaded", async () =&gt; {

  const section = document.getElementById("flarum-discussions");
  const loading = document.getElementById("flarum-loading");
  const grid    = document.getElementById("flarum-grid");

  section.style.display = "block";

  try {
    const res = await fetch("/flarum/discussions?limit=9");
    const data = await res.json();

    if (!data.success || !data.items.length) throw "No data";

    let html = "";
    data.items.forEach(d =&gt; {
      html += `
        &lt;div class="discussion-card"&gt;
          &lt;a href="${d.link}" target="_blank"&gt;
            &lt;h5&gt;${d.title}&lt;/h5&gt;
            &lt;p&gt;By ${d.author} • ${d.reply_count} replies&lt;/p&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      `;
    });

    grid.innerHTML = html;
    loading.style.display = "none";

  } catch (e) {
    section.style.display = "none";
  }
});
&lt;/script&gt;
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 7: Fail-Safe Handling (Very Important)</h2>



<p>If:</p>



<ul class="wp-block-list">
<li>Flarum is down</li>



<li>API fails</li>



<li>Network error occurs</li>
</ul>



<p>👉 The entire section hides automatically, so <strong>your homepage never breaks</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Final Architecture Overview</h2>



<pre class="wp-block-code"><code>Frontend JS
    ↓
Laravel Proxy Route
    ↓
Flarum JSON API
    ↓
Laravel Normalization + Cache
    ↓
Clean JSON to Frontend
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Conclusion</h2>



<p>If you want to show <strong>Flarum discussions on a Laravel website</strong> using the <strong>same concept as WordPress blog fetch</strong>, the <strong>Laravel backend proxy approach</strong> is the most professional and production-ready solution.</p>



<p>It ensures:</p>



<ul class="wp-block-list">
<li>Better performance</li>



<li>Strong security</li>



<li>Clean UI rendering</li>



<li>No CORS headaches</li>



<li>Scalable architecture</li>
</ul>



<p>This pattern works perfectly for:</p>



<ul class="wp-block-list">
<li>Communities</li>



<li>SaaS dashboards</li>



<li>Blogs + forums combo</li>



<li>Multi-platform content sites</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>
<p>The post <a href="https://www.aiuniverse.xyz/how-to-show-flarum-discussions-on-a-laravel-website/">How to Show Flarum Discussions on a Laravel Website</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/how-to-show-flarum-discussions-on-a-laravel-website/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Fixing SMTP 535 Authentication Error in Laravel with AWS SES (Step-by-Step Guide)</title>
		<link>https://www.aiuniverse.xyz/fixing-smtp-535-authentication-error-in-laravel-with-aws-ses-step-by-step-guide/</link>
					<comments>https://www.aiuniverse.xyz/fixing-smtp-535-authentication-error-in-laravel-with-aws-ses-step-by-step-guide/#respond</comments>
		
		<dc:creator><![CDATA[Maruti Kr.]]></dc:creator>
		<pubDate>Thu, 22 Jan 2026 11:24:09 +0000</pubDate>
				<category><![CDATA[laravel]]></category>
		<category><![CDATA[Authentication credentials invalid SMTP]]></category>
		<category><![CDATA[AWS SES email sending error]]></category>
		<category><![CDATA[AWS SES Laravel setup]]></category>
		<category><![CDATA[AWS SES SMTP credentials]]></category>
		<category><![CDATA[AWS SES SMTP error]]></category>
		<category><![CDATA[Email not sending Laravel AWS]]></category>
		<category><![CDATA[Fix SMTP authentication error Laravel]]></category>
		<category><![CDATA[Laravel email configuration AWS SES]]></category>
		<category><![CDATA[Laravel mailer SMTP issue]]></category>
		<category><![CDATA[Laravel SMTP 535 error]]></category>
		<category><![CDATA[Laravel SMTP login failed]]></category>
		<category><![CDATA[SES SMTP configuration Laravel]]></category>
		<category><![CDATA[SMTP 535 authentication failed]]></category>
		<category><![CDATA[SMTP credentials invalid error]]></category>
		<guid isPermaLink="false">https://www.aiuniverse.xyz/?p=21739</guid>

					<description><![CDATA[<p>Sending emails is a critical feature for most Laravel applications. Whether it’s account verification, password reset, or notifications, email delivery must work reliably. However, many developers face the following error when configuring AWS SES with Laravel: SMTP Error 535: Authentication Credentials Invalid This article explains why this error occurs, what it actually means, and how <a class="read-more-link" href="https://www.aiuniverse.xyz/fixing-smtp-535-authentication-error-in-laravel-with-aws-ses-step-by-step-guide/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/fixing-smtp-535-authentication-error-in-laravel-with-aws-ses-step-by-step-guide/">Fixing SMTP 535 Authentication Error in Laravel with AWS SES (Step-by-Step Guide)</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="683" src="https://www.aiuniverse.xyz/wp-content/uploads/2026/01/ChatGPT-Image-Jan-22-2026-04_53_16-PM-1024x683.png" alt="" class="wp-image-21740" srcset="https://www.aiuniverse.xyz/wp-content/uploads/2026/01/ChatGPT-Image-Jan-22-2026-04_53_16-PM-1024x683.png 1024w, https://www.aiuniverse.xyz/wp-content/uploads/2026/01/ChatGPT-Image-Jan-22-2026-04_53_16-PM-300x200.png 300w, https://www.aiuniverse.xyz/wp-content/uploads/2026/01/ChatGPT-Image-Jan-22-2026-04_53_16-PM-768x512.png 768w, https://www.aiuniverse.xyz/wp-content/uploads/2026/01/ChatGPT-Image-Jan-22-2026-04_53_16-PM.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Sending emails is a critical feature for most Laravel applications. Whether it’s account verification, password reset, or notifications, email delivery must work reliably.</p>



<p>However, many developers face the following error when configuring AWS SES with Laravel:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>SMTP Error 535: Authentication Credentials Invalid</strong></p>
</blockquote>



<p>This article explains <strong>why this error occurs</strong>, <strong>what it actually means</strong>, and <strong>how to fix it permanently</strong> in Laravel.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Understanding the Error</h2>



<p>The full error usually looks like this:</p>



<pre class="wp-block-code"><code>Failed to authenticate on SMTP server using authenticators LOGIN, PLAIN.
Expected response code 235 but got 535.
Authentication Credentials Invalid.
</code></pre>



<h3 class="wp-block-heading">What does this mean?</h3>



<ul class="wp-block-list">
<li>Laravel successfully connects to the SMTP server</li>



<li>The SMTP server <strong>rejects the username or password</strong></li>



<li>Authentication fails before sending any email</li>
</ul>



<p>This is <strong>not</strong> a Laravel bug.<br>This is <strong>almost always a configuration issue</strong> with AWS SES SMTP credentials.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Why This Error Happens (Most Common Reasons)</h2>



<h3 class="wp-block-heading">1. Using IAM Access Keys Instead of SMTP Credentials</h3>



<p>AWS SES <strong>does not accept normal IAM Access Key &amp; Secret Key</strong> directly for SMTP authentication.</p>



<p>Many developers mistakenly copy:</p>



<ul class="wp-block-list">
<li><code>AWS_ACCESS_KEY_ID</code></li>



<li><code>AWS_SECRET_ACCESS_KEY</code></li>
</ul>



<p>and paste them into:</p>



<pre class="wp-block-code"><code>MAIL_USERNAME
MAIL_PASSWORD
</code></pre>



<p>❌ This will <strong>always fail</strong> with a 535 error.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">2. Wrong AWS SES Region</h3>



<p>AWS SES is region-specific.</p>



<p>If your SES is created in:</p>



<ul class="wp-block-list">
<li><code>ap-south-1</code> → you must use<br><code>email-smtp.ap-south-1.amazonaws.com</code></li>
</ul>



<p>Using the wrong region host causes authentication failure.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">3. Special Characters in SMTP Password</h3>



<p>SES SMTP passwords often contain:</p>



<ul class="wp-block-list">
<li><code>+</code></li>



<li><code>/</code></li>



<li><code>=</code></li>
</ul>



<p>If the password is <strong>not wrapped in quotes</strong>, Laravel may parse it incorrectly.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">4. Laravel Config Cache Still Using Old Values</h3>



<p>Laravel caches configuration aggressively.<br>Even after fixing <code>.env</code>, Laravel may still use old credentials.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Correct Way to Configure AWS SES SMTP in Laravel</h2>



<h3 class="wp-block-heading">Step 1: Generate AWS SES SMTP Credentials</h3>



<p>Do <strong>not</strong> use IAM access keys.</p>



<ol class="wp-block-list">
<li>Go to <strong>AWS Console</strong></li>



<li>Open <strong>Simple Email Service (SES)</strong></li>



<li>Navigate to <strong>SMTP Settings</strong></li>



<li>Click <strong>Create SMTP Credentials</strong></li>



<li>AWS will generate:
<ul class="wp-block-list">
<li>SMTP Username</li>



<li>SMTP Password</li>
</ul>
</li>
</ol>



<p>Save them securely.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Step 2: Update Laravel <code>.env</code> File</h3>



<pre class="wp-block-code"><code>MAIL_MAILER=smtp
MAIL_HOST=email-smtp.ap-south-1.amazonaws.com
MAIL_PORT=587
MAIL_USERNAME=YOUR_SES_SMTP_USERNAME
MAIL_PASSWORD="YOUR_SES_SMTP_PASSWORD"
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=contact@yourdomain.com
MAIL_FROM_NAME="Your Website Name"
</code></pre>



<h3 class="wp-block-heading">Important Notes</h3>



<ul class="wp-block-list">
<li>Always wrap <code>MAIL_PASSWORD</code> in <strong>double quotes</strong></li>



<li>Ensure <code>MAIL_HOST</code> matches your SES region</li>



<li>No extra spaces before or after values</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Step 3: Clear Laravel Cache (Very Important)</h3>



<p>Run these commands on your server:</p>



<pre class="wp-block-code"><code>php artisan config:clear
php artisan cache:clear
php artisan config:cache
php artisan route:clear
</code></pre>



<p>If you are using queues:</p>



<pre class="wp-block-code"><code>php artisan queue:restart
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Verifying Email or Domain in AWS SES</h2>



<p>AWS SES requires verification.</p>



<p>You must verify <strong>either</strong>:</p>



<ul class="wp-block-list">
<li>The sender email address<br><strong>OR</strong></li>



<li>The entire domain</li>
</ul>



<p>If not verified:</p>



<ul class="wp-block-list">
<li>Emails will fail later with different errors (not 535)</li>



<li>In sandbox mode, you can send emails <strong>only to verified addresses</strong></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Common Mistakes to Avoid</h2>



<ul class="wp-block-list">
<li>Using IAM keys instead of SMTP credentials</li>



<li>Forgetting to clear Laravel config cache</li>



<li>Using wrong SES region hostname</li>



<li>Leaving <code>APP_DEBUG=true</code> in production</li>



<li>Exposing SMTP credentials in public error pages</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Production Security Best Practice</h2>



<p>Always disable debug mode in production:</p>



<pre class="wp-block-code"><code>APP_ENV=production
APP_DEBUG=false
</code></pre>



<p>This prevents:</p>



<ul class="wp-block-list">
<li>Credential leaks</li>



<li>Stack trace exposure</li>



<li>Security risks</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Final Checklist</h2>



<p>Before testing again, confirm:</p>



<ul class="wp-block-list">
<li>SMTP credentials are generated from AWS SES</li>



<li>Correct region SMTP host is used</li>



<li><code>.env</code> password is quoted</li>



<li>Laravel cache is cleared</li>



<li>Sender email/domain is verified in SES</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Conclusion</h2>



<p>The <strong>SMTP 535 Authentication Error</strong> in Laravel is not a framework issue.<br>It’s a <strong>credential mismatch caused by incorrect AWS SES configuration</strong>.</p>



<p>Once you:</p>



<ul class="wp-block-list">
<li>Use proper SES SMTP credentials</li>



<li>Match the correct region</li>



<li>Clear Laravel cache</li>
</ul>



<p>the issue is resolved permanently.</p>
<p>The post <a href="https://www.aiuniverse.xyz/fixing-smtp-535-authentication-error-in-laravel-with-aws-ses-step-by-step-guide/">Fixing SMTP 535 Authentication Error in Laravel with AWS SES (Step-by-Step Guide)</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/fixing-smtp-535-authentication-error-in-laravel-with-aws-ses-step-by-step-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Step-by-Step Guide to Set Up Google Console API for “Sign in with Google”</title>
		<link>https://www.aiuniverse.xyz/google-console-api-sign-in-with-google-setup/</link>
					<comments>https://www.aiuniverse.xyz/google-console-api-sign-in-with-google-setup/#respond</comments>
		
		<dc:creator><![CDATA[Maruti Kr.]]></dc:creator>
		<pubDate>Tue, 20 Jan 2026 09:35:23 +0000</pubDate>
				<category><![CDATA[laravel]]></category>
		<category><![CDATA[Android Google Sign-In]]></category>
		<category><![CDATA[Flutter Google Sign-In setup]]></category>
		<category><![CDATA[Google API credentials setup]]></category>
		<category><![CDATA[Google authentication API]]></category>
		<category><![CDATA[Google Cloud Console OAuth]]></category>
		<category><![CDATA[Google Console API setup]]></category>
		<category><![CDATA[Google login for apps]]></category>
		<category><![CDATA[Google login integration]]></category>
		<category><![CDATA[Google OAuth 2.0 configuration]]></category>
		<category><![CDATA[Google OAuth client ID]]></category>
		<category><![CDATA[Google Sign-In setup]]></category>
		<category><![CDATA[OAuth consent screen Google]]></category>
		<category><![CDATA[Sign in with Google guide]]></category>
		<category><![CDATA[Web Google OAuth login]]></category>
		<guid isPermaLink="false">https://www.aiuniverse.xyz/?p=21735</guid>

					<description><![CDATA[<p>Google Sign-In is one of the most trusted and widely used authentication methods today. Whether you are building a mobile app, web application, or backend system, integrating Google Login improves user experience, security, and trust. In this guide, you’ll learn how to configure Google Cloud Console step by step to enable “Sign in with Google” <a class="read-more-link" href="https://www.aiuniverse.xyz/google-console-api-sign-in-with-google-setup/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/google-console-api-sign-in-with-google-setup/">Step-by-Step Guide to Set Up Google Console API for “Sign in with Google”</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://www.aiuniverse.xyz/wp-content/uploads/2026/01/ChatGPT-Image-Jan-20-2026-03_03_19-PM-1024x683.png" alt="" class="wp-image-21736" srcset="https://www.aiuniverse.xyz/wp-content/uploads/2026/01/ChatGPT-Image-Jan-20-2026-03_03_19-PM-1024x683.png 1024w, https://www.aiuniverse.xyz/wp-content/uploads/2026/01/ChatGPT-Image-Jan-20-2026-03_03_19-PM-300x200.png 300w, https://www.aiuniverse.xyz/wp-content/uploads/2026/01/ChatGPT-Image-Jan-20-2026-03_03_19-PM-768x512.png 768w, https://www.aiuniverse.xyz/wp-content/uploads/2026/01/ChatGPT-Image-Jan-20-2026-03_03_19-PM.png 1536w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Google Sign-In is one of the most trusted and widely used authentication methods today. Whether you are building a <strong>mobile app, web application, or backend system</strong>, integrating Google Login improves user experience, security, and trust.</p>



<p>In this guide, you’ll learn <strong>how to configure Google Cloud Console step by step</strong> to enable <strong>“Sign in with Google” (OAuth 2.0)</strong> correctly, without common mistakes.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">What Is Google Sign-In (OAuth 2.0)?</h2>



<p>Google Sign-In uses <strong>OAuth 2.0</strong>, a secure authorization framework that allows users to authenticate using their Google account <strong>without sharing passwords</strong>.</p>



<p>With Google OAuth:</p>



<ul class="wp-block-list">
<li>Users log in faster</li>



<li>Developers avoid handling passwords</li>



<li>Security and trust are handled by Google</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Prerequisites Before You Start</h2>



<p>Before setting up Google Console, make sure you have:</p>



<ul class="wp-block-list">
<li>A <strong>Google account</strong></li>



<li>Your <strong>app details</strong> (package name / domain / bundle ID)</li>



<li>Backend callback URL (if applicable)</li>



<li>Android SHA-1 keys (for mobile apps)</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 1: Create or Select a Google Cloud Project</h2>



<ol class="wp-block-list">
<li>Visit <strong>Google Cloud Console</strong></li>



<li>Click <strong>Select a project</strong> (top bar)</li>



<li>Choose <strong>New Project</strong></li>



<li>Enter a project name (example: <code>MyApp Google Login</code>)</li>



<li>Click <strong>Create</strong></li>



<li>Ensure the project is selected</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 2: Configure OAuth Consent Screen (Mandatory)</h2>



<p>The OAuth consent screen defines <strong>how your app appears to users</strong> during login.</p>



<ol class="wp-block-list">
<li>Go to <strong>APIs &amp; Services → OAuth consent screen</strong></li>



<li>Select <strong>User Type</strong>
<ul class="wp-block-list">
<li><strong>External</strong> → Public apps</li>



<li><strong>Internal</strong> → Google Workspace only</li>
</ul>
</li>



<li>Fill required details:
<ul class="wp-block-list">
<li>App name</li>



<li>User support email</li>



<li>Developer contact email</li>
</ul>
</li>



<li>App domain (optional but recommended)</li>



<li>Add scopes:
<ul class="wp-block-list">
<li><code>openid</code></li>



<li><code>email</code></li>



<li><code>profile</code></li>
</ul>
</li>



<li>Add <strong>Test users</strong> if app is in testing</li>



<li>Save and continue</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 3: Enable Required APIs (Optional but Recommended)</h2>



<ol class="wp-block-list">
<li>Navigate to <strong>APIs &amp; Services → Library</strong></li>



<li>Search and enable:
<ul class="wp-block-list">
<li><strong>Google Identity Services</strong></li>



<li><strong>People API</strong> (only if profile data is needed)</li>
</ul>
</li>



<li>Click <strong>Enable</strong></li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 4: Create OAuth Client ID (Core Configuration)</h2>



<p>Go to <strong>APIs &amp; Services → Credentials → Create Credentials → OAuth Client ID</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">A) Android App Configuration</h3>



<ol class="wp-block-list">
<li>Choose <strong>Application Type: Android</strong></li>



<li>Enter:
<ul class="wp-block-list">
<li>App name</li>



<li><strong>Package name</strong> (must match exactly)</li>



<li><strong>SHA-1 fingerprint</strong></li>
</ul>
</li>



<li>Click <strong>Create</strong></li>
</ol>



<h4 class="wp-block-heading">How to Generate SHA-1</h4>



<ul class="wp-block-list">
<li><strong>Debug SHA-1</strong>:
<ul class="wp-block-list">
<li>Android Studio → Gradle → signingReport</li>
</ul>
</li>



<li><strong>Production SHA-1</strong>:
<ul class="wp-block-list">
<li>Google Play Console → App Integrity → App signing key</li>
</ul>
</li>
</ul>



<p>⚠️ Both <strong>debug and release SHA-1</strong> must be added.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">B) Web Application Configuration</h3>



<ol class="wp-block-list">
<li>Choose <strong>Application Type: Web Application</strong></li>



<li>Add:
<ul class="wp-block-list">
<li>Authorized JavaScript origins<br>Example: <code>https://yourdomain.com</code></li>



<li>Authorized redirect URIs<br>Example: <code>https://yourdomain.com/auth/google/callback</code></li>
</ul>
</li>



<li>Click <strong>Create</strong></li>



<li>Copy:
<ul class="wp-block-list">
<li>Client ID</li>



<li>Client Secret</li>
</ul>
</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">C) iOS Application Configuration</h3>



<ol class="wp-block-list">
<li>Choose <strong>Application Type: iOS</strong></li>



<li>Enter:
<ul class="wp-block-list">
<li>Bundle ID</li>
</ul>
</li>



<li>Create the credential</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 5: Configure Redirect URIs Correctly</h2>



<p>Redirect URIs must match <strong>exactly</strong>, including:</p>



<ul class="wp-block-list">
<li>HTTPS</li>



<li>Trailing slashes</li>



<li>Subdomains</li>
</ul>



<p>Incorrect redirect URI causes:</p>



<ul class="wp-block-list">
<li><code>redirect_uri_mismatch</code> error</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 6: Publish OAuth Consent Screen</h2>



<p>To allow public users:</p>



<ol class="wp-block-list">
<li>Go to <strong>OAuth consent screen</strong></li>



<li>Change status from <strong>Testing</strong> to <strong>In production</strong></li>



<li>Basic scopes (<code>email</code>, <code>profile</code>) usually <strong>do not require verification</strong></li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 7: Integrate Credentials into Your Application</h2>



<p>Depending on your setup:</p>



<ul class="wp-block-list">
<li>Android / Flutter → Package name + SHA-1</li>



<li>Web / Backend → Client ID &amp; Secret</li>



<li>Firebase Auth → Add SHA-1 + download <code>google-services.json</code></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step 8: Common Issues &amp; Fixes Checklist</h2>



<p>✔ OAuth consent screen saved<br>✔ Correct Google Cloud project selected<br>✔ Correct package name / domain<br>✔ Debug &amp; release SHA-1 added<br>✔ Test users added (if testing)<br>✔ Redirect URI exactly matches<br>✔ App published for production use</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Best Practices for Google Sign-In</h2>



<ul class="wp-block-list">
<li>Use <strong>minimal scopes</strong></li>



<li>Never expose Client Secret in frontend code</li>



<li>Verify ID tokens on backend</li>



<li>Keep OAuth credentials environment-specific</li>



<li>Regularly audit credentials</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Setting up Google Sign-In through Google Cloud Console is straightforward <strong>when done correctly</strong>. Most failures happen due to <strong>SHA-1 mismatch, incorrect redirect URIs, or missing consent screen configuration</strong>.</p>



<p>Follow this guide step by step, and your Google Login integration will work smoothly across <strong>Android, iOS, Web, and backend systems</strong>.</p>
<p>The post <a href="https://www.aiuniverse.xyz/google-console-api-sign-in-with-google-setup/">Step-by-Step Guide to Set Up Google Console API for “Sign in with Google”</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/google-console-api-sign-in-with-google-setup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Run an HTML Website Alongside a Laravel Project on the Same Server</title>
		<link>https://www.aiuniverse.xyz/how-to-run-an-html-website-alongside-a-laravel-project-on-the-same-server/</link>
					<comments>https://www.aiuniverse.xyz/how-to-run-an-html-website-alongside-a-laravel-project-on-the-same-server/#respond</comments>
		
		<dc:creator><![CDATA[Maruti Kr.]]></dc:creator>
		<pubDate>Mon, 12 Jan 2026 06:19:33 +0000</pubDate>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[laravel]]></category>
		<category><![CDATA[host HTML and Laravel together]]></category>
		<category><![CDATA[Laravel and HTML same domain]]></category>
		<category><![CDATA[Laravel HTML subfolder]]></category>
		<category><![CDATA[Laravel HTML website integration]]></category>
		<category><![CDATA[Laravel project with HTML pages]]></category>
		<category><![CDATA[Laravel public folder static HTML]]></category>
		<category><![CDATA[Laravel static site setup]]></category>
		<category><![CDATA[Laravel website structure]]></category>
		<category><![CDATA[Laravel with static website]]></category>
		<category><![CDATA[run HTML with Laravel]]></category>
		<category><![CDATA[serve HTML files in Laravel]]></category>
		<guid isPermaLink="false">https://www.aiuniverse.xyz/?p=21679</guid>

					<description><![CDATA[<p>Running a Laravel application is common for dynamic web platforms, dashboards, and APIs. However, many businesses and developers also want to run a simple HTML website on the same server—often for landing pages, marketing content, or static informational pages. The good news is that Laravel and a pure HTML website can run together smoothly on <a class="read-more-link" href="https://www.aiuniverse.xyz/how-to-run-an-html-website-alongside-a-laravel-project-on-the-same-server/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/how-to-run-an-html-website-alongside-a-laravel-project-on-the-same-server/">How to Run an HTML Website Alongside a Laravel Project on the Same Server</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://www.aiuniverse.xyz/wp-content/uploads/2026/01/ChatGPT-Image-Jan-12-2026-11_48_40-AM-1024x683.png" alt="" class="wp-image-21680" srcset="https://www.aiuniverse.xyz/wp-content/uploads/2026/01/ChatGPT-Image-Jan-12-2026-11_48_40-AM-1024x683.png 1024w, https://www.aiuniverse.xyz/wp-content/uploads/2026/01/ChatGPT-Image-Jan-12-2026-11_48_40-AM-300x200.png 300w, https://www.aiuniverse.xyz/wp-content/uploads/2026/01/ChatGPT-Image-Jan-12-2026-11_48_40-AM-768x512.png 768w, https://www.aiuniverse.xyz/wp-content/uploads/2026/01/ChatGPT-Image-Jan-12-2026-11_48_40-AM.png 1536w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Running a Laravel application is common for dynamic web platforms, dashboards, and APIs. However, many businesses and developers also want to run a <strong>simple HTML website</strong> on the same server—often for landing pages, marketing content, or static informational pages.</p>



<p>The good news is that <strong>Laravel and a pure HTML website can run together smoothly on the same domain or server</strong>, if structured correctly.</p>



<p>In this blog, we’ll explain <strong>why this setup is useful</strong>, the <strong>best ways to implement it</strong>, and <strong>step-by-step methods</strong> you can follow safely in production.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Why Run an HTML Site Alongside Laravel?</h2>



<p>There are several practical reasons developers choose this approach:</p>



<ul class="wp-block-list">
<li>Marketing or SEO pages are easier to manage in HTML</li>



<li>Faster loading for static content</li>



<li>Reduced server overhead for simple pages</li>



<li>Clean separation between application logic and content</li>



<li>Ability to update the website without touching Laravel code</li>
</ul>



<p>This setup is especially useful when <strong>Laravel is already running</strong>, and you want to add a lightweight website without rebuilding everything inside Blade templates.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Understanding Laravel’s Public Folder (Very Important)</h2>



<p>Laravel serves all public web traffic from the <strong><code>public</code> directory</strong>.<br>This means:</p>



<ul class="wp-block-list">
<li>Any <strong>HTML, CSS, JS, or image file inside <code>public</code></strong> can be accessed directly</li>



<li>Laravel routes only handle requests <strong>not matching a physical file</strong></li>
</ul>



<p>This behavior allows us to safely place a static HTML site alongside Laravel.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Method 1: Run HTML Website Inside Laravel’s Public Folder (Recommended)</h2>



<p>This is the <strong>simplest and safest method</strong> when Laravel is already live.</p>



<h3 class="wp-block-heading">Folder Structure Example</h3>



<pre class="wp-block-code"><code>laravel-project/
├── app/
├── routes/
├── resources/
├── public/
│   ├── index.php        (Laravel entry point)
│   ├── assets/
│   └── html-site/
│       ├── index.html
│       ├── about.html
│       ├── css/
│       ├── js/
│       └── images/
</code></pre>



<h3 class="wp-block-heading">How It Works</h3>



<ul class="wp-block-list">
<li>Laravel continues running normally</li>



<li>Static HTML files are served directly</li>



<li>No route conflict with Laravel</li>



<li>No performance impact</li>
</ul>



<h3 class="wp-block-heading">Access URLs</h3>



<pre class="wp-block-code"><code>https:&#47;&#47;yourdomain.com/html-site/
https://yourdomain.com/html-site/about.html
</code></pre>



<h3 class="wp-block-heading">Important Notes</h3>



<ul class="wp-block-list">
<li>Do <strong>not</strong> create Laravel routes for this folder</li>



<li>Laravel automatically skips routing if a file exists</li>



<li>Keep HTML assets fully static (no PHP files)</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Method 2: HTML as Main Site, Laravel in a Subfolder</h2>



<p>Use this method when:</p>



<ul class="wp-block-list">
<li>HTML website is the <strong>main homepage</strong></li>



<li>Laravel is used as an <strong>application or admin panel</strong></li>
</ul>



<h3 class="wp-block-heading">Folder Structure</h3>



<pre class="wp-block-code"><code>public_html/
├── index.html          (Main website)
├── css/
├── js/
├── images/
└── app/
    └── laravel/
        └── public/
            └── index.php
</code></pre>



<h3 class="wp-block-heading">Access URLs</h3>



<pre class="wp-block-code"><code>https://yourdomain.com/        → HTML site
https://yourdomain.com/app/    → Laravel app
</code></pre>



<h3 class="wp-block-heading">When to Use This</h3>



<ul class="wp-block-list">
<li>Marketing website is primary</li>



<li>Laravel is secondary (dashboard, CRM, portal)</li>



<li>Shared hosting or cPanel setup</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Method 3: HTML on Main Domain, Laravel on Subdomain (Best for Production)</h2>



<p>This is the <strong>most professional and scalable approach</strong>.</p>



<h3 class="wp-block-heading">Example Setup</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>URL</th><th>Purpose</th></tr></thead><tbody><tr><td>yoursite.com</td><td>HTML website</td></tr><tr><td>app.yoursite.com</td><td>Laravel application</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Benefits</h3>



<ul class="wp-block-list">
<li>No routing conflicts</li>



<li>Better SEO separation</li>



<li>Easier scaling and maintenance</li>



<li>Clean architecture</li>
</ul>



<h3 class="wp-block-heading">Recommended For</h3>



<ul class="wp-block-list">
<li>Growing platforms</li>



<li>SaaS products</li>



<li>Business websites with dashboards</li>



<li>Long-term projects</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Common Mistakes to Avoid</h2>



<h3 class="wp-block-heading">1. Mixing Laravel Routes with HTML Files</h3>



<p>Never define Laravel routes for static HTML folders.</p>



<h3 class="wp-block-heading">2. Wrong Asset Paths</h3>



<p>Use <strong>absolute paths</strong> in HTML files:</p>



<pre class="wp-block-code"><code>&lt;link rel="stylesheet" href="/html-site/css/style.css"&gt;
</code></pre>



<h3 class="wp-block-heading">3. Exposing Sensitive Files</h3>



<p>Do not place:</p>



<ul class="wp-block-list">
<li><code>.env</code></li>



<li>PHP scripts</li>



<li>configuration files<br>inside the HTML folder.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Security Best Practices</h2>



<ul class="wp-block-list">
<li>Keep HTML folders <strong>static only</strong></li>



<li>Laravel <code>.htaccess</code> should remain untouched</li>



<li>Do not allow uploads inside HTML directories</li>



<li>Use correct file permissions</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Which Method Should You Choose?</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Use Case</th><th>Best Method</th></tr></thead><tbody><tr><td>Laravel already running</td><td>Method 1</td></tr><tr><td>HTML homepage + Laravel app</td><td>Method 2</td></tr><tr><td>Production-grade setup</td><td>Method 3</td></tr></tbody></table></figure>



<p>👉 <strong>If Laravel is already live</strong>, Method 1 is the fastest and safest solution.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Final Thoughts</h2>



<p>Running an HTML website alongside a Laravel project is <strong>not only possible but also a best practice</strong> in many real-world scenarios. The key is understanding how Laravel serves files and keeping a clean folder structure.</p>



<p>Whether you’re adding landing pages, marketing content, or a separate static site, the right setup ensures:</p>



<ul class="wp-block-list">
<li>Better performance</li>



<li>Cleaner codebase</li>



<li>Easier maintenance</li>



<li>No routing conflicts</li>
</ul>



<p>Choose the method that fits your project size and future plans—and keep Laravel and HTML working together smoothly.</p>
<p>The post <a href="https://www.aiuniverse.xyz/how-to-run-an-html-website-alongside-a-laravel-project-on-the-same-server/">How to Run an HTML Website Alongside a Laravel Project on the Same Server</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/how-to-run-an-html-website-alongside-a-laravel-project-on-the-same-server/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
