<?xml version="1.0"?>
<rss version="2.0"><channel><title>DevOps: FreeBSD</title><link>https://academy.hsoub.com/devops/freebsd/?d=4</link><description>DevOps: FreeBSD</description><language>ar</language><item><title>&#x643;&#x64A;&#x641;&#x64A;&#x629; &#x62A;&#x62B;&#x628;&#x64A;&#x62A; Lighttpd &#x645;&#x639; MySQL &#x648; PHP &#x639;&#x644;&#x649; FreeBSD 11.0</title><link>https://academy.hsoub.com/devops/freebsd/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AA%D8%AB%D8%A8%D9%8A%D8%AA-lighttpd-%D9%85%D8%B9-mysql-%D9%88-php-%D8%B9%D9%84%D9%89-freebsd-110-r376/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2018_01/06.png.518e167b47a0ec9515a74ccb60dad797.png" /></p>

<p>
	Lighttpd هو خادوم ويب خفيف مفتوح المصدر، وهو الأمثل للبيئات عالية السرعة مع الحفاظ على استخدام أقل للموارد. وهو بديل ممتاز لخوادم الويب شائعة الاستخدام Nginx و Apache. في هذا المقال سيتم تثبيت وإعداد Lighttpd على خادوم يعمل بنظام FreeBSD 11.0. يمكنك أيضا إضافة MySQL و PHP إلى خادوم الويب Lighttpd الجديد الخاص بك حتى تتمكن من تشغيل خدمات الويب فضلا عن محتويات ثابتة.
</p>

<h2 id="المتطلبات-الأساسية">
	المتطلبات الأساسية
</h2>

<p>
	لإكمال هذا البرنامج التعليمي ستحتاج إلى:
</p>

<ul>
<li>
		خادوم بنظام تشغيل FreeBSD 11.0.
	</li>
	<li>
		حساب مستخدم تم إعداده لتشغيل الأوامر مع sudo .
	</li>
</ul>
<p>
	إن حساب freebsd الافتراضي الذي يأتي مع Digital Ocean FreeBSD Droplet كاف لهذا البرنامج التعليمي. لمعرفة المزيد حول إعداد FreeBSD اقرأ <a href="https://academy.hsoub.com/devops/freebsd/" rel="">سلسلة المقالات حول FreeBSD</a>.
</p>

<h2 id="الخطوة-1-تثبيت-lighttpd">
	الخطوة 1 - تثبيت Lighttpd
</h2>

<p>
	هناك عدة خيارات لتثبيت Lighttpd، ولكن في هذا الدرس سوف نستخدم حزم التثبيت. هذه الطريقة أسرع من التثبيت من المصدر أو عبر المنافذ (Ports)، والبرمجيات المثبتة مع هذه الطريقة أسهل تحديثًا.<br>
	لتثبيت Lighttpd مع الحزمة الخاصة به، أولًا حدّث معلومات المستودع للتأكد من أن لديك أحدث قائمة من الحزم المتاحة:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
sudo pkg update </pre>

<p>
	بعد ذلك حمّل وثبت الحزمة lighttpd:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs bash"><span class="hljs-built_in"><span class="pln">sudo</span></span><span class="pln"> pkg install lighttpd</span></code></pre>

<p>
	أكّد التثبيت عن طريق كتابة y . سيتم تثبيت Lighttpd.<br>
	باستخدام هذا الإعداد الافتراضي سيظهر لك هذا الخطأ عند بدء تشغيل الخادوم:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs perl"><span class="pun">(</span><span class="pln">network</span><span class="pun">.</span><span class="pln">c</span><span class="pun">.</span><span class="hljs-number"><span class="lit">260</span></span><span class="pun">)</span><span class="pln"> warning</span><span class="pun">:</span><span class="pln"> please </span><span class="hljs-keyword"><span class="kwd">use</span></span><span class="pln"> server</span><span class="pun">.</span><span class="hljs-keyword"><span class="kwd">use</span></span><span class="pun">-</span><span class="pln">ipv6 only </span><span class="hljs-keyword"><span class="kwd">for</span></span><span class="pln"> hostnames</span><span class="pun">,</span><span class="pln"> </span><span class="hljs-keyword"><span class="kwd">not</span></span><span class="pln"> without server</span><span class="pun">.</span><span class="hljs-keyword"><span class="pln">bind</span></span><span class="pln"> </span><span class="pun">/</span><span class="pln"> empty address</span><span class="pun">;</span><span class="pln"> your config will </span><span class="hljs-keyword"><span class="kwd">break</span></span><span class="pln"> </span><span class="hljs-keyword"><span class="kwd">if</span></span><span class="pln"> the kernel </span><span class="kwd">default</span><span class="pln"> </span><span class="hljs-keyword"><span class="kwd">for</span></span><span class="pln"> IPV6_V6ONLY changes</span></code></pre>

<p>
	وذلك لأن إعدادات Lighttpd الافتراضية لم يتم تهيئتها لدعم IPv6. لتجنب المفاجآت في وقت لاحق حرر ملف إعدادات Lighttpd ثم عطل دعم IPv6، لأنك لن تحتاج إليها لإكمال هذا الدرس. يمكنك تمكينه في المستقبل إذا قررت استخدامه:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs bash"><span class="hljs-built_in"><span class="pln">sudo</span></span><span class="pln"> ee </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="kwd">local</span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">lighttpd</span><span class="pun">/</span><span class="pln">lighttpd</span><span class="pun">.</span><span class="pln">conf </span></code></pre>

<p>
	ابحث عن هذا الجزء:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs r"><span class="hljs-keyword"><span class="pun">...</span></span><span class="pln">
</span><span class="hljs-comment"><span class="com">##</span></span><span class="pln">
</span><span class="hljs-comment"><span class="com">## Use IPv6?</span></span><span class="pln">
</span><span class="hljs-comment"><span class="com">##</span></span><span class="pln">
server</span><span class="pun">.</span><span class="kwd">use</span><span class="pun">-</span><span class="pln">ipv6 </span><span class="pun">=</span><span class="pln"> </span><span class="hljs-string"><span class="str">"enable"</span></span><span class="pln">
</span><span class="hljs-keyword"><span class="pun">...</span></span></code></pre>

<p>
	وغير enable إلى disable
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs r"><span class="hljs-keyword"><span class="pun">...</span></span><span class="pln">
</span><span class="hljs-keyword"><span class="pun">...</span></span><span class="pln">
server</span><span class="pun">.</span><span class="kwd">use</span><span class="pun">-</span><span class="pln">ipv6 </span><span class="pun">=</span><span class="pln"> </span><span class="hljs-string"><span class="str">"disable"</span></span><span class="pln">
</span><span class="hljs-keyword"><span class="pun">...</span></span></code></pre>

<p>
	بعد ذلك حدد موقع هذا السطر في نهاية ملف الإعداد:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs r"><span class="hljs-keyword"><span class="pun">...</span></span><span class="pln">
</span><span class="hljs-keyword"><span class="pun">...</span></span><span class="pln">
$SERVER</span><span class="pun">[</span><span class="hljs-string"><span class="str">"socket"</span></span><span class="pun">]</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="hljs-string"><span class="str">"0.0.0.0:80"</span></span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="pun">}</span><span class="pln"> </span></code></pre>

<p>
	ألغه بإضافة الرمز # في أوله، لأنه لا لزوم له إذ كنا لا نستخدم IPv6:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs mathematica"><span class="com">#$SERVER[</span><span class="hljs-string"><span class="com">"socket"</span></span><span class="com">] == </span><span class="hljs-string"><span class="com">"0.0.0.0:80"</span></span><span class="com"> </span><span class="hljs-list"><span class="com">{ }</span></span></code></pre>

<p>
	ثم احفظ الملف وأغلق المحرر.<br>
	بعد هذا سوف نقوم بإعداد MySQL
</p>

<h2 id="الخطوة-2-تركيب-وإعداد-mysql">
	الخطوة 2 - تركيب وإعداد MySQL
</h2>

<p>
	MySQL هو نظام إدارة قواعد بيانات من شأنها أن تسمح بإنشاء قواعد بيانات لتطبيقات PHP التي تخطط لاستضافتها على خادوم الويب الخاص بك Lighttpd. سوف تقوم بتثبيت MySQL عبر الحزم، تماما كما فعلت مع Lighttpd. ثم عليك إعداد كلمة مرور للمستخدم الجذر MySQL وتعطيل بعض خيارات الاختبار الأخرى. وهذا يضمن أنه سيكون لديك إعداد آمن لــ MySQL. بما أنك قمت بتحديث معلومات مستودع pkg في الخطوة 1، يمكنك الآن تحميل وتثبيت حزمة خادوم MySQL بسرعة:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs bash"><span class="hljs-built_in"><span class="pln">sudo</span></span><span class="pln"> pkg install mysql57</span><span class="pun">-</span><span class="pln">server </span></code></pre>

<p>
	أكد التثبيت عن طريق الضغط على: y.<br>
	بعد اكتمال التثبيت، مكّن MySQL لكي يبدأ عند تشغيل النظام:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs bash"><span class="pln">  </span><span class="hljs-built_in"><span class="pln">sudo</span></span><span class="pln"> sysrc mysql_enable</span><span class="pun">=</span><span class="pln">yes</span></code></pre>

<p>
	ثم شغل خدمة mysql-server :
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs bash"><span class="pln">  </span><span class="hljs-built_in"><span class="pln">sudo</span></span><span class="pln"> service mysql</span><span class="pun">-</span><span class="pln">server start</span></code></pre>

<p>
	بعد بدء تشغيل الخدمة أمّن تثبيت MySQL باستخدام السكريبت mysql_secure_installation . سيؤدي هذا إلى إزالة بعض الإعدادات الافتراضية الخطرة وإغلاق الوصول إلى نظام قاعدة البيانات قليلا. شغل السكريبت بالأمر:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs bash"><span class="hljs-built_in"><span class="pln">sudo</span></span><span class="pln"> mysql_secure_installation </span></code></pre>

<p>
	سترى الرسالة التالية:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs livecodeserver"><span class="typ">Securing</span><span class="pln"> </span><span class="hljs-operator"><span class="pln">the</span></span><span class="pln"> </span><span class="typ">MySQL</span><span class="pln"> server deployment</span><span class="pun">.</span><span class="pln">
</span><span class="typ">Connecting</span><span class="pln"> </span><span class="hljs-built_in"><span class="pln">to</span></span><span class="pln"> </span><span class="typ">MySQL</span><span class="pln"> server </span><span class="hljs-keyword"><span class="kwd">using</span></span><span class="pln"> password </span><span class="hljs-operator"><span class="kwd">in</span></span><span class="pln"> </span><span class="hljs-string"><span class="str">'/root/.mysql_secret'</span></span></code></pre>

<p>
	بعد ذلك سيتم سؤالك عما إذا كنت تريد إعداد إضافة للتحقق من صحة كلمات المرور:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs livecodeserver"><span class="pln">VALIDATE PASSWORD PLUGIN can be used </span><span class="hljs-built_in"><span class="pln">to</span></span><span class="pln"> test passwords
</span><span class="hljs-operator"><span class="kwd">and</span></span><span class="pln"> improve security</span><span class="pun">.</span><span class="pln"> </span><span class="typ">It</span><span class="pln"> checks </span><span class="hljs-operator"><span class="pln">the</span></span><span class="pln"> strength </span><span class="hljs-operator"><span class="pln">of</span></span><span class="pln"> password
</span><span class="hljs-operator"><span class="kwd">and</span></span><span class="pln"> allows </span><span class="hljs-operator"><span class="pln">the</span></span><span class="pln"> users </span><span class="hljs-built_in"><span class="pln">to</span></span><span class="pln"> </span><span class="hljs-built_in"><span class="kwd">set</span></span><span class="pln"> only those passwords which are
secure enough</span><span class="pun">.</span><span class="pln"> </span><span class="typ">Would</span><span class="pln"> you like </span><span class="hljs-built_in"><span class="pln">to</span></span><span class="pln"> setup VALIDATE PASSWORD plugin</span><span class="pun">?</span></code></pre>

