<?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>github Archives - وب دیزاین</title>
	<atom:link href="https://wd7.ir/tag/github/feed" rel="self" type="application/rss+xml" />
	<link>https://wd7.ir/tag/github</link>
	<description>Web Design</description>
	<lastBuildDate>Mon, 08 Jan 2024 21:46:16 +0000</lastBuildDate>
	<language>fa-IR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>
	<item>
		<title>اتصال گیت به سی پنل و آپدیت خودکار از گیت</title>
		<link>https://wd7.ir/autoupdate-php-project-from-git.html</link>
					<comments>https://wd7.ir/autoupdate-php-project-from-git.html#respond</comments>
		
		<dc:creator><![CDATA[شاملو]]></dc:creator>
		<pubDate>Tue, 12 Apr 2022 12:26:22 +0000</pubDate>
				<category><![CDATA[برنامه‌نویسی]]></category>
		<category><![CDATA[هاست]]></category>
		<category><![CDATA[cpanel]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[ssh]]></category>
		<guid isPermaLink="false">https://wd7.ir/?p=2887</guid>

					<description><![CDATA[<p>بسم الله الرحمن الرحیم یکی از ابزارهای توسعه دهنده ها git هست که باهاش میتونیم یک نسخه از تغییرات رو داشته باشیم و همچنین با یک تیم روی یک پروژه کار کنیم و git حواسش به تغییرات و تداخل ها و تاریخچه تغییرات باشه. از سرویس های معروف ارائه دهنده گیت github هست،که اینجا از [&#8230;]</p>
<p>The post <a href="https://wd7.ir/autoupdate-php-project-from-git.html">اتصال گیت به سی پنل و آپدیت خودکار از گیت</a> appeared first on <a href="https://wd7.ir">وب دیزاین</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>بسم الله الرحمن الرحیم</p>



<p>یکی از ابزارهای توسعه دهنده ها git هست که باهاش میتونیم یک نسخه از تغییرات رو داشته باشیم و همچنین با یک تیم روی یک پروژه کار کنیم و git حواسش به تغییرات و تداخل ها و تاریخچه تغییرات باشه.</p>



<p>از سرویس های معروف ارائه دهنده گیت github هست،که اینجا از این سرویس استفاده می کنیم.</p>



<h2 class="wp-block-heading">توسعه دهنده ها به چه صورت فایل جدید خود را به سرور منتقل می کنند؟</h2>



<p>خب توسعه دهنده ی وب وقتی تغییرات جدیدی در کدش داده میشه باید روی سایت هم اعمال کنه.که معمولا این کار رو به صورت دستی و با ftp انجام میدن،اما این روش بصورت دستی و زمان بر هست.چه بهتر که این روش رو خودکار کنیم و اون هم چه بهتر که خودش از گیت بخونه و بروز کنه.</p>



<p>یکی از پنل های معروف هاستینگ سی پنل هست.گرچه از هر هاستینگ دیگه ای که از cron و ssh پشتیبانی میکنه هم برای این آموزش می تونید استفاده کنید.</p>



<p>خب برای این کار اول باید به ssh و cron هاست دسترسی داشته باشیم.اولی برای اجرای دستورات git و ساخت کلید  دومی برای اجرای خودکار این دستورات.</p>



<h2 class="wp-block-heading">آموزش آپدیت خودکار کد توسط ssh از git</h2>



<p>ابتدا روی هاست سی پنل یک کلید با دستور زیر می سازیم،سوالات و فقط اینتر بزنید.به جای ایمیل هم ایمیلی که توی گیت ثبت کردید رو بدید:</p>



<pre class="wp-block-code"><code>ssh-keygen -t ed25519 -C "yourGitEmail@gmail.com"</code></pre>



<p>خب این برای شما کلیدتون رو میسازه.الان باید کلید رو بدیم به گیت تا هاست ما رو بشناسه و بهش اجازه دسترسی بده.اما کلیدها در کدوم مسیر ساخته شدن؟وقتی که دستور بالا رو میزنید و تمام میشه در انتها مسیر ذخیره سازی رو میگه،پس دقت کنید، به این صورت:</p>



<pre class="wp-block-code"><code>Your identification has been saved in /home/username/.ssh/id_ed25519
Your public key has been saved in <strong>/home/username/.ssh/id_ed25519.pub</strong></code></pre>



<p>خب محتوای کلید که این دومی باشه ( public key ) رو با دستور زیر می گیریم :</p>



<pre class="wp-block-code"><code>cat /home/username/.ssh/id_ed25519.pub</code></pre>



<p>خب اینجا باید بریم توی گیت و وارد حساب شده و به مسیر زیری بریم:</p>



<pre class="wp-block-code"><code>https:&#47;&#47;github.com/username/repo/settings/keys
</code></pre>



<p>به جای نام کاربری و ریپو مشخصات خودتون رو بزنید. یا وارد ریپوی خودتون بشید بعد از قسمت settings منویDeploy keys و بعد Add deploy key</p>



<p>اینجا یه عنوان می نویسیم. و در قسمت Key محتویات کلیدمون رو اضافه کرده و ذخیره می کنیم.</p>



<p>خب تا اینجا اتصال هاست به گیت انجام شده.حالا بریم یه دستور بزنیم که خودکار از مخزن گیت بفرسته روی هاست.</p>



<p>از سی پنل یه cronjobs جدید می سازیم با هر مدت زمانی که مد نظرتونه.</p>



<p>با دستور زیر مسیری که گیت نصبه رو پیدا می کنیم(اگر نبود باید نصب شه)؛</p>



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



<p>دقت کنید در cron باید میسر دقیق دستورات داده شه تا کار کنه.برای همین مسیر دقیق گیت رو از دستور بالا گرفتیم،که خروجی چیزی شبیه به این میشه:</p>



<pre class="wp-block-code"><code>$ which git
/usr/local/cpanel/3rdparty/lib/path-bin/git</code></pre>



<p>خب بریم توی پوشه ای که قراره کدها قرار بگیره:</p>



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



<p>خب الان مخزن رو کلون می کنیم روی هاست تا ببینیم اتصال درسته یا نه:</p>



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



<p>اگر پیام تایید key اومد اینتر و yes رو بزنید.اگر مخزن با موفقیت کلون شد همه چی درسته.</p>



<p>یادتون باشه اگر پروژه متعلقات composer  داره دستور composer update هم بزنید.</p>



<p>خب مسیری که پروژه کلون شده رو بر میداریم تا توی cron استفاده کنیم،که میشه این:</p>



<pre class="wp-block-code"><code>/home/username/your-project</code></pre>



<p>با توجه به مسیر بالا و مسیر گیت دستور ما میشه این:</p>



<pre class="wp-block-code"><code>cd /home/username/your-project &amp;&amp; /usr/local/cpanel/3rdparty/lib/path-bin/git reset --hard HEAD &amp;&amp; /usr/local/cpanel/3rdparty/lib/path-bin/git pull -q origin master </code></pre>



<p>این دستور رو توی cron وارد کنید و تمام!</p>



<p>راستی اگر پروژه شما لاراول هست با دستور زیر می تونید migrate هم خودکار کنید تا دیتابیس هم خودکار اکی شه:</p>



<pre class="wp-block-code"><code>cd /home/username/your-project &amp;&amp; /usr/local/cpanel/3rdparty/lib/path-bin/git reset --hard HEAD &amp;&amp; /usr/local/cpanel/3rdparty/lib/path-bin/git pull -q origin master &amp;&amp; /home/username/your-project/artisan migrate  

</code></pre>



<p>اگر با خطای ssh: connect to host github.com port 22: Connection timed out&#8217; error رو برو شدید از لینک زیر میتونید حلش کنید:</p>



<p><a href="https://gist.github.com/Tamal/1cc77f88ef3e900aeae65f0e5e504794" rel="nofollow">https://gist.github.com/Tamal/1cc77f88ef3e900aeae65f0e5e504794</a></p>
<p>The post <a href="https://wd7.ir/autoupdate-php-project-from-git.html">اتصال گیت به سی پنل و آپدیت خودکار از گیت</a> appeared first on <a href="https://wd7.ir">وب دیزاین</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wd7.ir/autoupdate-php-project-from-git.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
