คำถามติดแท็ก php

PHP เป็นภาษาสคริปต์วัตถุประสงค์ทั่วไปที่เหมาะอย่างยิ่งสำหรับการพัฒนาเว็บ คู่มือออนไลน์เป็นแหล่งข้อมูลที่ยอดเยี่ยมสำหรับไวยากรณ์ภาษาและมีรายการฟังก์ชั่นในตัวและส่วนขยายที่กว้างขวาง ส่วนขยายส่วนใหญ่สามารถพบได้ใน PECL


2
Php.ini ปิดใช้งาน“ สแกน dir นี้เพื่อหาไฟล์. ini เพิ่มเติม” หรือไม่
ฉันต้องการล็อคการกำหนดค่า php และปิดการโหลดการกำหนดค่า php อื่น ๆ แทนค่าเริ่มต้น (ซึ่งในกรณีของฉันอยู่ที่ /usr/local/php/lib/php.ini) ฉันต้องการปิดการใช้งาน "สแกน dir นี้เพื่อดูเพิ่มเติม ini "หรือหากมีวิธีการตั้ง vars จาก php.ini เป็นแบบถาวรฉันจะไปหามัน ข้อเสนอแนะใด ๆ ขอบคุณล่วงหน้า ฉัน

4
วิธีสร้างไฟล์ robots.txt สำหรับโดเมนทั้งหมดบนเซิร์ฟเวอร์ Apache
เรามีการติดตั้งเว็บเซิร์ฟเวอร์ XAMPP Apache สำหรับการพัฒนาด้วยโฮสต์เสมือนและต้องการหยุดไม่ให้ serps รวบรวมข้อมูลเว็บไซต์ทั้งหมดของเรา สามารถทำได้อย่างง่ายดายด้วยไฟล์ robots.txt อย่างไรก็ตามเราไม่ควรรวม robots.txt ที่ไม่อนุญาตใน vhost ทุกอันแล้วต้องลบออกเมื่อเราใช้งานเว็บไซต์นี้กับเซิร์ฟเวอร์อื่น มีวิธีใดที่ไฟล์ apache config จะเขียนคำร้องขอทั้งหมดไปยัง robots.txt บน vhosts ทั้งหมดไปยังไฟล์ robots.txt ไฟล์เดียวหรือไม่ ถ้าเป็นเช่นนั้นคุณช่วยยกตัวอย่างให้ฉันได้ไหม ฉันคิดว่ามันจะเป็นอย่างนี้: RewriteEngine On RewriteRule .*robots\.txt$ C:\xampp\vhosts\override-robots.txt [L] ขอบคุณ!

7
ทำให้การย้ายไปยังการควบคุมแหล่งที่มา
Ours เป็น บริษัท ขนาดเล็ก (โปรแกรมเมอร์ 3-4 คนและนักออกแบบไซต์ 3-4 คน) ที่พัฒนาแอปพลิเคชันเว็บ PHP แบบใช้งานครั้งเดียวซึ่งให้ฟังก์ชันการทำงานกับเว็บไซต์มากกว่า 100 เว็บไซต์ เราดำเนินงานมาสองปีในสภาพแวดล้อมการพัฒนาและการผลิตที่แยกจากกันซึ่งทำงานได้ค่อนข้างดี มีคุณสมบัติแยกต่างหากเพียงพอที่จะได้รับการพัฒนาที่โปรแกรมเมอร์ไม่เคยขัดแย้งกันจริง ๆ และสะดวกกว่าในการทำงานโดยไม่ต้องใช้ตัวควบคุมแหล่งกำเนิด แม้ว่าจะมีความเสี่ยงต่อการสูญหายของข้อมูลและเรามีส่วนแบ่งที่ยุติธรรมของไฟล์ที่จะหายไปในการย้ายที่ไม่ตั้งใจ ข้อพิจารณาอื่น ๆ คือนักออกแบบของเราไม่เข้าใจเทคโนโลยี (ฉันแนะนำให้พวกเขารู้จักกับ HTML markup แทนที่จะใช้ WYSIWYG) นี่เป็นหนึ่งในเหตุผลที่ลังเลที่จะย้ายไปสู่เวอร์ชัน อย่างไรก็ตามตอนนี้เรามีเว็บไซต์กว่า 100 แห่งและทีมพัฒนากำลังเติบโตฉันพยายามสร้างมาตรฐานขั้นตอนและการควบคุมแหล่งที่มาดูเหมือนเป็นขั้นตอนที่สมเหตุสมผลเท่าที่โปรแกรมเมอร์ไป ฉันหวังว่านี่จะเร่งการปรับใช้แพตช์ของเราให้เร็วขึ้น น่าเสียดายที่ฉันมีประสบการณ์ จำกัด ในการตั้งค่าระบบควบคุมแหล่งที่มา สิ่งที่ฉันอยากรู้เกี่ยวกับคนที่มีการตั้งค่าที่คล้ายกันหรือประสบการณ์ในการเปลี่ยน: 1) คุณทำทุกสิ่ง (ไซต์ css เทมเพลต html และรหัสแอป) และบังคับให้นักออกแบบเรียนรู้การกำหนดเวอร์ชันหรือไม่ หรือเป็นเพียงนักพัฒนาที่ทำงานกับรหัสแอปพลิเคชัน? 2) มีข้อผิดพลาดอะไรบ้างที่ควรระวังเมื่อเริ่มตั้งค่าการควบคุมแหล่งที่มา 3) การปรับใช้ dev …