<table><tbody><tr>
<td style="background-color: rgb(255, 55, 55); color: rgb(255, 255, 255); padding: 5px 10px;">
				<strong>تحذير</strong>: تمكين هذه الميزة لهو شيء من الحكمة. إذا تم التمكين فسيتم رفض كلمات المرور التي لا تتطابق مع المعايير المحددة من قبل MySQL مع إظهار رسالة خطأ. وهذا سوف يسبب مشاكل إذا كنت تستخدم كلمة مرور ضعيفة أو كان لك برنامج يقوم تلقائيا بإعداد بيانات اعتماد مستخدم MySQL. لذلك يعد من الآمن أن تترك التحقق معطلًا، ولكن يجب عليك دائمًا استخدام كلمات مرور قوية وفريدة من نوعها لبيانات اعتماد قاعدة البيانات.
			</td>
		</tr></tbody></table>
<p>
	أجب بنعم أو أيّ شيء آخر للمتابعة دون تمكين. إذا اخترت تمكين هذه الميزة فسيطلب منك تحديد مستوى التحقق من صحة كلمة المرور. ضع في اعتبارك أنه إذا قمت بإدخال 2 –وهو أقوى مستوى- فسوف تتلقى أخطاء عند محاولة تعيين أي كلمة المرور لا تحتوي على أرقام وحروف كبيرة وصغيرة ورموزا خاصة أو أي كلمة المرور هي موجودة في قواميس كلمات السر الشائعة.
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs livecodeserver"><span class="typ">There</span><span class="pln"> are </span><span class="hljs-constant"><span class="pln">three</span></span><span class="pln"> levels </span><span class="hljs-operator"><span class="pln">of</span></span><span class="pln"> password validation policy</span><span class="pun">:</span><span class="pln">
LOW    </span><span class="typ">Length</span><span class="pln"> </span><span class="pun">&gt;=</span><span class="pln"> </span><span class="hljs-number"><span class="lit">8</span></span><span class="pln">
MEDIUM </span><span class="typ">Length</span><span class="pln"> </span><span class="pun">&gt;=</span><span class="pln"> </span><span class="hljs-number"><span class="lit">8</span></span><span class="pun">,</span><span class="pln"> </span><span class="hljs-keyword"><span class="pln">numeric</span></span><span class="pun">,</span><span class="pln"> mixed </span><span class="hljs-keyword"><span class="kwd">case</span></span><span class="pun">,</span><span class="pln"> </span><span class="hljs-operator"><span class="kwd">and</span></span><span class="pln"> special </span><span class="hljs-keyword"><span class="pln">characters</span></span><span class="pln">
STRONG </span><span class="typ">Length</span><span class="pln"> </span><span class="pun">&gt;=</span><span class="pln"> </span><span class="hljs-number"><span class="lit">8</span></span><span class="pun">,</span><span class="pln"> </span><span class="hljs-keyword"><span class="pln">numeric</span></span><span class="pun">,</span><span class="pln"> mixed </span><span class="hljs-keyword"><span class="kwd">case</span></span><span class="pun">,</span><span class="pln"> special </span><span class="hljs-keyword"><span class="pln">characters</span></span><span class="pln"> </span><span class="hljs-operator"><span class="kwd">and</span></span><span class="pln"> dictionary </span><span class="hljs-built_in"><span class="pln">file</span></span><span class="pln">
</span><span class="typ">Please</span><span class="pln"> enter </span><span class="hljs-number"><span class="lit">0</span></span><span class="pln"> </span><span class="pun">=</span><span class="pln"> LOW</span><span class="pun">,</span><span class="pln"> </span><span class="hljs-number"><span class="lit">1</span></span><span class="pln"> </span><span class="pun">=</span><span class="pln"> MEDIUM </span><span class="hljs-operator"><span class="kwd">and</span></span><span class="pln"> </span><span class="hljs-number"><span class="lit">2</span></span><span class="pln"> </span><span class="pun">=</span><span class="pln"> STRONG</span><span class="pun">:</span><span class="pln"> </span></code></pre>

<p>
	بعد ذلك سيتم سؤالك عما إذا كنت ترغب في تغيير كلمة المرور للمستخدم الجذر:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs livecodeserver"><span class="typ">Change</span><span class="pln"> </span><span class="hljs-operator"><span class="pln">the</span></span><span class="pln"> password </span><span class="hljs-keyword"><span class="kwd">for</span></span><span class="pln"> root </span><span class="pun">?</span><span class="pln"> </span><span class="pun">((</span><span class="typ">Press</span><span class="pln"> y</span><span class="pun">|</span><span class="pln">Y </span><span class="hljs-keyword"><span class="kwd">for</span></span><span class="pln"> </span><span class="typ">Yes</span><span class="pun">,</span><span class="pln"> </span><span class="hljs-keyword"><span class="pln">any</span></span><span class="pln"> other key </span><span class="hljs-keyword"><span class="kwd">for</span></span><span class="pln"> </span><span class="typ">No</span><span class="pun">):</span></code></pre>

<p>
	اضغط على Y لتغيير كلمة المرور هذه. إذا مكنت التحقق من صحة كلمة المرور فستظهر لك قوة كلمة المرور للجذر الحالية، وستسأل إذا كنت تريد تغيير كلمة المرور هذه.
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs vbnet"><span class="hljs-keyword"><span class="typ">New</span></span><span class="pln"> password</span><span class="pun">:</span><span class="pln">
</span><span class="typ">Re</span><span class="pun">-</span><span class="pln">enter </span><span class="hljs-keyword"><span class="kwd">new</span></span><span class="pln"> password</span><span class="pun">:</span><span class="pln">
</span><span class="typ">Estimated</span><span class="pln"> strength </span><span class="hljs-keyword"><span class="pln">of</span></span><span class="pln"> the password</span><span class="pun">:</span><span class="pln"> </span><span class="hljs-number"><span class="lit">100</span></span><span class="pln">
</span><span class="hljs-keyword"><span class="typ">Do</span></span><span class="pln"> you wish </span><span class="hljs-keyword"><span class="pln">to</span></span><span class="pln"> </span><span class="hljs-keyword"><span class="kwd">continue</span></span><span class="pln"> </span><span class="hljs-keyword"><span class="kwd">with</span></span><span class="pln"> the password provided</span><span class="pun">?(</span><span class="typ">Press</span><span class="pln"> y</span><span class="pun">|</span><span class="pln">Y </span><span class="hljs-keyword"><span class="kwd">for</span></span><span class="pln"> </span><span class="typ">Yes</span><span class="pun">,</span><span class="pln"> any other </span><span class="hljs-keyword"><span class="pln">key</span></span><span class="pln"> </span><span class="hljs-keyword"><span class="kwd">for</span></span><span class="pln"> </span><span class="typ">No</span><span class="pun">):</span></code></pre>

<p>
	اضغط Y للمتابعة مع كلمة المرور الجديدة. بالنسبة لبقية الأسئلة اضغط على Y ثم على مفتاح الإدخال في كل مرة. سيؤدي ذلك إلى إزالة بعض المستخدمين المجهولين وقاعدة بيانات الاختبار وتعطيل تسجيلات الجذر عن بعد وتحميل هذه القواعد الجديدة بحيث تجعل MySQL يعمل بالتغييرات التي أجريناها فورا.<br>
	ثم قم بإعادة تشغيل خدمة mysql-server للتأكد من أن المثيل (Instance) الخاص بك نفَّذ على الفور التغييرات الأمنية:
</p>

<pre class="ipsCode" id="ips_uid_3461_9">
sudo service mysql-server restart </pre>

<p>
	بعد تثبيت وتشغيل MySQL يمكننا تثبيت وإعداد PHP.
</p>

<h2 id="الخطوة-3-تثبيت-وإعداد-php">
	الخطوة 3 - تثبيت وإعداد PHP
</h2>

<p>
	PHP هو المكون الذي يتكفل بعرض المحتوى الديناميكي. فإنه يمكنه أن يشغل السكريبتات، والاتصال بقواعد بيانات MySQL للحصول على المعلومات، وتسليم المحتوى إلى خادوم الويب لمعالجته ثم عرضه. مرة أخرى استخدم نظام الحزم لتثبيت PHP مع إضافة PHP المسماة mysqli لكي تضيف دعما MySQL:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs bash"><span class="hljs-built_in"><span class="pln">sudo</span></span><span class="pln"> pkg install php71 php71</span><span class="pun">-</span><span class="pln">mysqli </span></code></pre>

<p>
	Lighttpd لا يحتوي على معالجة للــ PHP مثل بعض خوادم الويب الأخرى، لذلك سوف نستخدم PHP-FPM الذي سيعمل في ” إدارة عمليات FastCGI “. سنقوم بإعداد Lighttpd لاستخدام هذه الوحدة لمعالجة طلبات PHP. قبل أن نفعل ذلك نحن بحاجة إلى إعداد PHP-FPM نفسها. ابدأ بتعديل ملف إعدادات PHP-FPM:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs avrasm"><span class="pln">sudo ee </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="kwd">local</span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">php</span><span class="pun">-</span><span class="pln">fpm</span><span class="hljs-preprocessor"><span class="pun">.</span><span class="pln">d</span></span><span class="pun">/</span><span class="pln">www</span><span class="hljs-preprocessor"><span class="pun">.</span><span class="pln">conf</span></span><span class="pln"> </span></code></pre>

<p>
	سنقوم بإعداد PHP-FPM لاستخدام مقبس (socket) يونكس بدلا من منفذ شبكة للاتصال. هذا أكثر أمنا لخدمات التواصل داخل خادوم واحد.<br>
	ابحث عن هذا السطر في ملف التهيئة: /usr/local/etc/php-fpm.d/www.conf
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs fix"><span class="hljs-attribute"><span class="pln"> listen </span></span><span class="pun">=</span><span class="hljs-string"><span class="pln"> </span><span class="lit">127.0</span><span class="pun">.</span><span class="lit">0.1</span><span class="pun">:</span><span class="lit">9000</span><span class="pln"> </span></span></code></pre>

<p>
	غيّر هذا السطر لكي يستخدم مقبس php-fpm :
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs lasso"><span class="pln">listen </span><span class="hljs-subst"><span class="pun">=</span></span><span class="pln"> </span><span class="str">/</span><span class="hljs-built_in"><span class="str">var</span></span><span class="str">/</span><span class="pln">run</span><span class="pun">/</span><span class="pln">php</span><span class="hljs-attribute"><span class="pun">-</span><span class="pln">fpm</span></span><span class="hljs-built_in"><span class="pun">.</span></span><span class="pln">sock </span></code></pre>

<p>
	الآن عيّن المالك والمجموعة والأذونات للمقبس الذي سيتم إنشاؤه. ابحث عن هذا الجزء من ملف الإعداد:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs r"><span class="hljs-keyword"><span class="pun">...</span></span><span class="pln">
</span><span class="pun">;</span><span class="pln">listen</span><span class="pun">.</span><span class="pln">owner </span><span class="pun">=</span><span class="pln"> www
</span><span class="pun">;</span><span class="pln">listen</span><span class="pun">.</span><span class="kwd">group</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> www
</span><span class="pun">;</span><span class="pln">listen</span><span class="pun">.</span><span class="pln">mode </span><span class="pun">=</span><span class="pln"> </span><span class="hljs-number"><span class="lit">0660</span></span><span class="pln">
</span><span class="hljs-keyword"><span class="pun">...</span></span></code></pre>

