Рубрики
Uncategorized

Обучение Swool установка источника swool (2)

Автор оригинала: David Wong.

1、 Загрузка из единственного источника

Скачать на официальном сайте swool: https://www.swoole.com/, мы используем библиотеку исходного кода (Китай с открытым исходным кодом) для загрузки:

Здесь используйте git для клонирования пакета исходного кода непосредственно в локальную

[email protected]:/work/study/softpackage# git clone [email protected]:swoole/swoole.git

Или загрузите его напрямую с помощью curl и извлеките пакет:

curl https://gitee.com/swoole/swoole/repository/archive/master.zip

2, Установка источника Свула

Исходная установка swool и PHP в основном одинакова, но swool не настраивает Устанавливает файл, что требует от нас использования собственных инструментов PHP php ize (phpize используется для добавления модулей расширения, и модули плагинов PHP могут быть встроены) для создания таких файлов.

Войдите в каталог исходного пакета swool и выполните /работу/учебу/программное обеспечение/php/bin/phpize Заказ:

swoole# /work/study/soft/php/bin/phpize
Configuring for:
PHP Api Version:         20170718
Zend Module Api No:      20170718
Zend Extension Api No:   320170718

В это время, когда мы проверяем исходный пакет swool, будет сгенерировано несколько файлов, включая configure Документы.

Компилировать:

swoole#  ./configure --with-php-config=/work/study/soft/php/bin/php-config
swoole# make && make install

--с Указывает установленную версию PHP. Если в системе имеется несколько версий PHP, вам необходимо указать

Результат компиляции:

...

PATH="$PATH:/sbin" ldconfig -n /work/study/softpackage/swoole/modules
----------------------------------------------------------------------
Libraries have been installed in:
   /work/study/softpackage/swoole/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------

Build complete.
Don't forget to run 'make test'.

Installing shared extensions:     /work/study/soft/php/lib/php/extensions/no-debug-non-zts-20170718/
Installing header files:          /work/study/soft/php/include/php/
[email protected]:/work/study/softpackage/swoole#

Расширение включено /работа/учеба/софт/php/lib/php/расширения/нет-отладка-не-zts-20170718/ Каталог, давайте проверим его:

[email protected]:/work/study/soft/php/bin# cd /work/study/soft/php/lib/php/extensions/no-debug-non-zts-20170718/
[email protected]:/work/study/soft/php/lib/php/extensions/no-debug-non-zts-20170718# ls -l
total 21820
-rwxr-xr-x 1 root root  5227454 Aug 27 18:07 opcache.a
-rwxr-xr-x 1 root root  2413144 Aug 27 18:07 opcache.so
-rwxr-xr-x 1 root root 14696248 Aug 28 11:06 swoole.so

swoole.so Этот файл является нашим скомпилированным файлом расширения.

3、 PHP поддерживает swool

PHP если вы хотите использовать расширенную библиотеку классов, вы должны php.ini Файл можно использовать только после того, как в файле будет выполнена некоторая конфигурация. В противном случае будет сообщено об ошибке, и такой файл не будет найден.

редактировать php.ini файл

[email protected]:/work/study/soft/php/lib# vim php.ini

Добавьте новую строку в расширение:

extension=swoole

Проверьте, есть ли расширение swool:

[email protected]:/work/study/soft/php/lib# php -m
[PHP Modules]
Core
ctype
date
dom
fileinfo
filter
hash
iconv
json
libxml
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
SPL
sqlite3
standard
swoole
tokenizer
xml
xmlreader
xmlwriter

[Zend Modules]

Мы видим, что расширение PHP уже набухло, до сих пор наша установка и компиляция PHP и swool завершены.

4, Компиляция исходного кода и установка curl

Запуск PHP curl_init Сообщается о следующей ошибке:

