Прежде всего...
Должен сказать, я мало что знаю о серверах. Я из тех php-разработчиков, которые нечасто используют командные строки. Мне в Терминале очень неудобно.
Однако я учусь. Я не привык размещать свои сайты на выделенных серверах без управляемого хостинга. Но сейчас он у меня впервые, и мне нужно самому установить Memcache.
Некоторая информация о сервере
Что я наделал
Я следовал этому руководству: https://mediatemple.net/community/products/dv/204644340/installing-pecl-extensions
Но конечно с memcache
вместо того uploadprogress
.
И я проверил, установлен и запущен Memcache. И $memcache = new Memcache;
работает в моих кодах php. Но $memcache->connect('localhost', 11211);
не работает. Я получаю сообщение об ошибке:
Warning: Memcache::connect(): Can't connect to localhost:11211, Connection refused (111) in /var/www/vhosts/[mydomain]/httpdocs/index.php on line 10 Could not connect to memcache server
И я пытался изменить localhost
на IP-адрес сервера, но безуспешно.
Я много гуглил и попал в статьи и обсуждения на форумах об установке Memcached
перед. Я последовал одному из этих руководств и попытался установить его. Но есть сообщения об ошибках No package memcached available.
поэтому он не может быть установлен.
Вот примеры команд, которые я сделал после этого:
Nothing to do
[root@mydomain /]# php -i | grep memcache
PHP Warning: Module 'memcache' already loaded in Unknown on line 0
/etc/php.d/memcached.ini,
PHP Warning: Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Los_Angeles' for 'PDT/-7.0/DST' instead in Unknown on line 0
memcache
memcache support => enabled
memcache.allow_failover => 1 => 1
memcache.chunk_size => 8192 => 8192
memcache.default_port => 11211 => 11211
memcache.default_timeout_ms => 1000 => 1000
memcache.hash_function => crc32 => crc32
memcache.hash_strategy => standard => standard
memcache.max_failover_attempts => 20 => 20
Registered save handlers => files user memcache
OLDPWD => /memcached-1.4.9
_SERVER["OLDPWD"] => /memcached-1.4.9
[root@mydomain /]# ps aux | grep memcache
root 6434 0.0 0.0 9288 868 pts/0 S+ 02:37 0:00 grep memcache
[root@mydomain /]# getenforce
Disabled
Так...
Что я забыл сделать?
Обновить!
В конце концов мне это удалось. Как:
Успешно установить Memcached, но не Memcache:
[root@mydomain /]# yum install php-pecl-memcache
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
* base: centos.mirror.nac.net
* extras: mirror.atlanticmetro.net
* updates: centos.mirror.nac.net
base | 1.1 kB 00:00
extras | 2.1 kB 00:00
updates | 1.9 kB 00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php-pecl-memcache.x86_64 0:2.2.3-1.el5_2 set to be updated
--> Processing Dependency: php-api = 20041225 for package: php-pecl-memcache
--> Finished Dependency Resolution
php-pecl-memcache-2.2.3-1.el5_2.x86_64 from extras has depsolving problems
--> Missing Dependency: php-api = 20041225 is needed by package php-pecl-memcache-2.2.3-1.el5_2.x86_64 (extras)
Error: Missing Dependency: php-api = 20041225 is needed by package php-pecl-memcache-2.2.3-1.el5_2.x86_64 (extras)
You could try using --skip-broken to work around the problem
You could try running: package-cleanup --problems
package-cleanup --dupes
rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.
Однако, похоже, в этом не было необходимости. Memcache теперь работает!