<p>
	قم بإلغاء علامة التعليق من أول السطر (;) بحيث يبدو كالتالي:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs r"><span class="hljs-keyword"><span class="pun">...</span></span><span class="pln">
listen</span><span class="pun">.</span><span class="pln">owner </span><span class="pun">=</span><span class="pln"> www
listen</span><span class="pun">.</span><span class="kwd">group</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> www
listen</span><span class="pun">.</span><span class="pln">mode </span><span class="pun">=</span><span class="pln"> </span><span class="hljs-number"><span class="lit">0660</span></span><span class="pln">
</span><span class="hljs-keyword"><span class="pun">...</span></span></code></pre>

<p>
	احفظ الملف وأغلقه بعد الانتهاء. بعد ذلك قم بإنشاء ملف php.ini ، هذا الملف سيقوم بإعداد السلوك العام لـ PHP. هناك نوعان من نماذج الملفات: php.ini-production و php.ini-development . سيكون php.ini-production أقرب إلى ما تريده لخادومك، لذا انسخه إلى المسار :
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs lua"><span class="str">/usr/</span><span class="hljs-keyword"><span class="kwd">local</span></span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span></code></pre>

<p>
	وهو الموضع الذي تتوقع PHP العثور عليه في إعداداتها:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs avrasm"><span class="pln">sudo </span><span class="hljs-keyword"><span class="pln">cp</span></span><span class="pln"> </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="kwd">local</span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">php</span><span class="hljs-preprocessor"><span class="pun">.</span><span class="pln">ini</span></span><span class="pun">-</span><span class="pln">production </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="kwd">local</span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">php</span><span class="hljs-preprocessor"><span class="pun">.</span><span class="pln">ini</span></span></code></pre>

<p>
	افتح الملف php.ini الجديد باستخدام محرر النصوص:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs bash"><span class="hljs-built_in"><span class="pln">sudo</span></span><span class="pln"> ee </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="kwd">local</span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">php</span><span class="pun">.</span><span class="pln">ini</span></code></pre>

<p>
	داخل ملف الإعداد حدّد موقع الجزء الخاص بسلوك cgi.fix_pathinfo . ستراه مَلغِيّا ومعينا إلى القيمة 1 افتراضيا:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs r"><span class="hljs-keyword"><span class="pun">...</span></span><span class="pln">
</span><span class="pun">;</span><span class="pln">cgi</span><span class="pun">.</span><span class="pln">fix_pathinfo</span><span class="pun">=</span><span class="hljs-number"><span class="lit">1</span></span><span class="pln">
</span><span class="hljs-keyword"><span class="pun">...</span></span><span class="pln"> </span></code></pre>

<p>
	قم بإزالة الفاصلة المنقوطة لتمكين السطر وتعيين القيمة إلى 0. هذا سيمنع PHP من محاولة تنفيذ أجزاء من المسار إذا لم يتم العثور على الملف الذي تم تمريره إلى العملية. هذا يمكن أن يستخدم من قبل المهاجم لتنفيذ الشيفرات الخبيثة.
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs r"><span class="hljs-keyword"><span class="pun">...</span></span><span class="pln">
cgi</span><span class="pun">.</span><span class="pln">fix_pathinfo</span><span class="pun">=</span><span class="hljs-number"><span class="lit">0</span></span><span class="pln">
</span><span class="hljs-keyword"><span class="pun">...</span></span></code></pre>

<p>
	احفظ الملف وأغلق المحرر. ثم مكّن خدمة php-fpm لتبدأ مع بدء تشغيل النظام:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs bash"><span class="hljs-built_in"><span class="pln">sudo</span></span><span class="pln"> sysrc php_fpm_enable</span><span class="pun">=</span><span class="pln">yes </span></code></pre>

<p>
	ثم شغّل الخدمة:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs bash"><span class="hljs-built_in"><span class="pln">sudo</span></span><span class="pln"> service php</span><span class="pun">-</span><span class="pln">fpm start </span></code></pre>

<p>
	بعد ذلك لنقم بإعداد Lighttpd لمعالجة تطبيقات PHP.
</p>

<h2 id="الخطوة-4-إعداد-lighttpd-لخدمة-تطبيقات-php">
	الخطوة 4 - إعداد Lighttpd لخدمة تطبيقات PHP
</h2>

<p>
	في هذه الخطوة سوف نقوم بإعداد Lighttpd لاستخدام FastCGI و PHP-FPM. هذا سيمكّن الــ PHP على Lighttpd ويقدم دعما من PHP سريعا وفعّالا.<br>
	أولاً مكّن وحدة FastCGI. افتح ملف إعداد وحدات Lighttpd:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs bash"><span class="hljs-built_in"><span class="pln">sudo</span></span><span class="pln"> ee </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="kwd">local</span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">lighttpd</span><span class="pun">/</span><span class="pln">modules</span><span class="pun">.</span><span class="pln">conf</span></code></pre>

<p>
	حدد موقع القسم التالي:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs r"><span class="hljs-keyword"><span class="pun">...</span></span><span class="pln">
</span><span class="hljs-comment"><span class="com">##</span></span><span class="pln">
</span><span class="hljs-comment"><span class="com">## FastCGI (mod_fastcgi)</span></span><span class="pln">
</span><span class="hljs-comment"><span class="com">##</span></span><span class="pln">
</span><span class="hljs-comment"><span class="com">#include</span><span class="pln"> </span><span class="str">"conf.d/fastcgi.conf"</span></span><span class="pln">
</span><span class="hljs-keyword"><span class="pun">...</span></span></code></pre>

<p>
	أزل الإلغاء عن طريق إزالة الرمز # . إذا لم تجد هذا السطر، فأضفه إلى نهاية الملف، سيصبح هكذا:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs r"><span class="hljs-keyword"><span class="pun">...</span></span><span class="pln">
</span><span class="hljs-comment"><span class="com">##</span></span><span class="pln">
</span><span class="hljs-comment"><span class="com">## FastCGI (mod_fastcgi)</span></span><span class="pln">
</span><span class="hljs-comment"><span class="com">##</span></span><span class="pln">
include </span><span class="hljs-string"><span class="str">"conf.d/fastcgi.conf"</span></span><span class="pln">
</span><span class="hljs-keyword"><span class="pun">...</span></span></code></pre>

<p>
	احفظ الملف وأغلق المحرر. بعد ذلك قم بتحرير ملف إعداد FastCGI:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs avrasm"><span class="pln">sudo ee </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="kwd">local</span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">lighttpd</span><span class="pun">/</span><span class="pln">conf</span><span class="hljs-preprocessor"><span class="pun">.</span><span class="pln">d</span></span><span class="pun">/</span><span class="pln">fastcgi</span><span class="hljs-preprocessor"><span class="pun">.</span><span class="pln">conf</span></span><span class="pln"> </span></code></pre>

<p>
	يحتوي هذا الملف على عدة أمثلة ملغاة. أضف أسطر الإعداد التالية إلى نهاية الملف الذي سيقوم بإعداد Lighttpd لمعالجة ملفات PHP مع FastCGI و PHP-FPM:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs r"><span class="pun">..</span><span class="pln">
fastcgi</span><span class="pun">.</span><span class="pln">server </span><span class="pun">+=</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> </span><span class="hljs-string"><span class="str">".php"</span></span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln">
        </span><span class="pun">((</span><span class="pln">
                </span><span class="hljs-string"><span class="str">"socket"</span></span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="hljs-string"><span class="str">"/var/run/php-fpm.sock"</span></span><span class="pun">,</span><span class="pln">
                </span><span class="hljs-string"><span class="str">"broken-scriptfilename"</span></span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="hljs-string"><span class="str">"enable"</span></span><span class="pln">
        </span><span class="pun">))</span><span class="pln">
</span><span class="pun">)</span><span class="hljs-keyword"><span class="pun">...</span></span></code></pre>

<p>
	بعد ذلك مكّن Lighttpd لكي يشتغل مع بداية تشغيل النظام. بهذه الطريقة سوف تبدأ Lighttpd تلقائيا كلما تم إعادة تشغيل خادوم الويب:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs bash"><span class="hljs-built_in"><span class="pln">sudo</span></span><span class="pln"> sysrc lighttpd_enable</span><span class="pun">=</span><span class="pln">yes</span></code></pre>

<p>
	ثم شغّل خدمة lighttpd :
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs bash"><span class="hljs-built_in"><span class="pln">sudo</span></span><span class="pln"> service lighttpd start</span></code></pre>

<p>
	الآن بعد أن صار PHP على استعداد للاشتغال، دعونا نتأكد من أن كل شيء يعمل.
</p>

<h2 id="الخطوة-5-اختبار-إعداد-الخادوم">
	الخطوة 5 - اختبار إعداد الخادوم
</h2>

<p>
	لاختبار Lighttpd المعدّ حديثا أنشئ أولا المجلد /usr/local/www/data، هذا المجلد هو الذي سيبحث فيه Lighttpd عن صفحات الويب.
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs haskell"><span class="hljs-title"><span class="pln">sudo</span></span><span class="pln"> ee </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="kwd">local</span><span class="pun">/</span><span class="pln">www</span><span class="pun">/</span><span class="hljs-typedef"><span class="hljs-keyword"><span class="pln">data</span></span><span class="pun">/</span><span class="pln">info</span><span class="pun">.</span><span class="pln">php</span></span></code></pre>

<p>
	ثم أنشئ info.php في المجلد /usr/local/www/data/ . سيختبر هذا الملف أن PHP يعمل ويتيح لك مراجعة المعلومات حول إعداد خادوم الويب في متصفح الويب:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs haskell"><span class="hljs-title"><span class="pln">sudo</span></span><span class="pln"> ee </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="kwd">local</span><span class="pun">/</span><span class="pln">www</span><span class="pun">/</span><span class="hljs-typedef"><span class="hljs-keyword"><span class="pln">data</span></span><span class="pun">/</span><span class="pln">info</span><span class="pun">.</span><span class="pln">php</span></span></code></pre>

<p>
	أضف هذا الكود إلى الملف:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs xml"><span class="php"><span class="hljs-preprocessor"><span class="pun">&lt;?</span><span class="pln">php</span></span><span class="pln"> phpinfo</span><span class="pun">();</span><span class="pln"> </span><span class="hljs-preprocessor"><span class="pun">?&gt;</span></span></span></code></pre>

<p>
	احفظ الملف وأغلق المحرر. قم بزيارة الرابط <a href="http://your_server_ip/info.php" rel="external nofollow">http://your_server_ip/info.php</a> من متصفحك سوف ترى مظهر الصفحة مثل هذا:
</p>

<p style="text-align: center;">
	<br><a class="ipsAttachLink ipsAttachLink_image" data-fileid="26388" href="https://academy.hsoub.com/uploads/monthly_2018_01/001.png.334cd0d61f8ab23b28b66454b9681389.png" rel=""><img alt="001.png" class="ipsImage ipsImage_thumbnailed" data-fileid="26388" data-unique="64824iw6u" src="https://academy.hsoub.com/uploads/monthly_2018_01/001.thumb.png.a2edb07bcfede42d94548970d964ce90.png"></a>
</p>

<p>
	<br>
	تعرض هذه الصفحة معلومات حول نظام التشغيل وخادوم الويب وكيفية معالجة خادوم الويب لملفات PHP. كما تتحقق من أن خادوم الويب الخاص بك يمكنه أن يعالج ملفات PHP بشكل صحيح. إذا لم تشاهد هذه الصفحة ، وبدلا من ذلك شاهدت ” Error 503 Service Not Available ” فتأكد من أن خدمة php-fpm اشتغلت بشكل صحيح في الخطوة السابقة.<br>
	بعد التحقق من أن الأمور تعمل قم بإزالة الصفحة info.php إذ أنها تعرض معلومات حول الخادوم الخاص بك يجب أن تبقى خاصة:
