Последняя версия pecl_http представляет http пространство имен. так HttpRequest
больше не будет доступно. Следуйте документации php для использования пространства имен и контроля предоставленный phpunit каталог для использования и примеров.
$req = new http\Client\Request();
Или более предпочтительный путь, который допускает назад поддержку
use http\Client\Request as HttpRequest;
$req = new HttpRequest();
Иногда расширения PECL не могли бы быть установлены правильно. Это может произойти, если Ваше смешивание pacman пакеты и pecl расширения, но это очень редко. Я рекомендую установить pecl_http вручную.
shell ~> curl -o pecl_http.tar.gz http://pecl.php.net/get/pecl_http
shell ~> tar zvxf pecl_http.tar.gz
shell ~> cd pecl_http
shell ~/pecl_http> phpize
shell ~/pecl_http> ./configure
shell ~/pecl_http> make
shell ~/pecl_http> make test
shell ~/pecl_http> make install
Это произведет каталог http.so
будет установлен. В моем случае это /usr/lib/php/
. Полезное примечание.
Править php.ini
файл, и добавляет http.so
расширение.
shell ~> php -m | grep http
Если http
не отображен, переиздайте php.ini
, и полный путь расширений;
extension=/usr/lib/php//http.so
Выполните следующие команды ниже
hostnamectl
hostnamectl set-hostname servername.domain.com
hostnamectl
systemctl restart sshd.service
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install nginx
systemctl enable nginx.service
systemctl start nginx.service
systemctl stop httpd.service or systemctl disable httpd
yum remove httpd
systemctl disable httpd.service
systemctl enable nginx.service
systemctl start nginx.service
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
http ://your _ server _ IP _ address/
-121--150329- С этими разрешениями невозможно достичь поставленной цели. Чтобы попасть в каталог c
, необходимо разрешить всем остальным пользователям проходить через каталог b
, что делается путем предоставления разрешения на выполнение для этого каталога. Если для /a/b
установлен режим 711, можно достичь желаемого, поскольку вы предоставляете доступ к каталогу, но отказываете в чтении и записи. Но имейте в виду, что, хотя другие пользователи не могут перечислять файлы в /a/b
, они могут иметь доступ к файлам, если угадают, что имя и файлы имеют достаточно открытые разрешения.
Можно. Необходимо просто установить исполняемый бит в каталоге /a/b
. Это не позволит быть увидеть что-либо в b
, но вы все равно сможете сделать все, если перейдете непосредственно в a/b/c
.
% mkdir -p a/b/c
% chmod 711 a/b
% sudo chown root a/b
% ll a/b
ls: cannot open directory a/b: Permission denied
% touch a/b/c/this.txt
% ls a/b/c
this.txt
Убедитесь, что, хотя другие пользователи не могут перечислить содержимое /a/b
, они могут получить доступ к файлам в этом каталоге, если угадают имя файла.
% echo hello | sudo tee a/b/f
% cat a/b/f
hello
% cat a/b/doesntexist
cat: a/b/doesntexist: No such file or directory
Поэтому не забудьте сохранить соответствующие разрешения (без группы/мира) для всех других файлов/каталогов в каталоге b
, так как это позволит избежать этой оговорки.
С такими разрешениями ты не сможешь достичь своей цели. Для того, чтобы добраться до каталога c
, вы должны позволить всем остальным пользователям пройти через каталог b
, что делается давая разрешение на выполнение для этого каталога. С помощью /a/b
, установленного в режим 711, вы можете достигнуть того, что вы хотите, так как вы даете разрешение на обход каталога, но запрещаете чтение и запись. Но имейте в виду, что хотя другие пользователи не могут перечислять файлы в /a/b
, они могут получить доступ к файлам, если они угадают имя и файлы имеют достаточные открытые права.
Если пользователь не может получить доступ к / a / b
, то он не сможет получить доступ ни к одному файлу в / a / b / c
. Разрешения на / a / b / c
не имеют значения, поскольку обход каталога останавливается на / a / b
.
Если все, что вам нужно, - это запретить отображение каталога / a / b
, но вы не против, если пользователи обращаются к файлам в / a / b
, если они угадают имя файла, то вы можете сделать / a / b
исполняемым, но не читаемым.В каталоге разрешение на чтение контролирует только список содержимого каталога, а разрешение на выполнение контролирует доступ к записям этого каталога.
# chmod u=rwx,go=x /a/b
# chmod u=rwx,go=rx /a/b/c
# echo 'hello' >/a/b/existingfile
# su bob -c 'ls -l /a/b'
ls: /a/b: Permission denied
# su bob -c 'cat /a/b/nosuchfile'
cat: /a/b/nosuchfile: No such file or directory
# su bob -c 'cat /a/b/existingfile'
hello
# su bob -c 'ls -l /a/b/c'
… contents of /a/b/c …
Если вы не хотите, чтобы другие пользователи имели доступ к файлам в / a / b
, кроме / a / b / c
, вы можете открыть / a / b / c
через другое представление, через крепление привязки .
# chmod u=rwx,go=x /a/b
# chmod u=rwx,go=rx /a/b/c
# mkdir /c
# mount --bind /a/b/c /c
# su bob -c 'ls /a/b/c'
ls: /a/b/c: Permission denied
# su bob -c 'ls -l /c'
… contents of /a/b/c …