Warning: PHP Startup: Unable to load dynamic library 'curl' (tried: /work/study/soft/php/lib/php/extensions/no-debug-non-zts-20170718/curl (/work/study/soft/php/lib/php/extensions/no-debug-non-zts-20170718/curl: cannot open shared object file: No such file or directory), /work/study/soft/php/lib/php/extensions/no-debug-non-zts-20170718/curl.so

Поскольку расширение curl не установлено, скомпилируйте и установите исходный код здесь.

1. Введите каталог исходного пакета PHP и выполните команду phpize для создания файла конфигурации

cd /work/study/softpackage/php-7.2.21/ext/

Для просмотра пакетов расширения:

[email protected]:/work/study/softpackage/php-7.2.21/ext# ls -l
total 16
drwxr-xr-x  10 root root  340 Jul 30 17:21 bcmath
drwxr-xr-x  11 root root  374 Jul 30 17:21 bz2
drwxr-xr-x  17 root root  578 Jul 30 17:21 calendar
drwxr-xr-x  21 root root  714 Jul 30 17:21 com_dotnet
drwxr-xr-x  13 root root  442 Aug 28 01:49 ctype
drwxr-xr-x  12 root root  408 Jul 30 17:21 curl
drwxr-xr-x  13 root root  442 Aug 28 01:45 date
drwxr-xr-x  39 root root 1326 Jul 30 17:21 dba
drwxr-xr-x 110 root root 3740 Aug 28 01:50 dom
drwxr-xr-x  10 root root  340 Jul 30 17:21 enchant
drwxr-xr-x  12 root root  408 Jul 30 17:21 exif
-rwxr-xr-x   1 root root 9415 Jul 30 17:21 ext_skel
-rw-r--r--   1 root root 1165 Jul 30 17:21 ext_skel_win32.php
drwxr-xr-x  20 root root  680 Aug 28 01:50 fileinfo
drwxr-xr-x  22 root root  748 Aug 28 01:52 filter
drwxr-xr-x  11 root root  374 Jul 30 17:21 ftp
drwxr-xr-x  14 root root  476 Jul 30 17:21 gd
drwxr-xr-x   8 root root  272 Jul 30 17:21 gettext
drwxr-xr-x  12 root root  408 Jul 30 17:21 gmp
drwxr-xr-x  72 root root 2448 Aug 28 01:53 hash
drwxr-xr-x  22 root root  748 Aug 28 01:53 iconv
drwxr-xr-x   9 root root  306 Jul 30 17:21 imap
drwxr-xr-x  14 root root  476 Jul 30 17:21 interbase
drwxr-xr-x  37 root root 1258 Jul 30 17:21 intl
drwxr-xr-x  30 root root 1020 Aug 28 01:53 json
drwxr-xr-x  10 root root  340 Jul 30 17:21 ldap
drwxr-xr-x  12 root root  408 Aug 28 01:46 libxml
drwxr-xr-x  24 root root  816 Jul 30 17:21 mbstring
drwxr-xr-x  25 root root  850 Jul 30 17:21 mysqli
drwxr-xr-x  55 root root 1870 Jul 30 17:21 mysqlnd
drwxr-xr-x  18 root root  612 Jul 30 17:21 oci8
drwxr-xr-x  11 root root  374 Jul 30 17:21 odbc

Мы видим, что существует множество расширений. Введите каталог расширений curl и выполните команду:

cd /work/study/softpackage/php-7.2.21/ext/curl
/work/study/soft/php/bin/phpize

2. Вызовите configure для создания файла makefile

 ./configure --with-php-config=/work/study/soft/php/bin/php-config

сгенерировать Makefile Эта проблема возникает во время документа: для компиляции php с поддержкой curl требуется curl версии 7.10.5 или более поздней ,

Обновляемое системное расширение может:

Ubuntu:sudo apt-get install libcurl4-gnutls-dev

CentOS:sudo yum install curl-devel

3. Скомпилируйте и установите

make && make install

Установка прошла успешно:

Installing shared extensions:     /work/study/soft/php/lib/php/extensions/no-debug-non-zts-20170718/

Чтобы просмотреть пакет расширения в каталоге установки PHP:

[email protected]:/work/study/soft/php/lib/php/extensions/no-debug-non-zts-20170718# ls -l
total 22248
-rwxr-xr-x 1 root root   438152 Sep  7 16:30 curl.so
-rwxr-xr-x 1 root root  5227454 Aug 28 02:07 opcache.a
-rwxr-xr-x 1 root root  2413144 Aug 28 02:07 opcache.so
-rwxr-xr-x 1 root root 14696248 Aug 28 19:06 swoole.so

4. Php.ini включить расширение

extension=curl

5、 Установка расширения phpredis

1, Скачать

wget https://github.com/phpredis/phpredis/archive/5.0.0.tar.gz

Изменить имя

mv 5.0.0.tar.gz phpredis-5.0.0.tar.gz

Декомпрессия:

tar -zvx phpredis-5.0.0.tar.gz

Введите каталог распаковать, чтобы создать файл конфигурации:

/work/study/softpackage# cd phpredis-5.0.0
/work/study/softpackage/phpredis-5.0.0# /work/study/soft/php/bin/phpize
./configure --with-php-config=/work/study/soft/php/bin/php-config
make && make install

Откройте расширение в файле php.ini:

extension=redis