</p>

<pre class="ipsCode" id="ips_uid_3461_7">
<code class="hljs haskell"><span class="hljs-title"><span class="pln">sudo</span></span><span class="pln"> rm </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="kwd">local</span><span class="pun">/</span><span class="pln">www</span><span class="pun">/</span><span class="hljs-typedef"><span class="hljs-keyword"><span class="pln">data</span></span><span class="pun">/</span><span class="pln">info</span><span class="pun">.</span><span class="pln">php </span></span></code></pre>

<p>
	تم الآن إعداد خادوم الويب بالكامل وهو على استعداد للعمل. ما عليك الآن سوى أن تضع ملفاتك في /usr/local/www/data لكي تتم معالجتها.
</p>

<h2 id="الخلاصة">
	الخلاصة
</h2>

<p>
	الآن بعد أن صار خادوم الويب Lighttpd في الخدمة يمكنك استضافة صفحات الويب والمستندات والملفات الأخرى عليه. لجعل خادوم الويب أكثر أمانا من خلال إضافة إعدادات <abbr title="Secure Socket Layer | طبقة المنافذ الآمنة">SSL</abbr> وغيرها من ميزات الأمان ولمزيد من المعلومات حول Lighttpd قم بزيارة <a href="https://redmine.lighttpd.net/projects/lighttpd/boards" rel="external nofollow">منتديات Lighttpd</a> .
</p>

<p>
	ترجمة -وبتصرّف- للمقال <a href="https://www.digitalocean.com/community/tutorials/how-to-install-lighttpd-with-mysql-and-php-on-freebsd-11-0" rel="external nofollow">How to Install Lighttpd with MySQL and PHP on FreeBSD 11.0</a> لصاحبه Brian Hogan
</p>
]]></description><guid isPermaLink="false">376</guid><pubDate>Sat, 06 Jan 2018 07:01:00 +0000</pubDate></item><item><title>&#x643;&#x64A;&#x641; &#x62A;&#x628;&#x62F;&#x623; &#x645;&#x639; FreeBSD 10.1 &#x643;&#x62E;&#x627;&#x62F;&#x648;&#x645; &#x648;&#x64A;&#x628;</title><link>https://academy.hsoub.com/devops/freebsd/%D9%83%D9%8A%D9%81-%D8%AA%D8%A8%D8%AF%D8%A3-%D9%85%D8%B9-freebsd-101-%D9%83%D8%AE%D8%A7%D8%AF%D9%88%D9%85-%D9%88%D9%8A%D8%A8-r103/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2015_08/freebsd-as-a-server_(1).png.c8afad6854c7d359d9347612e1f590d8.png" /></p>

<p>يُعتبر FreeBSD نظام تشغيل آمن، عالي الأداء، ومناسب لمجموعة متنوعة من وظائف الخوادم الشائعة. نغطي في هذا الدرس المعلومات الأساسية التي تحتاجها لتنطلق مع خوادم FreeBSD.</p><p style="text-align: center;"><a href="https://academy.hsoub.com/uploads/monthly_2015_08/freebsd-as-a-server_(1).png.35c15d74670c05c48c73f75f6fd44b06.png" class="ipsAttachLink ipsAttachLink_image"><img data-fileid="4079" src="https://academy.hsoub.com/uploads/monthly_2015_08/freebsd-as-a-server_(1).thumb.png.fca59ff2a8545aa0bc11186685f8c7ea.png" class="ipsImage ipsImage_thumbnailed" alt="freebsd-as-a-server_(1).thumb.png.fca59f"></a></p><h2>الخطوة الأولى: الولوج عبر SSH</h2><p>الخطوة الأولى التي نحتاجها للبدء في ضبط وإعداد خادوم FreeBSD هي تسجيل الدخول من خلاله.</p><p>تُزوّدك معظم الشركات بمفتاح SSH العمومي عند إنشاء خادوم FreeBSD، بحيث يمكنك تسجيل الدخول بشكلٍ آمن من حاسوبك المنزلي إلى خادومك عبر مفتاح SSH الخاص المرتبط به. لمعرفة المزيد حول كيفية استخدام مفاتيح SSH يمكنك قراءة مقال <a href="https://academy.hsoub.com/devops/servers/%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8F-%D9%85%D8%B9-%D8%AE%D9%88%D8%A7%D8%AF%D9%8A%D9%85-ssh%D8%8C-%D8%A7%D9%84%D8%B9%D9%85%D9%84%D8%A7%D8%A1-%D9%88%D8%A7%D9%84%D9%85%D9%81%D8%A7%D8%AA%D9%8A%D8%AD-r55/">العمل مع خواديم ssh، العملاء والمفاتيح</a> من أكاديمية حسوب.</p><p>لتسجيل الدخول إلى الخادوم الخاص بك تحتاج أولًا إلى معرفة عنوان IP العام له، والذي يمكنك إيجاده عادة من لوحة التحكم، بالإضافة إلى اسم المستخدم الرئيسي لخادوم FreeBSD (سنستخدم لهذا الدرس الاسم <code>freebsd</code> لغرض تعليمي)، كما تختلف الإعدادات الافتراضية بين الشركات حول صلاحيات هذا المستخدم، وسنفترض هنا حصوله على أذونات استعمال <code>sudo</code> لإتمام المهام الإدارية.</p><p>لتسجيل الدخول إلى خادوم FreeBSD استخدم الأمر <span style="font-family:courier new,courier,monospace;">ssh</span> مع تحديد عنوان IP العام للخادوم إضافة لاسم المستخدم :</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">ssh freebsd@server_IP_address</pre><p>يُفترض أن تتم المصادقة تلقائيًا وينجح تسجيل الدخول لتكون أمام سطر الأوامر الخاص بخادومك.</p><h2>تغيير موجه صدفة tcsh والإعدادات الافتراضية (اختياري)</h2><p>بعد تسجيل الدخول ستجد نفسك أمام موجّه أوامر بسيط يبدو بالشكل:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">&gt;</pre><p>وهو الموجّه الافتراضي في <span style="font-family:courier new,courier,monospace;">tcsh</span> صدفة سطر الأوامر القياسيّة في FreeBSD، لنُدخل الآن بعض التعديلات المفيدة على ملف ضبط الصدفة بهدف جعلها أكثر فائدة، مثل توضيح مسار الطرفية قبل إشارة المحث.<br>إحدى أمثلة ملف الضبط موجودة في نظام الملفات لدينا، وكل ما علينا فعله هو نسخها إلى دليل المنزل لإجراء التعديلات التي نرغب بها:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">cp /usr/share/skel/dot.cshrc ~/.cshrc</pre><p>بعد نسخ الملف السابق إلى مجلد المنزل لنحرّره باستخدام الأداة <span style="font-family:courier new,courier,monospace;"><code>vi</code></span> المدمجة مع FreeBSD، أما إذا كنت ترغب باستعمال شيء أبسط فيمكنك تجريب المحرّر <span style="font-family:courier new,courier,monospace;"><code>ee</code></span>:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">vi ~/.cshrc</pre><p>يتضمّن هذا الملف بعض القيم الافتراضية المعقولة بما في ذلك موجّه أكثر وظيفيّة، إحدى الأجزاء التي قد ترغب بتعديلها هي مُدخلات <span style="font-family:courier new,courier,monospace;"><code>setenv</code></span>:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">. . .

setenv EDITOR vi
setenv PAGER more

. . .</pre><p>إذا لم تألف التعامل مع المحرّر vi وترغب باعتماد بيئة تحرير أكثر سهولة، فعليك تغيير قيمة متغيّر البيئة <span style="font-family:courier new,courier,monospace;">EDITOR</span> إلى شيء مثل <span style="font-family:courier new,courier,monospace;">ee</span>. كما يميل معظم المستخدمين إلى تعديل قيمة <span style="font-family:courier new,courier,monospace;">PAGER</span> إلى <span style="font-family:courier new,courier,monospace;">less</span> بدلًا من <span style="font-family:courier new,courier,monospace;">more</span> وهذا ما يسمح بالانتقال إلى أعلى وأسفل ضمن ملفات أدلة البرامج <span style="font-family:courier new,courier,monospace;">man</span> بدون مغادرة <span style="font-family:courier new,courier,monospace;">pager</span>:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">setenv EDITOR ee
setenv PAGER less</pre><p>نحتاج أيضًا إضافة الشيفرة التالية إلى آخر ملف الضبط السابق وذلك لتصحيح مواضع بعض أزرار لوحة المفاتيح لدينا داخل جلسة <span style="font-family:courier new,courier,monospace;">tcsh</span>، وإلا فلن تعمل بعض الأزرار بوظائفها المتوقعة مثل زر <span style="font-family:courier new,courier,monospace;">Delete</span>، ما عليك فعله هو نسخ هذه الأسطر وإضافتها أسفل الملف:<code> </code></p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">if ($term == "xterm" || $term == "vt100"
    || $term == "vt102" || $term !~ "con*") then

      # bind keypad keys for console, vt100, vt102, xterm
      bindkey "\e[1~" beginning-of-line  # Home
      bindkey "\e[7~" beginning-of-line  # Home rxvt
      bindkey "\e[2~" overwrite-mode     # Ins
      bindkey "\e[3~" delete-char        # Delete
      bindkey "\e[4~" end-of-line        # End
      bindkey "\e[8~" end-of-line        # End rxvt
