0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PHP memcachedをインストールする

Posted at

PHP 8.4の環境に、memcachedをインストールする方法。
libmemcachedは、古いバージョンのソースのため新しいgccでは、ワーニングが多々表示されるのと、一部コンパイルエラーが発生するためパッチを適用します。

1.libmemcachedのインストール

cd /usr/local/src
mkdir memcached
cd memcached
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar xvzf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
make
make install
#パッチをダウンロードする
#https://github.com/gentoo/gentoo/blob/master/dev-libs/libmemcached/files/libmemcached-1.0.18-gcc7.patch
をダウンロードする
このファイルを、/usr/local/src/memcachedに配置する
#パッチがない場合
cat > /usr/local/src/memcached/libmemcached-1.0.18-gcc7.patch << EOF
gcc-7 fails the build as:
  clients/memflush.cc: In function 'int main(int, char**)':
  clients/memflush.cc:42:22: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
   if (opt_servers == false)
                      ^~~~~

opt_servers is declated as 'static char *opt_servers= NULL;'
diff --git a/clients/memflush.cc b/clients/memflush.cc
index 8bd0dbf..7641b88 100644
--- a/clients/memflush.cc
+++ b/clients/memflush.cc
@@ -39,7 +39,7 @@ int main(int argc, char *argv[])
 {
   options_parse(argc, argv);
 
-  if (opt_servers == false)
+  if (!opt_servers)
   {
     char *temp;
 
@@ -48,7 +48,7 @@ int main(int argc, char *argv[])
       opt_servers= strdup(temp);
     }
 
-    if (opt_servers == false)
+    if (!opt_servers)
     {
       std::cerr << "No Servers provided" << std::endl;
       exit(EXIT_FAILURE);
EOF

パッチを適用する

cd /usr/local/src/memcached/libmemcached-1.0.18
patch -p1 < ../libmemcached-1.0.18-gcc7.patch

ビルド+インストールする

make
make install

2.memcachedのインストール

cd /usr/local/src
wget https://pecl.php.net/get/memcached-3.3.0.tgz
tar xvzf memcached-3.3.0.tgz
cd memcached-3.3.0
/usr/local/bin/phpize
./configure
make
make install

「/usr/local/lib/php/extensions/no-debug-zts-20240924/」に「memcached.so」が配置される。

3.memcacheをインストール

cd /usr/local/src
wget https://pecl.php.net/get/memcache-8.2.tgz
tar xvzf memcache-8.2.tgz
cd memcache-8.2
/usr/local/bin/phpize
./configure
make
make install

「/usr/local/lib/php/extensions/no-debug-zts-20240924/」に「memcache.so」が配置される。

php.iniを編集する

vi /usr/local/lib/php.ini
---
extension=memcached.so
extension=memcache.so
---


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?