English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يوضح هذا المقال تفاصيل إنشاء بيئة PHP في نظام Linux، حيث أن PHP مكتوب بلغة C، وكان يعمل أولاً على نظام Linux، لذا فإن Linux هو أفضل بيئة لـ PHP.
للبرامج المستخدمة في هذا المقال، انقر على هذا الرابط للتحميل.
لم يعد CentOS 5.5 يتم تقديمه بشكل رسمي، ونوصي باستخدام إصدارات CentOS 6 وما فوق:
رابط تحميل CentOS 6.8: https://ar.oldtoolbag.com/softs/499124.html
رابط تحميل CentOS 7.2: https://ar.oldtoolbag.com/softs/499109.html
>>> 【انقر للتحميل】
في هذا المقال، يقوم الكاتب بتجربة CentOS 5.5 الذي تم تثبيته باستخدام محاكي (VMware). ستبدأ الآن في شرح التثبيت.
1. التحضير
أولاً، تأكد من أن Apache و MySQL و PHP مثبتة على نظام Linux الخاص بك، وإذا كانت مثبتة، قم بإزالتها أولاً.
تحقق من تثبيت البرنامج (مثال: Apache)
[root@gamejzy Linux]# rpm -qa|grep httpd
الاشارة: rpm -qa هو عرض جميع البرامج المثبتة على الجهاز. grep httpd هو فرز البرامج المتعلقة ب httpd (Apache). الاشارة: grep php هو عرض PHP؛grep mysql هو عرض MySQL
إذا كان هناك فراغ بعد تنفيذ الأمر، فإن ذلك يعني أن لا يوجد برنامج Apache مثبت على الجهاز، وإذا كان هناك حالة مثل ذلك، فإن ذلك يعني أن البرنامج مثبت بالفعل。
إذا كان مثل الصورة المرفقة،فسيكون من الضروري إزالة هذه البرمجيات الثلاث.
أمر الإزالة كالتالي:
[root@gamejzy Linux]# rpm -e httpd-2.2.3-43.el5.centos --nodeps
ملاحظة:--nodeps هو إلزامي لإزالة
ثانيًا:تأكد من أن نظام Linux الخاص بك يحتوي على مُعتمد gcc وg++
سهولة التحقق منها بسيطة،أدخل "gc" أو "g+" في سطر الأوامر،أضغط على مفتاح tab،انظر إذا كان هناك أمر يظهر في الأسفل.
إذا لم يكن لديك أي شيء،لا يهم،طريقة تثبيت gcc وg++ بسيطة جدًا
تثبيت gcc:
yum -y install gcc
تثبيت g++:
yum install gcc-c++
ثالثًا:انسخ جميع البرامج (معظمها مكتبات tar) إلى دليل /tmp/lamp وأفك ضغطها
أمر فك ضغط tar.gz (مثال على برنامج php): tar zxvf php-5.2.6.tar.gz
بعد تنفيذ هذا الأمر،سيتم إنشاء مجلد php-5.2.6 في الدليل الحالي،وسيتم وضع جميع ملفات الفكاك في مجلد php-5.2.6
الرجاء اتباع نفس الطريقة لفك ضغط جميع الحزم،وإزالة جميع ملفات *.tar.gz
[root@gamejzy lamp]# rm -rf *.gz
أمر القضاء على جميع ملفات .gz
رابعًا:تعريف تثبيت حزم البرامج
عملية تثبيت كل حزمة برمجيات المصدر في نظام Linux كالتالي:
△ تحديد المعلمات (configure)
△ ترميز (make)
△ تثبيت (make install)
2-إنشاء بيئة LAMP (الرجاء اتباع الترتيب المحدد أدناه لتثبيت)
جميع البرامج هنا يتم تثبيتها تحت /usr/local
أولاً:تثبيت libxml
ترتيب التثبيت: 1-دخول دليل libxml؛2-تحديد معلمات (بما في ذلك مسار التثبيت؛برامج التبعية؛والميزات المثبتة)؛3-الترميز;4-التثبيت.ملاحظة:تثبيت جميع حزم البرامج يشبه هذا
[root@gamejzy lamp]# cd libxml2-2.6.30/ [root@gamejzy libxml2-2.6.30]# ./configure --prefix=/usr/local/libxml2
./configure لتحديد معلمات حزمة البرنامج،--prefix يشير إلى مسار التثبيت المحدد،معظم الدلائل إذا لم تكن موجودة ستُنشأ تلقائيًا،بعضها قد لا يتم إنشاؤه،وسيكون علينا إنشاؤه يدويًا
[root@gamejzy libxml2-2.6.30]# make && make install
أمر الأعلى يجمع التجميع وتثبيت البرنامج في خطوة واحدة، بسبب صغر البرنامج، فإن سرعة التثبيت تكون سريعة، ولكن إذا كان البرنامج كبيرًا، قد يستغرق وقتًا أطولًا.
أولاً، تثبيت libmcrypt
[root@gamejzy lamp]# cd libmcrypt-2.5.8/ [root@gamejzy libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt [root@gamejzy libmcrypt-2.5.8]# make && make install
ثالثًا، تثبيت zlib
[root@gamejzy lamp]# cd zlib-1.2.3/ [root@gamejzy zlib-1.2.3]# ./configure [root@gamejzy zlib-1.2.3]# make && make install
لا تتبع --prefix في ./configure، دعها تثبت في الدلع المبدئي، لأن تثبيت libpng سيستخدم zlib.
رابعًا، تثبيت libpng
[root@gamejzy lamp]# cd libpng-1.2.31/ [root@gamejzy libpng-1.2.31]# ./configure --prefix=/usr/local/libpng [root@gamejzy libpng-1.2.31]# make && make install
خامسًا، تثبيت jpeg6
هذا البرنامج لا يخلق الدلائل تلقائيًا عند تكوينه، ويجب علينا إنشاؤها يدويًا
[root@gamejzy libpng-1.2.31]# mkdir /usr/local/jpeg6 [root@gamejzy libpng-1.2.31]# mkdir /usr/local/jpeg6/bin [root@gamejzy libpng-1.2.31]# mkdir /usr/local/jpeg6/lib [root@gamejzy libpng-1.2.31]# mkdir /usr/local/jpeg6/include [root@gamejzy libpng-1.2.31]# mkdir -p /usr/local/jpeg6/man/man1
生成目录已结束!
[root@gamejzy lamp]# cd jpeg-6b/ [root@gamejzy jpeg-6b]# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static [root@gamejzy jpeg-6b]# make && make install
./configure 参数说明:
--enable-shared 创库共任库使用GNU的libtool
--enable-static 创库静态库使用GNU的libtool
四、安装freetype
[root@gamejzy lamp]# cd freetype-2.3.5/ [root@gamejzy freetype-2.3.5]# ./configure --prefix=/usr/local/freetype [root@gamejzy freetype-2.3.5]# make && make install
三、安装autoconf
[root@gamejzy lamp]# cd autoconf-2.61/ [root@gamejzy autoconf-2.61]# ./configure [root@gamejzy autoconf-2.61]# make && make install
该软件直接安装在默认目录下。
二、安装GD
[root@gamejzy lamp]# cd gd-2.0.35/ [root@gamejzy gd-2.0.35]# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6/ --with-png=/usr/local/libpng/ --with-freetype=/usr/local/freetype/ [root@gamejzy gd-2.0.35]# make && make install
./configure 参数说明:
--with-jpeg=/usr/local/jpeg6/ 指定到哪里发现jpeg库文件位置
--with-png=/usr/local/libpng/ 指定到哪里发现png库文件位置
--with-freetype=/usr/local/freetype/ لتعيين مكان البحث عن مكتبة FreeType 2.x للاحترافية
الاشارة: قد يظهر هذا الخطأ عند تثبيت هذا البرنامج، كما ترون في الصورة التالية:
إذا ظهر هذا الخطأ، فحلولها:
[root@gamejzy gd-2.0.35]# vi gd_png.c
ابحث عن الكلمة المفتاحية "png.h" باستخدام الأمر:/png.h انقر Enter
استبدالها بـ:/usr/local/libpng/include/png.h
النتيجة كما ترون في الصورة التالية:
حفظ الخروج، واستمرار تنفيذ "make && make install" للوصول إلى نجاح التثبيت.
التاسع: تثبيت Apache (مفتاحي)
[root@gamejzy lamp]# cd httpd-2.2.9/ [root@gamejzy httpd-2.2.9]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-static-support [root@gamejzy httpd-2.2.9]# make && make install
شرح المعلمات في ./configure:
--sysconfdir=/etc/httpd لتعيين موقع ملفات تكوين خادم Apache (مثل httpd.conf وغيرها)
--with-included-apr لاستخدام نسخة متضمّنة من APR/APR-Util
--enable-so لترميز الديناميكية المشتركة (DSO)
--enable-deflate=shared لدعم تحسين نقل الت编码
--enable-expires=shared لتحكم بالمدة النهائية
--enable-rewrite=shared لتحكم URL بناءً على القواعد
--enable-static-support لإنشاء نسخة رابط ثابت لدعم
اختبار خادم Apache
1、تحقق من وجود مجلد apache2 تحت مجلد /usr/local/;
2、تحقق من وجود مجلد httpd تحت مجلد /etc/، أي ما إذا كان يحتوي على ملف httpd.conf ومدخل extra وما إلى ذلك
3、فتح خادم apache
[root@gamejzy httpd]# /usr/local/apache2/bin/apachectl start
stop (إغلاق)、restart (إعادة التشغيل)
4、تحقق من بدء خادم Apache، أي التحقق من بدء منفذ 80
[root@gamejzy httpd]# netstat -tnl|grep 80
بعد تنفيذ الأمر، سيظهر ما يلي، مما يعني أن التشغيل قد بدأ
tcp 0 0 :::80 :::* LISTEN
5、زيارة في المتصفح
إذا كنت على الحاسوب المحلي، أدخل في شريط العناوين في المتصفح:http://localhost أو http://127.0.0.1
إذا كان الاتصال عن بُعد، مثل: اتصال SSH، فأدخل عنوان IP الخاص بلينكس في شريط العناوين في المتصفح. مثل:http://192.168.1.233
إذا ظهرت كلمات كبيرة في صفحة الويب،
It works!
”توضيح أن تثبيت Apache ناجح.
اختبار الانتهاء!
إضافة بدء Apache تلقائيًا عند بدء النظام
[root@gamejzy /]# echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local
عشرون、تثبيت MySQL (مهم)
قبل تثبيت MySQL، قم بإنشاء مجموعة واسم مستخدم خاص بادارة MySQL
إنشاء مجموعة باسم 'mysql'
[root@gamejzy /]# groupadd mysql
إنشاء مستخدم باسم 'mysql'، يجعله ينتمي إلى مجموعة 'mysql'
[root@gamejzy /]# useradd -g mysql mysql
[root@gamejzy lamp]# cd mysql-5.0.41/ [root@gamejzy mysql-5.0.41]# ./configure --prefix=/usr/local/mysql --with-extra-charsets=all [root@gamejzy mysql-5.0.41]# make && make install
./configure شرح الأ 参数:
--with-extra-charsets=all لتثبيت جميع مجموعات الحروف لـ MySQL
انتبه، إذا ظهرت أخطاء مثل التالية عند تشغيل ./configure
سبب: عدم وجود حزمة تثبيت ncurses
حل المشكلة: تثبيت حزمة البرنامج المناسبة
yum list|grep ncurses yum -y install ncurses-devel
بعد تثبيت ncurses، قم بـ ./configure!
بعد تثبيت MySQL، يجب إعداد بعض المحتويات، والتي قد تكون معقدة جدًا ولكنها مهمة جدًا، آمل أن تتعلموا بتفضيل
1- إعداد ملف الإعدادات my.cnf، وضعه في دليل /etc/
[root@gamejzy mysql-5.0.41]# cp support-files/my-medium.cnf /etc/my.cnf
2- إعداد ملفات قاعدة البيانات، بعد تثبيت MySQL، لن يظهر ملفات البيانات لـ MySQL ومحل تخزين البيانات
أولاً، قم بالانتقال إلى دليل تثبيت MySQL
[root@gamejzy mysql-5.0.41]# cd /usr/local/mysql/
استخدام mysql_install_db في دليل bin للبدء في إعداد ملفات قاعدة البيانات، باستخدام مستخدم mysql الذي تم إنشاؤه سابقًا
[root@gamejzy mysql]# bin/mysql_install_db --user=mysql
بعد الانتهاء من العمل، سيتم ملاحظة وجود دليل var إضافي في دليل تثبيت MySQL، ويتم وضع ملفات قاعدة البيانات فيه، بما في ذلك قواعد البيانات التي قمنا بإنشائها سابقًا، سيتم وضعها في هذا الدليل.
3- إعداد صلاحيات دليل تثبيت MySQL
تغيير مالك جميع الملفات والدلائل في الدليل إلى root
[root@gamejzy mysql]# chown -R root .
تغيير مالك دليل var إلى مستخدم mysql
[root@gamejzy mysql]# chown -R mysql ./var/
تغيير مجموعة المستخدم لجميع الدلائل والملفات إلى مجموعة mysql
[root@gamejzy mysql]# chgrp -R mysql .
4- تشغيل MySQL
[root@gamejzy mysql]# /usr/local/mysql/bin/mysqld_safe --user=mysql &
& يُستخدم لبدء التشغيل في الخلفية
في هذه المرحلة، إذا رأيت ميناء 3306 باستخدام netstat -tnl، فإن هذا يعني أن التشغيل كان ناجحًا
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
5- تعيين الأذونات، إذا استخدمنا أمر mysql من دليل bin الآن، فإنه يمكننا الدخول
[root@gamejzy mysql]# bin/mysql
هذا خطير جدًا! لذلك، يجب تعيين الأذونات.
قم بتسجيل الدخول إلى MySQL أولاً، استخدم أمر SQL ل�除 المستخدمين الذين ليسوا "localhost" (كل المستخدمين في MySQL موجودون في جدول user في قاعدة البيانات mysql)، فقط تترك الحسابات التي يسمح بدخولها من هذا الجهاز.
mysql> delete from mysql.user where Host != 'localhost';
تحديث جداول الأذونات
mysql> flush privileges;
تعيين كلمة المرور للمستخدم root المسموح بدخوله من هذا الجهاز
mysql> set password for 'root'@'localhost'=password('123456');
ملاحظة: يجب تذكر كلمة المرور التي تم تعيينها، وإلا لن يتمكن من الدخول إلى قاعدة بيانات MySQL.
في هذه المرحلة، قد قام مستخدم root لدينا بتعيين كلمة المرور (كلمة المرور هي "123456")، يمكننا اختبار ذلك، أدخل "exit" للخروج من MySQL
في هذه المرحلة، لا يمكن استخدام أمر bin/mysql للدخول إلى قاعدة بيانات MySQL، بل يجب أن يكون كما يلي:
[root@gamejzy mysql]# bin/mysql -h 127.0.0.1 -u root -p123456
-h تحديد اسم المضيف
-u اسم المستخدم
-p كلمة المرور
6- إغلاق خادم قاعدة بيانات MySQL
[root@gamejzy mysql]# bin/mysqladmin -u root -p shutdown
هذا هو مستخدم root في MySQL، بعد تنفيذه سيتم إعلامك بطلب إدخال كلمة المرور، أدخل كلمة المرور:
أدخل كلمة المرور، اضغط Enter لإغلاق قاعدة البيانات.
اطلب أمر التشغيل، انظر الفصل 4
7- إضافة إلى بدء التشغيل المسبق عند التشغيل
[root@gamejzy mysql]# echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.d/rc.local
الحادي عشر: تثبيت PHP (مهم)}
هنا نثبت إصدار PHP العالي php-5.3.19، هناك الكثير من معلمات التثبيت، يرجى الانتباه إليها.
[root@gamejzy lamp]# cd php-5.3.19/ [root@gamejzy php-5.3.19]# ./configure \ > --prefix=/usr/local/php \ > --with-config-file-path=/usr/local/php/etc \ > --with-apxs2=/usr/local/apache2/bin/apxs \ > --with-mysql=/usr/local/mysql/ \ > --with-libxml-dir=/usr/local/libxml2/ \ > --with-png-dir=/usr/local/libpng/ \ > --with-jpeg-dir=/usr/local/jpeg6/ \ > --with-freetype-dir=/usr/local/freetype/ \ > --with-gd=/usr/local/gd2/ \ > --with-mcrypt=/usr/local/libmcrypt/ \ > --with-mysqli=/usr/local/mysql/bin/mysql_config \ > --enable-soap \ > --enable-mbstring=all \ > --enable-sockets
./configure شرح الأ 参数:
--with-config-file-path=/usr/local/php/etc يحدد مسار حفظ ملف تكوين PHP5
--with-apxs2=/usr/local/apache2/bin/apxs يحدد مكان Apache 2 لمستند PHP
--with-mysql=/usr/local/mysql/ يحدد مسار تثبيت MySQL
--with-libxml-dir=/usr/local/libxml2/ يحدد مكان مكتبة libxml2 لمستند PHP
--with-png-dir=/usr/local/libpng/ يحدد مكان مكتبة libpng لمستند PHP
--with-jpeg-dir=/usr/local/jpeg6/ يحدد مكان مكتبة jpeg لمستند PHP
--with-freetype-dir=/usr/local/freetype/ يحدد مكان وضع مكتبة freetype
--with-gd=/usr/local/gd2/ يحدد مكان وضع مكتبة gd
--with-mcrypt=/usr/local/libmcrypt/ يحدد مكان وضع مكتبة libmcrypt
--with-mysqli=/usr/local/mysql/bin/mysql_config يُنشط الميزات الجديدة MySQLi
--enable-soap يُنشط دعم SOAP وخدمات الويب
--enable-mbstring=all يدعم الأحرف المتعددة
--enable-sockets يُنشط خاصية اتصالات socket
المشاكل التي قد تظهر أثناء التجميع:
سيظهر الخطأ التالي:
حل المشكلة:
cd /usr/local/mysql/lib/mysql/ ln -s libmysqlclient.so.15.0.0 libmysqlclient_r.so
بعد التجميع الناجح، سيظهر "Thank you for using PHP." مما يعني نجاح التكوين.
[root@gamejzy php-5.3.19]# make && make install
التجميع والتركيب قد يستغرق وقتًا طويلاً، حاول أن تكون صبورًا!
بعد إكمال التجميع، تحتاج إلى التكوين التالي
1- إعداد ملف تكوين php.ini
[root@gamejzy php-5.3.19]# cp php.ini-development /usr/local/php/etc/php.ini
ملاحظة: /usr/local/php/etc هو الموقع المحدد أثناء التكوين
2- دمج مع Apache
أولاً، افتح ملف تكوين Apache httpd.conf
[root@gamejzy php-5.3.19]# vi /etc/httpd/httpd.conf
سيتم العثور على هذا النوع من المحتويات في الملف
LoadModule php5_module modules/libphp5.so
هذا يعني أن PHP تم تحميله على خادم Apache، وكل ما علينا إخبار خادم Apache هو أي امتدادات ملفات تستخدم تحليل PHP
في محرر vi البحث عن "AddType application/x-compress .Z"
أضف سطرًا في النهاية: AddType application/x-httpd-php .php
تأثير التعديل كما في الشكل التالي
حفظ الخروج، أعد تشغيل Apache
[root@gamejzy php-5.3.19]# /usr/local/apache2/bin/apachectl stop [root@gamejzy php-5.3.19]# /usr/local/apache2/bin/apachectl start
3. اختبار ما إذا كان خادم Apache يمكنه معالجة PHP
أضف ملف phpinfo.php إلى مجلد /usr/local/apache2/htdocs، واكتب الكود التالي:
<?php header("Content-Type:text/html;Charset=utf-8"); phpinfo(); ?>
افتح المتصفح، استعرض هذا الملف، إذا رأيت كما في الشكل التالي، فإن هذا يعني أن PHP تم تثبيته بنجاح وأنه تم دمجه مع خادم Apache بنجاح.
إلى هنا، تم إنشاء بيئة LAMP تحت CentOS، على الرغم من أن الخطوات معقدة، ولكن "إذا كنت تريد أن تجعل العمل جيدًا، فعليك أن تستخدم الأدوات الجيدة"، من المفيد أن تقضي بعض الوقت في إنشاء بيئة مثالية.
بيان: محتوى هذا المقال تم جمعه من الإنترنت، ويتمتع صاحب الحقوق بالملكية، تم جمع المحتوى من قبل المستخدمين على الإنترنت بشكل تلقائي وتحميله، ويتمتع الموقع بعدم امتلاك حقوق الملكية، ولا يتم تعديل المحتوى بشكل يدوي، ولا يتحمل الموقع أي مسؤولية قانونية ذات صلة. إذا اكتشفت أن هناك محتوى يشتبه في حقوق النسخ، فمرحبًا بمراسلتنا عبر البريد الإلكتروني إلى: notice#oldtoolbag.com (يرجى استبدال # ب @ عند إرسال البريد الإلكتروني) للإبلاغ، وقدم الدليل على ذلك، وسيتم حذف المحتوى المشبوه بعد التحقق منه.