endif</pre><p>عند الانتهاء احفظ الملف واخرج من المُحرّر. لوضع التعديلات الجديدة موضع التنفيذ في الجلسة الحالية يمكننا إعادة تحميل ملف الضبط السابق:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">source ~/.cshrc </pre><p>ستلاحظ في الحال تغيّر هيئة موجّه الأوامر لديك إلى شيء يشبه:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">freebsd@hostname:~ % </pre><p>كما ستعمل أزرار "<span style="font-family:courier new,courier,monospace;">Home</span>" ،"<span style="font-family:courier new,courier,monospace;">Insert</span>" ،"<span style="font-family:courier new,courier,monospace;">Delete</span>" و"<span style="font-family:courier new,courier,monospace;">End</span>" بوظائفها المعتادة بدءًا من الآن. شيء آخر بقي أن أشير إليه هنا؛ في حال كنت تستخدم صدفة <span style="font-family:courier new,courier,monospace;">tcsh</span> الافتراضية أو <span style="font-family:courier new,courier,monospace;">csh</span> فأنت بحاجة إلى تنفيذ الأمر <span style="font-family:courier new,courier,monospace;">rehash</span> كلما أجريت تعديلًا قد يؤثّر على مسار الملفات التنفيذيّة. أحد الأمثلة الشائعة على ذلك تثبيت أو إزالة تثبيت تطبيق ما. بعبارة أخرى بعد تركيب برنامج جديد يتوجب عليك تنفيذ الأمر التالي لتتمكّن الصدفة من التعرّف على ملفات البرنامج الجديد:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">rehash</pre><h2>تغيير الصدفة الافتراضية (اختياري)</h2><p>تمنحك التعديلات السابقة إلفة أكثر مع بيئة <code>tcsh</code> أما إذا كنت لا تزال ترغب باعتماد صدفة <code>bash</code> كصدفة افتراضية لخادوم FreeBSD الخاص بك فعليك اتباع التعليمات التالية:</p><p>في البداية يتوجب عليك تثبيت صدفة <code>bash</code> عن طريق كتابة:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">sudo pkg install bash</pre><p>بعد انتهاء التثبيت سنضيف السطر التالي إلى ملف <span style="font-family:courier new,courier,monospace;"><code>etc/fstab/</code></span> لربط الملف الواصف لنظام الملفات، والذي تحتاجه صدفة <code>bash</code>:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">fdesc /dev/fd fdescfs rw 0 0</pre><p>لإضافة السطر السابق بسهولة إلى آخر ملف <span style="font-family:courier new,courier,monospace;"><code>etc/fstab/</code></span> يمكنك تنفيذ الأمر التالي:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">sudo sh -c 'echo "fdesc /dev/fd fdescfs rw 0 0" &gt;&gt; /etc/fstab'</pre><p>بعد ذلك يمكننا ربط نظام الملفات من خلال:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">sudo mount -a</pre><p>هكذا سيكون نظام الملفات جاهز لتشغيل <span style="font-family:courier new,courier,monospace;"><code>bash</code></span>، ولتشغيلها نفّذ الأمر التالي:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">bash</pre><p>لتعديل الصدفة الافتراضية إلى <code>bash</code> يمكنك كتابة:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">sudo chsh -s /usr/local/bin/bash freebsd</pre><p>في المرة التالية التي تُسجّل بها دخولك إلى الخادوم ستبدأ مع صدفة <code>bash</code> بدلًا من <code>tcsh</code>.<br>إذا كنتَ ترغب بتعديل المحرّر الافتراضي أو قيمة <code>pager</code> في صدفة <code>bash</code> ستحتاج أولًا إلى إنشاء الملف التالي في دليل المنزل:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">vi ~/.bash_profile</pre><p>يمكنك الآن إجراء التعديلات التي ترغب بها داخل هذا الملف، سأضع هنا اختياراتي المُفضّلة:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">export PAGER=less export EDITOR=vi </pre><p>احفظ الملف واخرج من المحرّر عندما تنتهي من التعديل.<br>لوضع التغييرات الأخيرة موضع التنفيذ الفوري أعد تحميل ملف الضبط السابق:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">source ~/.bash_profile</pre><h2>تعيين كلمة مرور الجذر (اختياري)</h2><p>بشكلٍ افتراضي لا تتيح خوادم FreeBSD الولوج كمستخدم جذر عبر <span style="font-family:courier new,courier,monospace;"><code>ssh</code></span>، ورغم ذلك فإنه من الآمن تعيين كلمة مرور <code>root</code> يتم طلبها عند رغبتك استخدام حساب الجذر من خلال طرفية لوحة تحكم الوِيب لخادومك.<br>لتعيين كلمة مرور <code>root</code> اكتب:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">sudo passwd</pre><p>ستسألك الطرفية إدخال وتأكيد كلمة مرور الجذر. وكما ذكرنا أعلاه فإن هذا لن يتيح لك استعمال <code>ssh</code> لتسجيل الدخول بحساب <code>root</code> (لأغراض أمنية) أما لتنفيذ المهام الإدارية فعليك استعمال طرفية لوحة تحكّم الوِيب.</p><h2>الخلاصة</h2><p>تعلمنا إلى الآن كيفية تسجيل الدخول إلى خادوم FreeBSD، وتعديل بيئة الصدفة بشكل مناسب، وحالما تألف التعامل مع FreeBSD وتضبطه بما يتلاءم واحتياجاتك سوف تكون قادر على الاستفادة من مرونته، أمانه، وأدائه العالي.</p><p>ترجمة -وبتصرف- للمقال: <a rel="external nofollow" href="https://www.digitalocean.com/community/tutorials/how-to-get-started-with-freebsd-10-1">How To Get Started with FreeBSD 10.1</a> لصاحبه: Justin Ellingwood.</p>
]]></description><guid isPermaLink="false">103</guid><pubDate>Tue, 25 Aug 2015 19:35:21 +0000</pubDate></item><item><title>&#x643;&#x64A;&#x641; &#x62A;&#x62F;&#x64A;&#x631; &#x627;&#x644;&#x62D;&#x632;&#x645; &#x639;&#x644;&#x649; &#x646;&#x638;&#x627;&#x645; FreeBSD 10.1 &#x628;&#x648;&#x627;&#x633;&#x637;&#x629; Pkg</title><link>https://academy.hsoub.com/devops/freebsd/%D9%83%D9%8A%D9%81-%D8%AA%D8%AF%D9%8A%D8%B1-%D8%A7%D9%84%D8%AD%D8%B2%D9%85-%D8%B9%D9%84%D9%89-%D9%86%D8%B8%D8%A7%D9%85-freebsd-101-%D8%A8%D9%88%D8%A7%D8%B3%D8%B7%D8%A9-pkg-r101/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2015_08/freebsd.png.d4b393d7fc30aa32243450593770d288.png" /></p>

<p>يُعتبر مدير الحزم الثنائية لـ FreeBSD والمُسمى <span style="font-family:courier new,courier,monospace;">pkg</span> أداةً سهلة تمكّننا من إدارة البرامج مُسبقة الترجمة بما في ذلك عمليات التثبيت والحذف، وهو يعادل نظام إدارة الحزم في دبيان <span style="font-family:courier new,courier,monospace;">Deb</span> أو نظيره <span style="font-family:courier new,courier,monospace;">RPM</span> في RedHat. وبالمقارنة مع استخدام نظام المنافذ لبناء الحزم من المصدر على FreeBSD؛ فإن استعمال الحزم المُترجمة يُعتبر بديلًا أكثر سهولة وسرعة وملائمًا للعديد من الحالات، باستثناء أنها ليست بمرونة نظام المنافذ للبناء من المصدر نظرًا إلى عدم إمكانية تخصيص التحزيم، لذا ففي تلك الحالات التي تحتاج فيها إلى خيارات مُحدّدة أثناء عملية الترجمة يجدر بك بناء البرنامج من المصدر عوضًا عن استخدام الحزم الثنائية الجاهزة.<br>نستعرض في هذا الدرس أساليب إدارة الحزم على نظام FreeBSD 10.1، بما في ذلك تثبيت وإزالة الحزم وعدد آخر من المهام ذات الصلة.</p><p style="text-align: center;"><a class="ipsAttachLink ipsAttachLink_image" href="https://academy.hsoub.com/uploads/monthly_2015_08/freebsd.png.9c73d973cb120150dc21873fdfc19340.png"><img data-fileid="3988" class="ipsImage ipsImage_thumbnailed" alt="freebsd.thumb.png.3924cabd2f3cc453720184" src="https://academy.hsoub.com/uploads/monthly_2015_08/freebsd.thumb.png.3924cabd2f3cc453720184e21f09e0bf.png"></a></p><h2>المتطلبات</h2><p>في هذا الدرس نحن نحتاج إلى إمكانية استخدام صلاحيات الجذر root على خادوم FreeBSD، إما عن طريق تسجيل الدخول كمستخدم جذر أو باستعمال مستخدم آخر يملك صلاحيات الجذر عبر الأمر <span style="font-family:courier new,courier,monospace;">sudo</span>. إذا كنت تنوي الولوج كجذر إلى خادومك فعليك إهمال البادئة sudo كلّما وردت في الأمثلة هنا.</p><h2>كيفية تركيب الحزم باستخدام Pkg</h2><p>إذا كنت تعرف اسم الحزمة التي ترغب بتثبيتها فما عليك سوى استخدام الأمر <span style="font-family:courier new,courier,monospace;">pkg</span> مع الخيار <span style="font-family:courier new,courier,monospace;">install</span> بالشكل التالي:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">sudo pkg install package</pre><p>لتثبيت عدّة حزم دفعةً واحدة افصل بين أسمائها بمسافات فارغة:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">sudo pkg install package1 package2 ...</pre><p>مثلًا؛ لتركيب خادوم الويب الشهير Nginx باستخدام <span style="font-family:courier new,courier,monospace;">pkg</span>:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">sudo pkg install nginx</pre><p>يُطلق الأمر السابق عملية تثبيت الحزمة المطلوبة. حيث يتحقق النظام في البداية من تاريخ تحديث فهرس مستودع الحزمة، فإذا كان مطابقًا لأحدث نسخة يبحث عن الحزمة المطلوبة ويضعها ضمن قائمة مع اعتمادياتها المطلوبة (في حال كانت موجودة) ليُظهر لك أخيرًا رسالة تأكيديّة.<br>في مثالنا هنا لا تحتاج حزمة nginx لأية اعتماديات أخرى، نكتب y للموافقة على رسالة التأكيد:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">New packages to be INSTALLED: 
    nginx: 1.6.2_1,2 

The process will require 654 KB more space. 
244 KB to be downloaded. 

Proceed with this action? [y/N]: y</pre><p>بعد ذلك يبدأ <span style="font-family:courier new,courier,monospace;">pkg</span> بجلب الحزم(ة) اللازمة من الخوادم ثم تركيبها على النظام. بعض الحزم قد تعرض معلومات "ما بعد التثبيت" أو تعليمات بشأن استخدام البرنامج، احرص على تطبيق أية ملاحظات مذكورة هنا بعد الانتهاء. إذا كنت تستخدم صدفة tcsh الافتراضية أو csh، فلا تنس إعادة بناء قائمة الحزم الثنائية في PATH بواسطة الأمر:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">rehash</pre><p>من الجدير بالذكر الإشارة إلى أن خدمات التطبيقات لن تعمل بشكل تلقائي بعد تركيب حزمها، بدلًا من ذلك نحن نحتاج تفعيلها بشكل يدوي، وهذا ما سنتحدّث عنه في الفقرة التالية.</p><h2>كيفية تشغيل الخدمات</h2><p>عند تثبيت حزمة لخدمة ما في FreeBSD فإنها تكون مُزوّدة بسكربت تهيئة الخدمة مُضمّنًا على المسار<span style="font-family:courier new,courier,monospace;"> usr/local/etc/rc.d/</span>، وفي مثالنا هنا لتركيب Nginx والتي تعمل كخدمة فإن سكربت تشغيلها يُدعى nginx. انتبه لاستبدال هذا الاسم بما يتناسب مع الخدمة التي قمتَ بتثبيتها أثناء تنفيذ الأوامر التالية.<br>لتوضيح ما يحدث عند محاولتك بدء خدمة لم تقم بتفعيلها لنجرّب استخدام الأمر service لبدء خدمة nginx (أو الخدمة التي قمتَ بتثبيتها في حالتك) بعد تركيبها فورًا ودون تفعيلها:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">sudo service nginx start</pre><p>لن تبدأ الخدمة بالطبع، بل ستحصل على رسالة خطأ شبيهة بما يلي:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">Cannot 'start' nginx. Set nginx_enable to YES in /etc/rc.conf or use 'onestart' instead of 'start'.</pre><p>لتفعيل الخدمة؛ اتّبع المسار الموضّح في الرسالة السابقة وأضف السطر التالي إلى الملف<span style="font-family:courier new,courier,monospace;"> etc/rc.conf<span style="line-height: 22.3999996185303px;">/</span></span>:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">nginx_enable="YES"</pre><p>تستطيع فعل ذلك إما بتحرير الملف <span style="font-family:courier new,courier,monospace;">etc/rc.conf<span style="line-height: 22.3999996185303px;">/</span></span> عبر محرّر نصي (مثل vi) وإضافة السطر السابق، أو باستعمال الأداة <span style="font-family:courier new,courier,monospace;">sysrc</span> لتحديث الملف كما يلي:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">sudo sysrc nginx_enable=yes</pre><p>هكذا تكون الخدمة قد فُعّلت وسوف تبدأ بالعمل عند إعادة إقلاع النظام، أو باستخدام الأمر <span style="font-family:courier new,courier,monospace;">start</span> لتشغيلها في الحال:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">sudo service nginx start</pre><p>إذا كنتَ ترغب بتشغيل الخدمة لمرّة واحدة فقط ودون تفعيلها يمكنك استخدام الأمر <span style="font-family:courier new,courier,monospace;">onestart</span> والذي سيُطلق سكربت بدء تشغيل الخدمة في الحال لكن بدون إعادة تشغيلها عند كل إقلاع للنظام:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">sudo service nginx onestart</pre><p>يُستفاد من الأمر <span style="font-family:courier new,courier,monospace;">onestart</span> في تجريب إعدادات ضبط الخدمة قبل تفعيلها.</p><h2>كيفية عرض معلومات الحزم بواسطة Pkg</h2><p>لاستعراض معلومات عن الحزم المُثبّتة يمكنك استعمال الأمر <span style="font-family:courier new,courier,monospace;">pkg info</span>:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">pkg info package_name</pre><p>يطبع الأمر السابق معلومات متنوعة حول الحزمة المُختارة بما في ذلك وصفها، الخيارات التي تُرجمت وفقها، وقائمة بالاعتماديات التي تحتاجها للعمل.</p><h2>كيفية ترقية الحزم المثبتة بواسطة Pkg</h2><p>لتثبيت الإصدارات الأحدث من البرامج التي تمّ تركيبها من قبل يمكن تنفيذ الأمر التالي:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">sudo pkg upgrade</pre><p>يُقارن الأمر السابق أرقام إصدارات الحزم المثبتة بتلك الموجودة في المستودعات ويُعيد قائمة بأسماء الحزم التي يمكن تحديثها:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
Checking for upgrades (2 candidates): 100%
Processing candidates (2 candidates): 100%
The following 2 packages will be affected (of 0 checked):