1
ความเสี่ยงด้านความปลอดภัยในการมีหน้า phpinfo () สาธารณะ?
ฉันมีหน้าเว็บที่สาธารณชนเข้าถึงซึ่งเพิ่งมี <?php phpinfo(); > ฉันใช้เพื่อจุดประสงค์ในการดีบักในขณะที่เรายังอยู่ในช่วงเบต้า แต่มีอันตรายใด ๆ ในการปล่อยให้สามารถเข้าถึงได้เมื่อไซต์สดหรือไม่

4
ความไม่มั่นคงในการตั้งค่า PHP ทั่วไป?
ฉันทำงานกับการบริหารระบบที่มหาวิทยาลัยแห่งหนึ่งและเพิ่งพบเจอสิ่งที่อาจเป็นเรื่องธรรมดา แต่ก็น่าตกใจสำหรับฉัน ไดเร็กทอรี public_html และพื้นที่เว็บทั้งหมดถูกจัดเก็บใน afs พร้อมสิทธิ์การอ่านสำหรับเว็บเซิร์ฟเวอร์ เนื่องจากผู้ใช้ได้รับอนุญาตให้มีสคริปต์ php ใน public_html ของพวกเขาซึ่งหมายความว่าพวกเขาสามารถเข้าถึงไฟล์ของกันและกันได้จากภายใน php (และไฟล์เว็บหลัก!) สิ่งนี้ไม่เพียงทำให้การป้องกันด้วยรหัสผ่าน. htaccess ไร้ประโยชน์อย่างสมบูรณ์ แต่ยังช่วยให้ผู้ใช้สามารถอ่านไฟล์ต้นฉบับ php ที่มีรหัสผ่านฐานข้อมูล mysql และข้อมูลที่ละเอียดอ่อนที่คล้ายกัน หรือถ้าพวกเขาพบว่าคนอื่นมีไดเรกทอรีที่เว็บเซิร์ฟเวอร์มีการเข้าถึงการเขียน (เช่นบันทึกส่วนตัวหรือบันทึกข้อมูลแบบฟอร์มที่ส่ง) พวกเขาสามารถจัดเก็บไฟล์ในบัญชีเหล่านั้น ตัวอย่างง่ายๆ: <? header("Content-type: text/plain"); print file_get_contents("/afs/example.com/home/smith/public_html/.htpasswd"); ?> นี่เป็นปัญหาที่พบบ่อยหรือไม่? และโดยทั่วไปคุณจะแก้ปัญหาได้อย่างไร UPDATE: ขอบคุณสำหรับการป้อนข้อมูล น่าเสียดายที่ไม่มีคำตอบง่ายๆ ในสภาพแวดล้อมที่ใช้ร่วมกันขนาดใหญ่เช่นนี้ผู้ใช้อาจไม่ได้รับตัวเลือกมากมาย วิธีที่ดีที่สุดที่ฉันคิดคือตั้ง "open_basedir" ในการกำหนดค่าหลักสำหรับไดเรกทอรี "public_html" ทั้งหมดเรียกใช้ suphp และอนุญาตเฉพาะ php ที่สะอาด (ไม่มีสคริปต์ cgi, เรียกใช้คำสั่งภายนอกกับ …

3
เซิร์ฟเวอร์ LAMP ที่ปลอดภัยสำหรับการใช้งานจริง
ขั้นตอนการรักษาความปลอดภัยสำหรับ Linux, Apache, MySQL, PHP Server (หรือแม้แต่ Perl) สำหรับการใช้งานจริงคืออะไร? นอกเหนือจากการตั้งค่ารหัสผ่าน MySQL และรหัสผ่านรูทสำหรับลีนุกซ์ขั้นตอนอื่น ๆ (อาจไม่ชัดเจน) ควรทำอย่างไร? นอกจากนี้ฉันสามารถทำตามขั้นตอนใดได้บ้างหากฉันเป็นโรคหวาดระแวงพิเศษซึ่งอาจไม่จำเป็นต้องทำตามปกติ? สิ่งนี้มีไว้สำหรับการใช้งานไซต์พื้นฐานเพียงอย่างเดียว แต่ต้องปลอดภัย
10 linux  apache-2.2  mysql  php  lamp 

4
ฉันจะตั้งค่าไฟล์ php.ini ต่อไซต์บนเซิร์ฟเวอร์ LAMP โดยใช้ NameVirtualHosts ได้อย่างไร
ฉันมีโคมไฟเซิร์ฟเวอร์ที่ให้บริการจำนวนเว็บไซต์ที่แตกต่างกันโดยใช้NameVirtualHosts จนกระทั่งเมื่อเร็ว ๆ นี้การมีไฟล์ php.ini ทั่วโลกนั้นใช้งานได้ดี แต่เมื่อเร็ว ๆ นี้หนึ่งในนักพัฒนาของเราได้ร้องขอการตั้งค่าบางอย่างใน php.ini ที่ฉันไม่ต้องการตั้งค่าทั่วโลก ฉันค่อนข้างมั่นใจว่าฉันได้ยินมาว่าคุณสามารถตั้งค่าไฟล์ php.ini แบบต่อไซต์ได้แต่ไม่รู้จะทำอย่างไร ใครบางคนชี้ให้ฉันในทิศทางที่ถูกต้องว่าจะทำสิ่งนี้ได้อย่างไร?

6
ความล้มเหลวชั่วคราวในการจำแนกชื่อ: การค้นหาชื่อโฮสต์ล้มเหลว
ฉันมีสคริปต์ใน PHP ที่ทำงานได้ดีเป็นเวลาหลายเดือน มันเพิ่งหยุดทำงาน สคริปต์นี้เชื่อมต่อกับ gmail เพื่อส่งอีเมลไปยังลูกค้าของฉัน เมื่อเร็ว ๆ นี้ฉันเริ่มได้รับข้อผิดพลาดนี้เมื่อฉันเรียกใช้สคริปต์: The SMTP connection failed to start [tls://smtp.gmail.com:465]: fsockopen returned Error Number 0 and Error String 'php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution' โปรดทราบว่านี่คือการเปลี่ยนแปลงรหัสศูนย์ ฉันดู resolv.conf ของฉันแล้วและดูเหมือนว่าจะโอเค: nameserver 208.67.222.222 ฉันสามารถ ping gmail.com ได้: # ping smtp.gmail.com PING gmail-smtp-msa.l.google.com (74.125.93.111) 56(84) …

1
php-fpm: ช่วยให้เข้าใจ start_servers, min_spare_servers, max_spare_servers
ฉันพยายามที่จะปรับแต่งการติดตั้ง PHP-FPM ของฉันสำหรับเซิร์ฟเวอร์ของฉันและฉันมีปัญหาในการหาสิ่งที่จะทำอย่างไรกับpm.start_servers, pm.min_spare_serversและpm.max_spare_serversตัวแปร ฉันใช้pm = dynamic pm.max_childrenชัดเจนอย่างสมบูรณ์แบบ กระบวนการลูกแต่ละรายการให้บริการ 1 เว็บไคลเอ็นต์พร้อมกัน ตกลง. "เซิร์ฟเวอร์" คืออะไร? ชัดเจนขึ้นอยู่กับการกำหนดค่าเริ่มต้นที่ฉันมี 1 เซิร์ฟเวอร์สามารถให้บริการมากกว่า 1 ลูก ขีด จำกัด บนคืออะไร ฉันควรใช้อะไรเป็นกฎง่ายๆสำหรับจำนวนเด็ก / เซิร์ฟเวอร์ หรือมันเกี่ยวข้องเลย ในฟอรัมบางคนอ้างว่า # ของเซิร์ฟเวอร์ควรเป็น 2 x # ของ cpu cores แต่ฉันได้เห็นการกำหนดค่าที่แนะนำซึ่งมีจำนวนสูงกว่ามาก 40-50 ทั้งเอกสาร PHP และบทความ "การปรับ php-fpm" หลายบทความนั้นไม่ได้มีประโยชน์เลย
10 nginx  php  php-fpm 

2
จะตรวจสอบได้อย่างไรว่า postfix ของฉันใช้ TLS จริงๆเพื่อส่งเมลขาออกหรือไม่
ฉันติดตั้ง Postfix บน VPS สำเร็จแล้ว ฉันต้องการส่งอีเมลที่เข้ารหัส ฉันติดตั้งใบรับรองและกุญแจส่วนตัวทั้งหมดและตั้งค่าไฟล์ conf ของฉัน: smtpd_tls_key_file = <path to my private key> smtpd_tls_cert_file = <path to my cert file> smtpd_recipient_restrictions = permit_mynetworks reject_unauth_destination smtpd_tls_security_level = encrypt แต่ฉันไม่รู้จะทำยังไง ฉันหมายถึงฉันจะตรวจสอบว่าอีเมลของฉันถูกเข้ารหัสได้อย่างไร ฉันใช้mail()ฟังก์ชั่นphp เพื่อส่งเมลขาออก
10 php  postfix  sendmail 

1
การใช้ Internet Explorer เพื่อเรียกใช้ PHP / CURL สำหรับ API ข้อมูลที่รันเป็นเวลานานทำให้เซิร์ฟเวอร์ Apache 2 หยุดทำงานและต้องรีสตาร์ท
ฉันใช้งานโปรแกรม PHP ที่ทำงานได้ดีตราบใดที่ไม่ได้เรียกใช้โดยเบราว์เซอร์ Microsoft Internet Explorer หลังจากที่มันวางไข่กระบวนการด้านล่างล็อค Apache 2 และต้องรีสตาร์ทเว็บเซิร์ฟเวอร์ (บน Ubuntu 12.04 LTS) bob@drools:/etc/php5/apache2# ps auxwww | grep apache2 root 8737 0.1 2.5 369164 25800 ? Ssl 12:41 0:00 /usr/sbin/apache2 -k start www-data 8743 0.0 3.2 393748 33268 ? Sl 12:41 0:00 /usr/sbin/apache2 -k start www-data 8755 0.1 3.3 …

4
วิธีกำหนดค่าชื่อโดเมนจริงสำหรับที่อยู่ผู้ส่ง
ฉันพยายามส่งอีเมลโดยใช้mail()ฟังก์ชั่นphp แต่มันล้มเหลวอย่างใดบ่นว่าจำเป็นต้องมีชื่อโดเมนจริง ต่อไปนี้เป็นข้อสังเกตใน maillog: sendmail 4984 r25984: จาก = apache, size = 273, class = 0, nrcpts = 1, msgid = <201.r25@localhost.localdomain>, relay = apache @ localhost sendmail 4985 r25985: ruleset = check_mail, arg1 = mydomain.com [127.0.0.1], ปฏิเสธ = 553 5.5.4 ... ชื่อโดเมนจริงที่จำเป็นสำหรับที่อยู่ผู้ส่งsendmail 4984 r25984: to=external@server.com, ctladdr = apache (48/48) …


6
เครื่องหมายทับท้ายที่ไม่สอดคล้องในตัวแปร DOCUMENT_ROOT ใน PHP เมื่อใช้ Apache
ในสภาพแวดล้อมเซิร์ฟเวอร์ที่แตกต่างกัน PHP $_SERVER['DOCUMENT_ROOT']super global บางครั้งก็มีเครื่องหมายทับท้ายและบางครั้งก็ไม่มี ฉันคิดว่าปัญหานี้เกี่ยวข้องโดยตรงกับการกำหนด Apache DocumentRootในhttpd.confไฟล์: เช่นฉันจะคิดว่าถ้าhttpd.confไม่มีเครื่องหมายทับ: <VirtualHost *:8880> DocumentRoot /var/www/live/current ... จากนั้นecho $_SERVER['DOCUMENT_ROOT']ควรให้/ var / www / live / current และถ้าhttpd.confมีเครื่องหมายสแลชต่อท้าย: <VirtualHost *:8880> DocumentRoot /var/www/live/current/ ... จากนั้นecho $_SERVER['DOCUMENT_ROOT']ควรให้/ var / www / live / current / นี่เป็นกรณีใน Ubuntu 10.04 แต่ใน RHEL 5.5 จะมีการเพิ่มเครื่องหมายสแลชต่อท้าย$_SERVER['DOCUMENT_ROOT']แม้ว่าจะไม่มีการกำหนดไว้ใน Apache มีความคิดว่าทำไมสิ่งนี้เกิดขึ้น? มีพารามิเตอร์การกำหนดค่าที่ฉันขาดหายไปหรือไม่ สำหรับการอ้างอิง: …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.