memcached server and php-memcached
-
wrote on Aug 26, 2020, 6:31 AM last edited by girish Aug 26, 2020, 9:17 PM
HI, I need to host a custom PHP app that is using memcache for query caching, so both memcached and php-memcached extension shall be available inside the container. Is this possible?
-
@b247_eu Currently, one has to make a custom package. I think @rmdes wanted a similar thing at https://forum.cloudron.io/topic/1742/memcache-addon/6. I will share the package once I have something working.
-
@b247_eu @rmdes I have pushed changes to the
memcached
branch. It removed redis addon and adds memcached instead. https://git.cloudron.io/cloudron/php7.3-postgres-app/-/commit/12c40aba6a3f05ad245290882fef9743bafed7c5One you install the app, memcached is running on port 11211 on localhost. You can test this with:
root@a95330af-2470-45e7-a7cb-fe170bd184ed:/app/data# echo "stats settings" | nc localhost 11211 STAT maxbytes 67108864 STAT maxconns 1024 STAT tcpport 11211 STAT udpport 0 STAT inter 127.0.0.1 STAT verbosity 0 STAT oldest 0 STAT evictions on STAT domain_socket NULL STAT umask 700 STAT growth_factor 1.25
-
@b247_eu @rmdes I have pushed changes to the
memcached
branch. It removed redis addon and adds memcached instead. https://git.cloudron.io/cloudron/php7.3-postgres-app/-/commit/12c40aba6a3f05ad245290882fef9743bafed7c5One you install the app, memcached is running on port 11211 on localhost. You can test this with:
root@a95330af-2470-45e7-a7cb-fe170bd184ed:/app/data# echo "stats settings" | nc localhost 11211 STAT maxbytes 67108864 STAT maxconns 1024 STAT tcpport 11211 STAT udpport 0 STAT inter 127.0.0.1 STAT verbosity 0 STAT oldest 0 STAT evictions on STAT domain_socket NULL STAT umask 700 STAT growth_factor 1.25
-
@girish yay! Thank you so much!
Going to test and see if now that fits their requirements!
Thanks a lot!wrote on Aug 29, 2020, 12:14 PM last edited byAlright install ran smoothly, now just waiting for feedback from the devs.
-
wrote on Aug 29, 2020, 12:16 PM last edited by rmdes Aug 29, 2020, 12:29 PM
When I test echo "stats settings" | nc localhost 11211 on the web terminal I get :
localhost [127.0.0.1] 11211 (?) : Connection refusedDo I need to make this test under a specific user perhaps ?
-
@rmdes Can you check if memcached is running at all (just to make sure you selected the correct branch when building). You can do this with
supervisorctl status
.root@dfa78176-bd47-44ed-9d07-3e66265886b7:/app/data# supervisorctl status apache2 RUNNING pid 22, uptime 0:00:15 cron RUNNING pid 21, uptime 0:00:15 memcached RUNNING pid 20, uptime 0:00:15 root@dfa78176-bd47-44ed-9d07-3e66265886b7:/app/data# echo "stats settings" | nc localhost 11211 STAT maxbytes 67108864 STAT maxconns 1024 STAT tcpport 11211 STAT udpport 0 STAT inter 127.0.0.1 STAT verbosity 0 ....
-
@rmdes Can you check if memcached is running at all (just to make sure you selected the correct branch when building). You can do this with
supervisorctl status
.root@dfa78176-bd47-44ed-9d07-3e66265886b7:/app/data# supervisorctl status apache2 RUNNING pid 22, uptime 0:00:15 cron RUNNING pid 21, uptime 0:00:15 memcached RUNNING pid 20, uptime 0:00:15 root@dfa78176-bd47-44ed-9d07-3e66265886b7:/app/data# echo "stats settings" | nc localhost 11211 STAT maxbytes 67108864 STAT maxconns 1024 STAT tcpport 11211 STAT udpport 0 STAT inter 127.0.0.1 STAT verbosity 0 ....
-
@rmdes Can you check if memcached is running at all (just to make sure you selected the correct branch when building). You can do this with
supervisorctl status
.root@dfa78176-bd47-44ed-9d07-3e66265886b7:/app/data# supervisorctl status apache2 RUNNING pid 22, uptime 0:00:15 cron RUNNING pid 21, uptime 0:00:15 memcached RUNNING pid 20, uptime 0:00:15 root@dfa78176-bd47-44ed-9d07-3e66265886b7:/app/data# echo "stats settings" | nc localhost 11211 STAT maxbytes 67108864 STAT maxconns 1024 STAT tcpport 11211 STAT udpport 0 STAT inter 127.0.0.1 STAT verbosity 0 ....
wrote on Aug 31, 2020, 10:35 AM last edited by rmdes Aug 31, 2020, 10:38 AM@girish I think I did selected the correct branch, because when I do git branch I have this
And I did the build and the install from this branch.
I probably did something wrong tho since memcached is not even running and the test put in place by the devs goes like this :
Fatal error: Uncaught Error: Class 'Memcached' not found in /app/data/public/index.php:24 Stack trace: #0 {main} thrown in /app/data/public/index.php on line 24if (!$connection = pg_connect ("host=".getenv("CLOUDRON_POSTGRESQL_HOST")." dbname=". getenv("CLOUDRON_POSTGRESQL_DATABASE") ." user=" . getenv("CLOUDRON_POSTGRESQL_USERNAME")." password=" .getenv("CLOUDRON_POSTGRESQL_PASSWORD") ."")) { $error = error_get_last(); echo "Connection to the PostgreSQL database failed. Error was: ". $error['message']. "\n"; } else { echo "Connected to the PostgreSQL database.\n"; } print_r(get_loaded_extensions()); $memcached = new Memcached(); $memcached->addServer('172.18.0.158', 11211); phpinfo(); exit; ?>
-
When I test echo "stats settings" | nc localhost 11211 on the web terminal I get :
localhost [127.0.0.1] 11211 (?) : Connection refusedDo I need to make this test under a specific user perhaps ?
wrote on Aug 31, 2020, 12:20 PM last edited byI got this from the devs of the custom web app :
So far: postgresql and memcached servers available - OK;
Missing: php-memcached extension (so I can't make use of the memcached server capabilities within a php script) - not OKPlease also don't forget about nginx x-accel, can you add an entry to the nginx conf file for that?
Not sure how to proceed
-
wrote on Aug 31, 2020, 12:32 PM last edited by rmdes Aug 31, 2020, 12:36 PM
by inspecting php.ini in the container, I went to the extension section and added
extension=memcacheAug 31 14:29:58 PHP Warning: PHP Startup: Unable to load dynamic library 'memcache' (tried: /usr/lib/php/20180731/memcache (/usr/lib/php/20180731/memcache: cannot open shared object file: No such file or directory), /usr/lib/php/20180731/memcache.so (/usr/lib/php/20180731/memcache.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
So does this mean the memcache server is not properly installed ?
-
I think the image you are using is wrong. php-memcached is also installed in the same patch as memcached itself - https://git.cloudron.io/cloudron/php7.3-postgres-app/-/commit/12c40aba6a3f05ad245290882fef9743bafed7c5#6651ddff6eb82c840ced7c1dddee15c6e1913dd4_8_7
Can you tell me the command you used to build and update the image? Also, what is the CLI version ? It should be 4.5.2.
$ cloudron --version 4.5.2
-
I think the image you are using is wrong. php-memcached is also installed in the same patch as memcached itself - https://git.cloudron.io/cloudron/php7.3-postgres-app/-/commit/12c40aba6a3f05ad245290882fef9743bafed7c5#6651ddff6eb82c840ced7c1dddee15c6e1913dd4_8_7
Can you tell me the command you used to build and update the image? Also, what is the CLI version ? It should be 4.5.2.
$ cloudron --version 4.5.2
-
wrote on Sep 1, 2020, 9:06 AM last edited by
-
wrote on Sep 1, 2020, 9:07 AM last edited by
Not sure what happened to my original git clone folder but by downloading the zip file from the memcache branch and then doing cloudron build --local & cloudron install I got it working !
-
wrote on Sep 1, 2020, 9:16 AM last edited by
@girish said in memcached server and php-memcached:
/etc/supervisor/conf.d/memcache.conf
Confirm this exists now
output of echo "stats settings" | nc localhost 11211