Installed packages to be UPGRADED:

python27: 2.7.8_6 -&gt; 2.7.9 perl5: 5.18.4_10 -&gt; 5.18.4_11
The process will require 2 MB more space.
23 MB to be downloaded.

Proceed with this action? [y/N]: y
</pre><p><span style="line-height: 1.6;">لبدء عملية الترقية أجب بنعم y على سؤال التحقّق السابق.</span></p><h2>كيفية حذف الحزم بواسطة Pkg</h2><p>إذا كنت تعرف اسم الحزمة التي ترغب بحذفها يمكنك استخدام الأمر <span style="font-family:courier new,courier,monospace;">pkg</span> مع الخيار <span style="font-family:courier new,courier,monospace;">delete</span> كما يلي:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">sudo pkg delete package_name</pre><p>لحذف عدد من الحزم دفعةً واحدة افصل بين أسمائها بمسافات فارغة:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">sudo pkg delete package1 package2 ...</pre><p>كمثال على ذلك لنجرّب حذف حزمة Nginx التي قمنا بتثبيتها للتو:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">sudo pkg delete nginx</pre><p>يُعيد الأمر السابق رسالة تحقّقية تشبه التالي:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):

Installed packages to be REMOVED:

nginx-1.6.2_1,2
The operation will free 654 KB.

