Memcache การกำหนดค่าพื้นฐาน


14

ฉันได้ติดตั้ง memcache สำหรับเว็บไซต์ Drupal ที่มีส่วนขยาย pecl memcached ทุกอย่างทำงานได้ดี แต่ฉันยังคงดิ้นรนกับการตั้งค่าการกำหนดค่า

ตัวอย่างเช่นทำตามคำแนะนำใน drupal.org

You should probably lock down the memcache server so that it only listens for 
connections from the hosts that need to be served, as the default is that 
memcache listens to connections from all addresses. 
So, to close that hole, edit /etc/sysconfig/memcached with:

OPTIONS="-l ${HOSTIP}"

ปัญหาคือฉันไม่มีไฟล์นี้ในเซิร์ฟเวอร์ของฉันไม่ว่าในกรณีใด ๆ บทความอื่น ๆ ได้กล่าวถึง /etc/memcached.conf แต่ฉันไม่พบไฟล์นี้เช่นกัน

เมื่อพิจารณาว่า / etc / sysconfig / memcached หรือ /etc/memcached.conf ไม่ออกจากเซิร์ฟเวอร์ฉันจะสามารถสร้างได้อย่างปลอดภัยหรือไม่? เป็นไปได้หรือไม่ที่ไฟล์เหล่านี้จะอยู่ในที่อื่นซึ่งในกรณีนี้ฉันควรจะดูหรือมีวิธีการค้นหาข้อมูลนั้นหรือไม่?

ในที่สุดทรัพยากรการสอนหรือลิงก์เอกสารจะได้รับการชื่นชมอย่างมาก ฉันได้เรียกดูผ่านเว็บไซต์ของ memcache Wiki และสามารถค้นหาบทความที่เกี่ยวข้องเพียงสองสามอย่างสำหรับผู้เริ่มต้น


1
คำแนะนำ drupal ไม่ถูกต้อง -lควบคุมตัวเลือกที่อินเตอร์เฟซ memcached จะฟังไม่ได้ซึ่งเจ้าภาพจะได้รับบริการ
Wayne Conrad

คำตอบ:


17

คุณไม่ได้บอกเราเกี่ยวกับระบบปฏิบัติการ / distro ของคุณ นอกจากนี้คุณไม่ได้บอกเราว่าคุณติดตั้ง memcached ได้อย่างไร

โดยปกติคุณจะได้รับไฟล์ปรับแต่งตัวอย่างภายใต้/etc/เมื่อคุณติดตั้ง memcached โดยใช้apt-getภายใต้ระบบเดเบียนและrpmหรือyumภายใต้ redhat, fedora หรือ centos

หากคุณติดตั้งจากแหล่งที่มาคุณอาจไม่ได้รับไฟล์ตัวอย่างภายใต้/etc/(ฉันไม่ได้ติดตั้ง memcached จากแหล่งที่มาด้วยตัวเอง) อย่างไรก็ตามคุณสามารถค้นหาไฟล์กำหนดค่าตัวอย่างในโฟลเดอร์ซอร์สที่ไม่ได้แพ็ก

อย่างไรก็ตามคุณสามารถใช้locate memcached.confเพื่อค้นหาหนึ่งในระบบของคุณ คุณต้องทำsudo updatedbก่อนหน้านั้นเพื่ออัพเดตแคชการค้นหา

นี่คือไฟล์ปรับแต่งจากระบบของฉัน คุณสามารถใช้มัน:

# Run memcached as a daemon. This command is implied, and is not needed for the
# daemon to run. See the README.Debian that comes with this package for more
# information.
-d

# Log memcached's output to /var/log/memcached
logfile /var/log/memcached.log

# Be verbose
# -v

# Be even more verbose (print client commands as well)
# -vv

# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 64

# Default connection port is 11211
-p 11211
# Run the daemon as root. The start-memcached will default to running as root if no
# -u command is present in this config file
-u memcache

# Specify which IP address to listen on. The default is to listen on all IP addresses
# This parameter is one of the only security measures that memcached has, so make sure
# it's listening on a firewalled interface.
-l 127.0.0.1

# Limit the number of simultaneous incoming connections. The daemon default is 1024
# -c 1024

# Lock down all paged memory. Consult with the README and homepage before you do this
# -k

# Return error when memory is exhausted (rather than removing items)
-M

# Maximize core file limit
# -r

คุณสามารถผ่านตัวเลือกเดียวกันได้จากบรรทัดคำสั่ง


Debian GNU / Linux 5.0.9 (lenny) / memcached 1.4.10. ฉันผ่านขั้นตอนมากมายในการติดตั้ง memcache ที่ฉันจำไม่ได้ว่าฉันทำได้อย่างไร อาจได้รับการรวบรวมจากแหล่งที่มาเนื่องจากไฟล์กำหนดค่าเหล่านี้หายไป ฉันรู้ว่ามีการติดตั้งส่วนขยาย pecl จากแหล่งที่มาเพียงเพราะใช้ pecl ไม่ทำงาน มองไปที่โฟลเดอร์ต้นทางผมไม่สามารถบอกได้ว่าจะเป็นไฟล์ config ตัวอย่าง ...
แพทริค

@ PatrickS: ฉันได้รับคำตอบของฉันแล้ว
Khaled

ฉันได้สร้าง /etc/init.d/memcached โดยใช้ตัวเลือกบรรทัดคำสั่งด้านบนเพื่อกำหนดค่า memcache
PatrickS

11

ค่าเริ่มต้น (CentOS) / etc / sysconfig / memcached:

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""

สคริปต์เริ่มต้น (CentOS) /etc/init.d/memcached:

...
if [ -f /etc/sysconfig/memcached ];then
        . /etc/sysconfig/memcached
fi
...

จำนวนดังกล่าวข้างต้นหากไฟล์มีอยู่ 'แหล่งที่มา' มัน (เช่นอ่านและประเมินเนื้อหาของมัน)

เท่าที่ฉันรู้ memcached ไม่มีไฟล์กำหนดค่า มันใช้พารามิเตอร์บรรทัดคำสั่งตัวอย่างเช่น (จากสคริปต์ init RHEL / CentOS):

daemon --pidfile ${pidfile} memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P ${pidfile} $OPTIONS

(คุณจะทราบว่าตัวแปรที่กำหนดข้างต้นใช้ที่นี่)

บรรทัดล่างคือ:

  • ตรวจสอบสคริปต์เริ่มต้นของคุณ - หากมีส่วนที่คล้ายกับข้างบน (คำสั่ง if) ให้สร้างไฟล์ที่ตรงกันและวางตัวแปรที่เหมาะสมไว้ในนั้น
  • ไม่มีไฟล์การกำหนดค่า - อย่าสร้างไฟล์เนื่องจากจะไม่ใช้

3

หากคุณไม่พบ CentOS /etc/init.d/memcached ลองทำสิ่งนี้:

nano /usr/lib/systemd/system/memcached.service

และเปลี่ยน:

ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS

ถึง:

ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -I $MAXITEMSIZE -c $MAXCONN $OPTIONS

หลังจากเพิ่มใน / etc / sysconfig / memcached

MAXITEMSIZE="128m"

รีสตาร์ท memcached

service memcached restart

เพื่อตรวจสอบว่ามีการเพิ่มพารามิเตอร์ลอง:

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