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