Proceed with deinstalling packages? [y/N]: y</pre><p>لحذف الحزمة السابقة أجب بنعمy` على السؤال السابق.</p><h2>كيفية إزالة الاعتماديات غير المستخدمة</h2><p>عند حذف حزمة ما فإن الاعتماديات الخاصة بها (في حال وجودها) لن تُحذف بشكل تلقائي معها. لحذف الحزم التي لم تعد لازمة لأية حزمة مُثبتة نفّذ الأمر التالي:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">sudo pkg autoremove</pre><p>يُعيد الأمر السابق قائمة بالحزم التي ستُحذف مع رسالة تحقّقية، أجب بنعم y إذا كنت ترغب بحذف هذه الحزم.</p><h2>كيف تجد حزمة ما بواسطة Pkg</h2><p>للبحث عن حزمة ما ضمن الحزم المتوفرة في المستودعات نستخدم الأمر pkg search.</p><h3>البحث بواسطة الاسم</h3><p>الطريقة الأولى للبحث عن حزمة ما هي استخدام اسمها مع الأمر التالي:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">pkg search package_name</pre><p>على سبيل المثال للبحث عن الحزم باسم "nginx" نستخدم الأمر التالي:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">pkg search nginx</pre><p>يطبع الأمر السابق قائمة بالحزم التي يحتوي اسمها على nginx مُضمنة بأرقام الإصدارات:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">nginx-1.6.2_1,2 
nginx-devel-1.7.8 
p5-Nginx-ReadBody-0.07_1 
p5-Nginx-Simple-0.07_1 
p5-Test-Nginx-0.24 </pre><p>إذا كنت ترغب بقراءة المعلومات التفصيلية عن هذه الحزم استعمل الخيار <strong><span style="font-family:courier new,courier,monospace;">f-</span></strong>:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">pkg search -f package_name</pre><p>يُعيد الأمر السابق معلومات الحزم التي يطابق اسمها الاسم المُحدّد في الأمر.</p><h3>البحث بواسطة الوصف</h3><p>إذا لم تكن متأكدًا من اسم الحزمة التي ترغب بتثبيتها عندها يمكنك البحث في وصف الحزم المتوفرة في المستودعات من خلال الخيار <strong><span style="font-family:courier new,courier,monospace;">D-</span></strong> والذي لا يراعي حالة الأحرف بشكل افتراضي:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">pkg search -D pattern</pre><p>على سبيل المثال للبحث عن جميع الحزم التي تضم كلمة "java" في وصفها نستعمل الأمر التالي:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">pkg search -D java</pre><p>يطبع هذا الأمر أسماء جميع الحزم المتوفرة والتي يحتوي وصفها على الكلمة المُحدّدة.</p><h2>كيف تتعلم المزيد حول استخدام Pkg</h2><p><span style="font-family:courier new,courier,monospace;">Pkg</span> هي أداة عالية المرونة حيث يمكن استخدامها بعدّة طرق أخرى لم نُشر إليها في هذا الدرس. ولحسن الحظ فإنها مزودة بأسلوب سهل للإطلاع على الأوامر والخيارات التي تدعمها وطريقة تنفيذها، وذلك من خلال:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">pkg help</pre><p>للقراءة أكثر حول أمر ما من الأوامر التي تتضمنها الأداة يمكننا أن نكون أكثر تحديدًا بكتابة:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">pkg help subcommand</pre><p>فعلى سبيل المثال للتعلّم أكثر حول استخدامات الأمر <span style="font-family:courier new,courier,monospace;">pkg search</span> نُنفّذ:</p><pre data-pbcklang="html" data-pbcktabsize="4" class="html ipsCode prettyprint">pkg help search</pre><p>هذا سيأخذنا مباشرة إلى القسم الخاص باستخدام <span style="font-family:courier new,courier,monospace;">pkg search</span> من دليل الاستعمال <span style="font-family:courier new,courier,monospace;">man</span> الخاص بـ <span style="font-family:courier new,courier,monospace;">pkg</span>.</p><h2>الخلاصة</h2><p>إلى هنا يُفترض أنك تعلمت ما يكفي من مهارات لاستخدام pkg في إدارة الحزم الثنائية على نظام FreeBSD ضمن خادومك.</p><p>ترجمة -وبتصرف- للمقال: <a rel="external nofollow" href="https://www.digitalocean.com/community/tutorials/how-to-manage-packages-on-freebsd-10-1-with-pkg">How To Manage Packages on FreeBSD 10.1 with Pkg</a> لصاحبه: Mitchell Anicas.</p>
]]></description><guid isPermaLink="false">101</guid><pubDate>Sat, 22 Aug 2015 18:33:37 +0000</pubDate></item><item><title>&#x645;&#x642;&#x62F;&#x645;&#x629; &#x645;&#x642;&#x627;&#x631;&#x646;&#x629; &#x625;&#x644;&#x649; &#x646;&#x638;&#x627;&#x645; FreeBSD &#x644;&#x645;&#x633;&#x62A;&#x62E;&#x62F;&#x645;&#x64A; Gnu/Linux</title><link>https://academy.hsoub.com/devops/freebsd/%D9%85%D9%82%D8%AF%D9%85%D8%A9-%D9%85%D9%82%D8%A7%D8%B1%D9%86%D8%A9-%D8%A5%D9%84%D9%89-%D9%86%D8%B8%D8%A7%D9%85-freebsd-%D9%84%D9%85%D8%B3%D8%AA%D8%AE%D8%AF%D9%85%D9%8A-gnulinux-r97/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2015_08/gnu-linux-freebsd_(1).png.2b1b34f2a18670c1b63f163b33e15484.png" /></p>

<div id="wmd-preview-section-26"><p id="مقدمة">FreeBSD هو نظام تشغيل شبيه بيونكس Unix-like حرّ ومفتوح المصدر يشيع استخدامه على الخوادم. يتشارك FreeBSD والأنظمة الأخرى المبنية على BSD قواسم عدّة مع أنظمة مثل لينكس Linux؛ وفي المقابل تبقى هناك نقاط اختلاف مهمة تُميّز بين هاتين العائلتين. </p><p style="text-align: center;"><a class="ipsAttachLink ipsAttachLink_image" href="https://academy.hsoub.com/uploads/monthly_2015_08/gnu-linux-freebsd_(1).png.9e13435ca255f46442d5ea1113843181.png"><img data-fileid="3823" class="ipsImage ipsImage_thumbnailed" alt="gnu-linux-freebsd_(1).thumb.png.727f7ad5" src="https://academy.hsoub.com/uploads/monthly_2015_08/gnu-linux-freebsd_(1).thumb.png.727f7ad5cfc52907928ad55caec82e09.png"></a></p><p>سنناقش في هذا الدرس بإيجاز بعض القواسم المشتركة بين FreeBSD و لينكس، ثم سنتحدث بشكلٍ أكثر استفاضة عن الفروقات المهمّة بينهما. تنطبق معظم النقاط الواردة في هذا الدرس على باقي أنظمة BSD أيضًا رغم تركيزنا على FreeBSD فقط.</p></div><div id="wmd-preview-section-27"><h2 id="السمات-المشتركة-بين-freebsd-و-لينكس">السمات المشتركة بين FreeBSD و لينكس</h2><p>قبل أن نبدأ بدراسة نقاط الاختلاف بين FreeBSD و لينكس دعونا نتحدث بصورة عامة عن القواسم المشتركة بينهما. <br>ينتمي كلا النظامين إلى دائرة البرمجيات الحرّة ومفتوحة المصدر؛ حيث يمكن للمستخدمين الإطلاع على الشيفرة المصدرية، التعديل عليها والمساهمة في تطويرها، وذلك رغم استخدام كل منهما لأنواع رخص مختلفة (المزيد عن هذا لاحقًا). <br>ويُعتبر كلًا من FreeBSD و التوزيعات المبنية على غنو لينكس من عائلة الأنظمة الشبيهة بيونكس Unix-like أساسًا، حيث يمتلك FreeBSD جذورًا شديدة الصلة بنظام يونكس في الماضي، في المقابل أُنشئ غنو لينكس من الصفر كبديلٍ حرّ للأنظمة الشبيهة بيونكس. هذا الترابط يُعطينا لمحة عن أسلوب تصميم النظامين، كيفيّة تفاعل المكوّنات بين بعضها البعض، والتوقعات العامة حول كيف يجب أن يبدو النظام وكيف تُنجز المهام عليه. <br>لهذه الاعتبارات فإن FreeBSD وتوزيعات لينكس المختلفة تتقاسم الكثير من الأدوات والتطبيقات. ورغم أنّ بعض الحالات تُحتّم وجود اختلافات في إصدارات هذه البرامج بين النظامين، إلا أنه يمكن وبسهولة أكثر تمرير البرامج بينهما مما لو كنّا نتعامل مع أنظمة غير شبيهة بيونكس non-Unix. <br>بعد أخذ هذه النقاط بعين الاعتبار ننتقل الآن إلى مناقشة المجالات التي تختلف فيها هاتين العائلتين من أنظمة التشغيل، وكلي أمل أن يساعدك الإطلاع على القواسم المشتركة السابقة بفهم أكثر دقّة لنقاط الاختلاف التالية.</p></div><div id="wmd-preview-section-28"><h2 id="الاختلاف-في-الرخص">الاختلاف في الرخص</h2><p>أحد الفروق الأساسية بين نظامي FreeBSD و لينكس هي مسألة التراخيص المُستخدمة. <br>إذ تُرخّص نواة لينكس، تطبيقات غنو الأساسيّة GNU-based، والعديد من البرامج المكتوبة لبيئة لينكس أساسًا تحت رخصة GPL أو رخصة غنو العموميّة، والتي غالبًا ما توصف بأنها رخصة “حقوق متروكة copyleft”، حيث تسمح بحرية عرض، توزيع، وتعديل الشيفرة المصدريّة للبرنامج مع مطالبة الأعمال المشتقة منها الالتزام بذات الرخصة. <br>وفي المقابل يُرخّص نظام FreeBSD بما في ذاك النواة وأية أدوات تمّ إنشاؤها من قبل مُساهمي FreeBSD تحت "رخصة BSD"، والتي توصف بأنها أكثر تساهلًا من GPL حيث لا تطلب من الأعمال المشتقّة استخدام الرخصة عينها. وهذا يعني بأنّ أي شخص أو منظمة يمكنها استخدام أو توزيع أو تعديل برامج BSD دون الحاجة لإعادة المساهمات إلى المنبع أو إتاحة الشيفرة المصدرية لتغييراتها تلك. الشروط الوحيدة المفروضة هي إرفاق نسخة من رخصة BSD مع الشيفرة المصدرية أو مع وثائق العمل المشتق (بناءً على أسلوب الإصدار) إضافةً إلى تنويه حدود المسؤولية. على العموم تُعتبر رخصة BSD قصيرة للغاية ويمكنك الإطلاع على محتواها <a rel="external nofollow" href="http://choosealicense.com/licenses/bsd-2-clause/">من هنا</a>. <br>يميل المستخدم في اختياره لأحد هذين الترخيصين بناء على الفلسفة التي يتبعها واحتياجاته في العمل، فرخصة GPL تهتم بتعزيز المشاركة والإبقاء على نظام برمجي مفتوح مُلزمةً الأعمال المشتقة بنفس الترخيص وذلك فوق أية اعتبارات أخرى؛ لذا تحرص البرمجيات الاحتكارية بشدّة ألا تضم أجزاء مُرخّصة وفق GPL. من ناحية أخرى تسمح رخصة BSD بتضمين برامجها في إصدارات احتكارية مغلقة المصدر؛ وهذا ما يجعلها أكثر جاذبية للعديد من الشركات والأفراد التي تأمل بتحقيق دخل من بيع البرامج الخاصة والتكتم على المصدر. <br>إن فهم هاتين الفلسفتين يساعدنا على ادارك ما يقف وراء خيارات المطوّرين والتفضيلات التي يميلون إليها، ويبقى بالتأكيد لكل فلسفةٍ ما يميزها عن الأخرى.</p></div><div id="wmd-preview-section-29"><h2 id="نشأة-freebsd">نشأة FreeBSD</h2><p>من الفروق المهمّة بين نظامي FreeBSD و لينكس هو تاريخ نشأة كل واحدٍ منهما، فإلى جانب الاختلافات في التراخيص التي ناقشناها للتوّ، لعل هذا هو أكبر مؤثّر على اختيار المطورين لهذه الفلسفة أو تلك. <br>كتب لينوس تورفالدز النواة لينكس بدءًا من عام 1991 أثناء دراسته في جامعة Helsinki في فنلندا كهواية مستخدمًا حاسوبه الشخصي العامل بنظام MINIX، لكن وبسبب القيود المفروضة على استخدام وتطوير MINIX كتب لينوس بديلًا له. بإضافة نواة لينوس مع الكثير من مكونات النظام المكتوبة من طرف GNU حصلنا على نظام التشغيل غنو/لينكس الذي يملك عددًا من خصائص الأنظمة الشبيهة بيونكس على الرغم من أنه لم يُكتب اعتمادًا على نسخة سابقة من يونكس؛ إذ انطلق لينوس مع نواته بدءًا من الصفر ممّا أورث المشروع اختلافاتٍ أيضًا من الناحية التصميمية عن تلك النظم التي تربطها مع يونكس علاقة أوثق. <br>في المقابل يرتبط FreeBSD مع يونكس بصلات مباشرة. حيث أُنشئ BSD أو توزيعة برمجيات بيركلي كإحدى توزيعات نظام التشغيل يونكس في جامعة كاليفورنيا في بيركلي، والذي أضاف عددًا من الميزات على نظام التشغيل يونكس المملوك آنذاك لشركة AT&amp;T مع رخصة تسمح بالتعديل والتحسين. في وقتٍ لاحق اتُّخِذ قرار لمحاولة استبدال أكبر جزء ممكن من نظام التشغيل الخاص بـ AT&amp;T مع بدائل حرّة ومفتوحة المصدر بحيث لا تُجبر المستخدمين الحصول على رخصة من AT&amp;T لاستعمال BSD. في نهاية المطاف تمّ إعادة كتابة جميع المكونات المعتمدة على رخصة AT&amp;T وإتاحتها برخصة BSD وتطويعها لتعمل على معالجات i386 والتي صدرت باسم “386BSD”. لاحقًا اشتقت FreeBSD من هذه الإصدارة في محاولة للحفاظ على عملية التطوير، دعمها وتحسينها، فيما بعد أعيد إصدار FreeBSD بناء على النسخة المسماة BSD-Lite والتي لا تحتوي على أية شيفرة من يونكس المملوك لـ AT&amp;T نتيجة إحدى الدعاوي القضائية وللتخلص من كافة مشاكل الترخيص. <br>خلال هذه العملية الطويلة ومتعدّدة المراحل من الاشتقاق غدا FreeBSD غير مرتبط بشروط الترخيص المُقلقة. حيث ركّز المطوّرون على كتابة نظام يستفيد ويستثمر في أسلوب يونكس لإنجاز المهام؛ يعود ذلك ربّما إلى الافتراض الشائع بأنّ FreeBSD هو النسخة المجانية من يونكس، وقد أثّرت هذه الجذور على عمليات التطوير اللاحقة وهي التي تقف اليوم وراء بعض النقاط التي سنتطرّق إليها.</p></div><div id="wmd-preview-section-30"><h2 id="فصل-جوهر-نظام-freebsd-عن-التطبيقات-الإضافية">فصل جوهر نظام FreeBSD عن التطبيقات الإضافية</h2><p>الفارق الرئيسي من الناحية التصميمية بين FreeBSD و توزيعات غنو/لينكس يكمن في مجال scope النظام. حيث طوّر فريق FreeBSD نظام التشغيل والنواة كوحدة واحدة متجانسة، بينما يشير “لينكس” من الناحية الفنيّة إلى النواة فقط، والتي تُضاف إلى باقي المكونات الأخرى متنوعة المصادر لتشكيل ما يعرف بنظام غنو/لينكس. <br>ورغم أنّ هذا يبدو كفارقٍ صغير للوهلة الأولى، إلا أنّه يؤثّر في الواقع على أسلوب تفاعلك مع النظام وإدارته، ففي لينكس تضم التوزيعة مجموعة مختارة من الحزم بعد التأكد من توافقها معًا بشكل جيد، وبكل الأحوال فإن معظم المكوّنات الأخرى تأتي من قبل مجموعة واسعة من المصادر والمطوّرين وموزّعي البرامج والمشرفين والتي تتضافر جهودهم معًا لضمان عمل النظام بشكل صحيح. <br>بهذا المعنى، لا تختلف كثيرًا المكونات الأساسية للنظام عن الحزم الاختيارية المتاحة من خلال المستودعات الإضافية، حيث تُستخدم أدوات إدارة الحزم نفسها مع مجموعتي المكونات هذه بنفس الطريقة تمامًا. قد تُخصّص التوزيعة مستودعات مختلفة للحزم تبعًا للفِرق المسؤولة عن صيانتها (المستودعات الأساسية، الإضافية، وتلك الخاصة بالمجتمع)، حيث يتسنى لفريق التطوير الأساسي التركيز على مجموعة الحزم المتاحة تحت المستودعات الأساسيّة فقط، إلا أن هذا الفصل بغرض تنظيمي ولا يؤدّي إلى أية اختلافات في إدارة الحزم من وجهة نظر المستخدم النهائي. <br>في المقابل يُطوّر فريق FreeBSD لبّ نظام التشغيل بأكمله بما في ذلك النواة ومجموعة البرامج الأساسيّة التي كُتبت من قبلهم مما يجعل النظام يبدو كوحدة واحدة متجانسة. لذا فليس من البساطة استبدال أحد المكونات ببديل آخر خارجي بسبب التجانس والتكامل بين جميع المكونات؛ وهذا ما يسمح لفريق FreeBSD إدارة نظام التشغيل بأكمله عن قرب وضمان التوافق المناسب بين أجزائه والتنبؤ بسلوكه ومشاكله. <br>كما تُعتبر البرامج الأساسيّة المُضمّنة مع لبّ نظام التشغيل معزولة تمامًا عن المكونات الاختياريّة الأخرى، حيث يقدّم فريق FreeBSD مجموعة كبيرة من البرامج الإضافية، تمامًا كما مع توزيعات لينكس، إلا أنّ إدارتها تبقى منفصلة، فبينما يُحدّث النظام الأساسي كوحدة واحدة، يتم تحديث البرامج الاختيارية بشكل مستقل.</p></div><div id="wmd-preview-section-31"><h2 id="كيف-تتشكل-الإصدارات">كيف تتشكّل الإصدارات؟</h2><p>تتشكّل إصدارات لينكس نتيجة دمج مجموعة كبيرة ومتنوعة من البرامج من مختلف المصادر مع إدخال بعض التعديلات عند الحاجة، ويُقرّر مشرفو التوزيعة المكونات التي يريدون تضمينها في وسائط التثبيت وتلك التي يرغبون بإتاحتها عبر المستودعات الأخرى، بعد اختبار توافق المكونات مع بعضها يتم إصدار التوزيعة مُضمّنةً بالبرمجيات المُختبرة. <br>ذكرنا في الفقرة السابقة: </p><ul><li>يُطوّر فريق FreeBSD الجزء الأكبر من نظام التشغيل FreeBSD. </li><li>بشكل رئيسي يُنتج الفريق لبّ نظام التشغيل الأساسي. </li><li>تُعتبر البرمجيات الأساسية وحدة متجانسة. </li></ul><p>تقودنا هذه النقاط إلى النهج المُتبع في إصدار البرامج هنا والمختلف عن ما تتبعه معظم توزيعات لينكس، حيث يُنظّم FreeBSD المهام على مستوى نظام التشغيل محتفظًا بكل المكونات الأساسية في مستودعٍ واحد للشيفرة المصدرية، الأمر الذي يُفرز عددًا من النتائج المهمة. <br>في البداية، وبسبب تطوير جميع الأدوات جنبًا إلى جنب في مستودعٍ واحد، يتشكّل الإصدار ببساطة عن طريق اختيار إحدى تنقيحات فروع المستودع، وهذا يشبه الطريقة التي تصدر بها معظم البرامج المستقرة حيث يتم اختيارها من شيفرة أساسية منظمة. <br>وبما أنّ نظام التشغيل الأساسي بأكمله تحت التطوير النشط، هذا يعني بأنّه يمكن للمستخدمين “تتبّع track” فروع أو درجات مختلفة من الاستقرار اعتمادًا على درجة الاختبار التي يفضّلون عندها استخدام النظام، وهكذا فالمستخدمون ليسوا بحاجة لانتظار المطورين ريثما يصادقوا على التغييرات الجديدة كي تصبح جاهزة للاستخدام على أنظمة تشغيلهم. <br>يشبه هذا إلى حدٍ ما تتبّع مستخدمي لينكس لمستودعات مختلفة من ناحية الاستقرار ورقم الإصدار، ففي لينكس يمكنك تتبّع مستودع حزمة ما، بينما في FreeBSD أنت تتبع فرع من مستودع مركزي.</p></div><div id="wmd-preview-section-32"><h2 id="الفروق-البرمجية-وتصميم-النظام">الفروق البرمجيّة وتصميم النظام</h2><p>سنناقش فيما تبقى من نقاط الفروق المتعلقة بالبرمجيات نفسها والصفات العامة لكل نظام.</p></div><div id="wmd-preview-section-33"><h3 id="الحزم-المدعومة-والتثبيت-من-المصدر">الحزم المدعومة والتثبيت من المصدر</h3><p>أحد الفروق الرئيسية بين نظام FreeBSD و معظم توزيعات غنو/لينكس من وجهة نظر المستخدم هي كم البرامج المتاحة والمدعومة بصيغة مُحزّمة أو كبناء من المصدر. <br>ففي حين توفّر معظم توزيعات لينكس حزم البرامج مُترجمة فقط وجاهزة للتثبيت الفوري من المستودعات الرسميّة، فإن FreeBSD توفّر إضافة إلى ذلك نظام لبناء وتثبيت الحزم من المصدر، وهذا ما يتيح لك حريّة الاختيار بين تركيب الحزم مسبقة الترجمة بقيم افتراضية معقولة أو بناءها من المصدر وتخصيصها بما يلائم مع احتياجاتك من خلال نظام يُدعى المنافذ “ports”. <br>يضم نظام المنافذ هذا مجموعة من البرامج التي يملك FreeBSD دليلًا عن كيفيّة بنائها من المصدر، تُتاح هذه البرامج في الدليل “/usr/ports” بشكلٍ هرمي مُنظّم حيث يمكن للمستخدمين من خلالها الوصول للبرامج. <br>تضم هذه الأدلة عددًا قليلًا من الملفات والتي تُحدّد مواقع الملفات المصدريّة للبرامج، إضافةً لتعليمات الترجمة والتي تتيح بناء البرنامج بشكل متوافق مع FreeBSD. <br>تُنتَج الإصدارات المُحزمّة سلفًا من البرامج من قبل نظام المنافذ أيضًا، ممّا يجعل FreeBSD توزيعة مصدرية بالدرجة الأولى مع توفير حزم مُترجمة للتسهيل، ويبقى بإمكانك تركيب البرامج من كلا النوعين أو أحدهما على نظام التشغيل الخاص بك ومن خلال نظام إدارة البرمجيات نفسه.</p></div><div id="wmd-preview-section-34"><h3 id="الاختلاف-في-نهج-تعديل-البرامج">الاختلاف في نهج تعديل البرامج</h3><p>إحدى الأشياء التي قد تبدو غريبة بعض الشيء على مستخدمي توزيعات لينكس الشائعة هو أن FreeBSD لا تُدخل تعديلات على البرامج بعد المنبع إلا للضرورة. حيث تجري العديد من توزيعات لينكس تعديلات متنوعة على البرامج بهدف جعلها أسهل في التواصل والتشبيك مع مكونات النظام الأخرى أو لتسهيل إدارتها، إحدى الأمثلة على ذلك هي إعادة هيكلة هرمية إعدادات خوادم الوِب الشائعة لجعل عملية ضبط الخوادم قياسيّة أكثر. <br>وعلى الرغم من أن المستخدمين يرون هذه التعديلات مفيدة غالبًا، فهناك نقاط ضعف تُعيب هذا النهج، فهو على سبيل المثال يفترض معرفة ما هي الإعدادات الأفضل للمستخدمين، كما أنه يُصعّب التعامل مع البرنامج على المستخدمين القادمين من منصات أخرى بمقدار انحرافه عن مواصفات المنبع. <br>يُعدّل مشرفو نظام FreeBSD البرامج بواسطة “رقع patches”، إلا أنّ هذه التعديلات غالبًا ما تكون أكثر تحفظًا مما تقوم به توزيعات لينكس, وهي تهدف بالعموم إلى إدخال تغييرات ضرورية لبناء الحزم من المصدر مع بعض الافتراضات المناسبة لضمان عملها بشكل سليم في بيئة FreeBSD. لا يتم تعديل ملفات ضبط البرامج والتي توضع مع ملفات النظام بشكل كبير عادةً، لذا فقد تحتاج إلى بعض العمل الإضافي لتأمين تواصل وتشبيك مناسب بينها وبين باقي مكونات النظام.</p></div><div id="wmd-preview-section-35"><h2 id="نكهات-freebsd-للأدوات-الشائعة">نكهات FreeBSD للأدوات الشائعة</h2><p>إحدى الجوانب التي قد تسبب ارتباك لمستخدمي لينكس في نظام FreeBSD هو الاختلاف البسيط في أسلوب عمل الأدوات المعروفة مقارنة مع أنظمة لينكس. <br>يحتفظ فريق FreeBSD بنسخهم الخاصة لعددٍ كبير من الأدوات الشائعة، فبينما تستورد توزيعات لينكس العديد من أدواتها من فريق GNU، فإن فريق FreeBSD يعتمد تنويعاته الخاصة من هذه الأدوات. <br>في الحقيقة هناك عدّة أسباب لإتباع هذا النهج، أولها أنّ فريق FreeBSD مسؤول عن تطوير وصيانة لبّ نظام التشغيل الأساسي، إضافةً للتحكم في عملية تطوير هذه التطبيقات وإدراجها تحت رخصة FreeBSD إذا كانت ضرورية أو مفيدة. بعض هذه الأدوات ترتبط أيضًا بشكل وثيق وظيفيًا مع أدوات BSD و يونكس التي تم اشتقاقها عنها، وهذا خلافًا لأدوات GNU والتي تميل لعدم التوافق عكسيًا بين بعضها في العادة. <br>غالبًا ما تُعبّر هذه الاختلافات عن نفسها في خيارات الأوامر أو صياغتها عمومًا. فإذا كنتَ ترغب بتنفيذ الأوامر بأسلوب ما موافق لما هو عليه الحال في أجهزة لينكس فإنّ هذا قد لا يعمل على خوادم FreeBSD، لذا فمن المهم دومًا أن تطلع على أدلة استخدام الأوامر man للتحقق من الخيارات المتاحة على أنظمة FreeBSD.</p></div><div id="wmd-preview-section-36"><h3 id="صدفة-شل-shell-القياسية">صدفة شل Shell القياسيّة</h3><p>من النقاط الأخرى التي يُفترض أن تسبب بعض الارتباك لمستخدمي لينكس في FreeBSD هو أنّ صدفة شل الافتراضية ليست bash وإنما tcsh، وهي النسخة المُحسنّة من csh المكتوبة بلغة C بواسطة BSD. عدم اختيار bash يعود إلى كونها إحدى مكونات نظام GNU وليس BSD. <br>وبينما تعمل كلا الصدفتين بأسلوب متشابه في سطر الأوامر، فإن نصوص سكربت البرمجية لن تعمل في tcsh. إلا أنّه يمكن استخدام صدفة Bourne الأساسية والمعروفة بصدفة sh بهدف الحصول على قدر أعلى من الموثوقية لتجنب المشاكل المرتبطة بكل من tcsh و csh، علاوةً على سهولة تغيير الصدفة الافتراضية للنظام إلى صدفة bash إن كنتَ تفضّل ذلك.</p></div><div id="wmd-preview-section-37"><h3 id="طبقات-أكثر-لنظام-الملفات">طبقات أكثر لنظام الملفات</h3><p>ذكرنا آنفًا أن FreeBSD يُميّز بين نظام التشغيل الأساسي والمكونات الاختيارية (المنافذ)، والتي يمكن تثبيتها أعلى تلك الطبقة، وهذا ما ينعكس على الأسلوب المُتبع في FreeBSD لتنظيم المكونات ضمن هياكل الملفات. <br>توضع الملفات التنفيذية في لينكس عادةً ضمن الأدلة <span style="font-family:courier new,courier,monospace;">bin</span> ،<span style="font-family:courier new,courier,monospace;">/sbin</span> <span style="font-family:courier new,courier,monospace;">،/usr/sbin/</span>، و <span style="font-family:courier new,courier,monospace;">usr/bin/</span> بناءً على الغرض منها ومدى أهميتها لعمل الوظائف الأساسيّة، وبينما يُراعي FreeBSD هذا المعيار التنظيمي فإنه يُضيف مستوىً آخر من الفصل بين المكونات المثبتة كجزء من النظام الأساسي أو تلك الاختيارية (المنافذ)، حيث توضع أدوات النظام الأساسية في أحد الأدلة السابقة، وتُعتمد الأدلة <span style="font-family:courier new,courier,monospace;">usr/local/bin<span style="line-height: 22.3999996185303px;">/</span> </span>و <span style="font-family:courier new,courier,monospace;">usr/local/sbin<span style="line-height: 22.3999996185303px;">/</span> </span>لبرمجيات المنافذ. <br>يضم الدليل <span style="font-family:courier new,courier,monospace;">usr/local/</span> بنية تعكس صيغة الأدلة <span style="font-family:courier new,courier,monospace;">/</span> و <span style="font-family:courier new,courier,monospace;">usr/</span>، وهو الدليل الجذر الرئيسي للبرامج المُثبتة من نظام المنافذ، وغالبًا ما يتم حفظ إعدادات المنافذ عبر ملفات تُخزن في <span style="font-family:courier new,courier,monospace;">usr/local/etc/</span>، بينما تُخزّن ملفات الضبط الخاصة بالنظام الأساسي في <span style="font-family:courier new,courier,monospace;">etc/</span> كالمعتاد. وهذا يُسهّل معرفة إذا كان برنامج ما جزء من نظام المنافذ الأساسي ويُبقي نظام الملفات نظيف.</p></div><div id="wmd-preview-section-38"><h2 id="كلمة-أخيرة">كلمة أخيرة</h2><p>يتقاسم FreeBSD و لينكس العديد من الخصائص المشتركة، وإذا كنت قادمًا من إحدى توزيعات لينكس فمن المهم إدراك وفهم نقاط الاختلاف بينهما، وما يُميّز كل نظام عن الآخر، لمعرفة الأسباب التي دفعت بأنصار كل طرف إلى اختياره. <br>التعامل مع FreeBSD كنظام تشغيل مستقل بدلًا من النظر إليه من خلال عدسة لينكس سوف يجنبك مشاكل عدّة في الفهم والتعامل ويساعدك على بناء تجربة أفضل عمومًا مع FreeBSD. <br>آمل أن أكون قد تمكنت من شرح الاختلافات بين النظامين بشكل جيّد.</p><p>ترجمة وبتصرف للمقال: <a rel="external nofollow" href="https://www.digitalocean.com/community/tutorials/a-comparative-introduction-to-freebsd-for-linux-users">A Comparative Introduction to FreeBSD for Linux Users</a> لصاحبه Justin Ellingwood.</p></div>
]]></description><guid isPermaLink="false">97</guid><pubDate>Fri, 14 Aug 2015 19:05:00 +0000</pubDate></item></channel></rss>
