ฉันเคยลองมาแล้ว 100 ครั้งฉันใหม่กับ Ubuntu และจบลงด้วยข้อผิดพลาดมากมายที่ฉันไม่เข้าใจแม้แต่คนเดียวสามารถช่วยฉันได้มั้ย ??
นี่คือสิ่งที่ฉันทำ:
- ฉันติดตั้ง PHP
- ฉันติดตั้ง libcurl แล้ว php5-dev
- ฉันลองติดตั้งส่วนขยาย PECL และ
PHPIZE
ไม่พบข้อความ
ฉันเคยลองมาแล้ว 100 ครั้งฉันใหม่กับ Ubuntu และจบลงด้วยข้อผิดพลาดมากมายที่ฉันไม่เข้าใจแม้แต่คนเดียวสามารถช่วยฉันได้มั้ย ??
นี่คือสิ่งที่ฉันทำ:
PHPIZE
ไม่พบข้อความคำตอบ:
ก่อนอื่นคุณจะต้องติดตั้งลูกแพร์ผ่านapt-get
เพื่อรับแพ็คเกจและระบบการกระจายที่จำเป็นซึ่งทั้งสองPEAR
และPECL
ใช้งาน จาก shell prompt ให้ป้อน:
sudo apt-get install php-pear
คุณจะได้รับแจ้งให้ยืนยันการติดตั้ง เพียงแค่กด“ y” และป้อน หากทุกอย่างเป็นไปด้วยดีคุณควรเห็นมันดาวน์โหลดและติดตั้งแพ็คเกจ php-pear
ตอนนี้คุณจะต้องติดตั้งแพ็คเกจ php5-dev เพื่อรับไฟล์ซอร์ส PHP5 ที่จำเป็นเพื่อรวบรวมโมดูลเพิ่มเติม ป้อนข้อมูลต่อไปนี้จากเชลล์พรอมต์:
sudo apt-get install php5-dev
หากคุณไม่ได้ติดตั้งแพ็คเกจ php5-dev และลองติดตั้งส่วนขยาย PECL โดยใช้“ pear install” คุณจะได้รับข้อผิดพลาดดังต่อไปนี้:
sh: phpize: not found
ERROR: `phpize’ failed
ส่วนขยาย PECL_HTTP ต้องการแพ็คเกจการพึ่งพาเพิ่มเติมที่จะติดตั้ง คุณสามารถข้ามส่วนนี้ไปกับส่วนขยายอื่น ๆ ได้:
sudo apt-get install libcurl3-openssl-dev
ตอนนี้เราก็พร้อมที่จะติดตั้งส่วนขยายแล้ว จากเชลล์พร้อมต์ป้อนต่อไปนี้ แต่แทนที่“ pecl_http” ด้วยชื่อส่วนขยาย PECL ที่คุณกำลังติดตั้ง:
sudo pecl install pecl_http
โปรแกรมติดตั้งอาจถามคุณเกี่ยวกับตัวเลือกเฉพาะบางอย่างสำหรับส่วนขยายที่คุณกำลังติดตั้ง คุณอาจกด Enter หนึ่งครั้งขึ้นไปเพื่อยอมรับค่าเริ่มต้นทั้งหมดเว้นแต่คุณต้องการตั้งค่าตัวเลือกเฉพาะสำหรับการติดตั้งของคุณ หากทุกอย่างเป็นไปด้วยดีโมดูลควรดาวน์โหลดสร้างและติดตั้ง
เมื่อการติดตั้งเสร็จสมบูรณ์อาจจะขอให้คุณเพิ่มบรรทัด“ extension =” ลงในไฟล์ php.ini ของคุณ เปิดไฟล์ php.ini ในโปรแกรมแก้ไขข้อความที่คุณชื่นชอบและเพิ่มบรรทัดใต้ส่วนที่ชื่อว่า "ส่วนขยายแบบไดนามิก" ใน Ubuntu ไฟล์ php.ini ดูเหมือนว่าอยู่ในโฟลเดอร์ / etc / php5 / apache2:
sudo nano /etc/php5/apache2/php.ini
ในตัวอย่างนี้การติดตั้งส่วนขยาย pecl_http ขอให้ฉันเพิ่ม“ extension = http.so” ตอนนี้ไฟล์ php.ini ได้รับการอัปเดตแล้ว Apache จะต้องเริ่มต้นใหม่ดังนั้นจึงจะโหลดส่วนขยายใหม่:
sudo /etc/init.d/apache2 restart
make
ก่อนที่จะทำเช่นนี้ เพียงทำsudo apt-get install make
php7.0-dev
แพ็คเกจแทน:sudo apt-get install php7.0-dev
นอกจากคำตอบของ @ Ask ฉันยังต้องทำ:
sudo apt-get install libpcre3-dev
ก่อนที่จะทำงานpecl install pecl_http
เพราะฉันได้รับข้อผิดพลาดเกี่ยวกับpcre.h
:
ข้อผิดพลาดร้ายแรง: pcre.h: ไม่มีการยกเลิกไฟล์หรือการรวบรวมไดเรกทอรีดังกล่าว
นอกจากนี้แทนที่จะแก้ไขphp.ini
ไฟล์ฉันสร้างไฟล์ใหม่ที่เรียกว่าpecl-http.ini
ในconf.d
ไดเรกทอรีย่อยว่าไฟล์อยู่ที่ไหนphp.ini
(บน Ubuntu /etc/php5/apache2/conf.d
)
และฉันต้องการเพิ่มสามบรรทัด:
extension=raphf.so
extension=propro.so
extension=http.so
ในที่สุดเนื่องจากรุ่นที่ติดตั้งนี้2.0.6
ฉันไม่สามารถใช้http_get_request_headers
ฟังก์ชั่น แต่จำเป็นต้องใช้รุ่นเนมสเปซแทน\http\Env::getRequestHeader()
ดูรายละเอียดเพิ่มเติมที่นี่
ps: อย่าลืมรีสตาร์ท apache เมื่อคุณทำเสร็จแล้ว ( service apache2 restart
)
extension=json.so
ก่อนhttp.so
บรรทัดแม้จะมีjson.ini
ไฟล์รวมอยู่ด้วยconf.d
แล้ว
นอกเหนือจากคำตอบของ Maythux และ cwd คุณอาจไม่ต้องการแก้ไขไฟล์ php.ini ของคุณเพราะการเปลี่ยนแปลงเหล่านี้อาจหายไปจากการอัพเดต
Debian (และ Ubuntu) ทำหน้าที่จัดการโมดูล php ในลักษณะเดียวกันกับโมดูล apache ลองดู/etc/php5
คุณจะพบไดเรกทอรีเช่นนี้:
apache2/
cli/
mods-available/
เมื่อคุณมองเข้าไปmods-available
คุณจะเห็นหลายไฟล์เช่น:
curl.ini
gd.ini
json.ini
mysql.ini
…
หากต้องการเปิด / ปิดการใช้งาน mods ที่มีอยู่เหล่านี้สำหรับ APIs ทั้งหมด (apache, cli, cgi) คุณสามารถใช้คำสั่งphp5enmod
หรือphp5dismod
ดังนี้:
$ sudo php5enmod curl
ตามลำดับ
$ sudo php5dismod curl
เหล่านี้จะสร้าง (หรือลบ) การเชื่อมโยงสัญลักษณ์เพื่อไฟล์ config โมดูลในและapache2/conf.d/
cli/conf.d/
คุณยังสามารถระบุ sapi เพื่อเปิด / ปิดการใช้งาน mod สำหรับ (apache ในกรณีนี้):
$ sudo php5enmod -s apache2
pecl install
อาจไม่สร้างไฟล์กำหนดค่าสำหรับraphf
(และโมดูลอื่น ๆ ที่ติดตั้งด้วย) แต่คุณสามารถสร้างได้ด้วยตัวเอง:
$ sudo touch /etc/php5/mods-available/raphf.ini
จากนั้นเขียนในบรรทัดต่อไปนี้:
; configuration for php raphf module
; priority=20
extension=raphf.so
ลำดับความสำคัญเริ่มต้นคือ 20 มันอาจขึ้นอยู่กับประเภทของโมดูลที่คุณต้องใช้ความสำคัญ สำหรับraphf
20 ดูเหมือนว่าดี ( ปรับปรุง : ถ้าคุณกำลังมองหา pecl_http เป็นของรุ่นที่ 2 ก็จะต้องมีการโหลดหลังrapfh
และpropro
เพื่อกำหนดลำดับความสำคัญในmods-available/http.ini
การ30
.)
ด้วยสิ่งที่คุณสามารถเปิดใช้งานโมดูล:
$ sudo php5enmod raphf
(หมายเหตุ: คำตอบของฉันขึ้นอยู่กับ Ubuntu 14.04 แต่อาจทำงานในลักษณะที่เท่าเทียมกันสำหรับ 13.04 ดูhttp://www.lornajane.net/posts/2012/managing-php-5-4-extensions-on-ubuntu )
ตอนนี้วันติดตั้งลูกแพร์ด้วยวิธีนี้เพื่อรับจากแหล่งที่มา:
wget http://pear.php.net/go-pear.phar
php go-pear.phar